稀疏性(sparse)知识点

稀疏性(sparse)

定义:Sparse表示为模型内的参数中,只用很少的几个非零元素或只有很少的几个远大于零的元素。

WHY: 为什么模型中要包含稀疏性的特征呢?

例子:考研学霸有10000的词汇量,考试使用的词汇量,是10000个词汇积累库中的一小部分。

Example:
Test Number:123.456
第一组数字基底:
[100,10,1] ⇒ \Rightarrow 123.456 ≈ \approx 100 × \times × 1 + 10 × \times × 2 + 1 × \times × 3 (error=0.456)

第二组数字基底:
[100,50,10,1,0.5,0.1,0.03,0.01,0.001]
123.456=100 × \times × 1 + 50 × \times × 0 + 10 × \times × 2 + 1 × \times × 3 + 0.5 × \times × 0 + 0.1 × \times × 4 + 0.03 × \times × 0 + 0.01 × \times × 5 + 0.001 × \times × 6(error=0)

其中 Sparse Feature(有备无患): 有50,0.5,0.03这三个数。

compared with PCA(Principal Component Analysis)
PCA(a complete set of basis vectors:完备字典)
通过这组完备字典中的向量基底,对原始数据进行还原。

Sparse Represnetation(an over-complete set of basis vectors:超完备字典,与稀疏性背道而驰。)
基向量的数量远远大于输入向量的维度

如何保证稀疏性呢?

机器学习模型 ⇒ \Rightarrow 基于训练集优化参数(比如降低Loss) ⇒ \Rightarrow Loss中加入正则项,惩罚模型参数数值使其趋近于0

常见的操作:
Loss = Training Loss + λ \lambda λ ∣ ∣ W ∣ ∣ 0 {||W||_0} W0 ( L 0 {L_0} L0范式)

Loss = Training Loss + λ \lambda λ ∣ ∣ W ∣ ∣ 1 {||W||_1} W1 ( L 1 {L_1} L1范式)

Sparce Coding(稀疏编码LOSS)
Loss = ∑ j = 1 m ∣ ∣ x ( j ) − ∑ i = 1 k a i ( j ) ϕ i ∣ ∣ 2 + λ ∑ i = 1 k ∣ ∣ a i ∣ ∣ 1 \sum_{j=1}^m||x^{(j)}-\sum_{i=1}^k a_i^{(j)}\phi_i||^2 + \lambda\sum_{i=1}^k||a_i||_1 j=1mx(j)i=1kai(j)ϕi2+λi=1kai1

其中, ∑ i = 1 k a i ( j ) \sum_{i=1}^k a_i^{(j)} i=1kai(j)是重构误差, λ ∑ i = 1 k ∣ ∣ a i ∣ ∣ 1 \lambda\sum_{i=1}^k||a_i||_1 λi=1kai1为稀疏惩罚( L 1 L_1 L1 Norm)

同样在卷积网络大行其道的时代,我们会在卷积层中加入 L 1 L_1 L1 范数,以确保其稀疏性。
增加模型的深度和宽度,以确保超完备字典更多。

无脑稀疏到底好还是坏?

超完备字典 ⇒ \Rightarrow 大量的高质量数据。
过多的非激活参数 ⇒ \Rightarrow 训练过程非常漫长

L 1 L_1 L1范式在Loss中的某些位置不可导 ⇒ \Rightarrow 导数在零处,导数不唯一,因而致使模型难以收敛

总之,在大规模深度学习的模型中,通常倾向使用 L 2 L_2 L2范式来防止过拟合。

你可能感兴趣的:(#,稀疏性介绍,模式识别)