深度学习笔记之稀疏自编码器

  • 引言
    • 引子:题目描述
      • 正确答案: A B C D \mathcal A \mathcal B \mathcal C \mathcal D ABCD
      • 题目解析
    • 介绍:自编码器
    • 欠完备自编码器
    • 正则自编码器
      • 从先验角度解释稀疏自编码器
      • 稀疏自编码器的构建

引言

本节以一道算法八股题为引,介绍稀疏自编码器

引子:题目描述

下列方法中,可以用于特征降维的方法包括(多选) ( ) (\quad) ()

A \mathcal A \quad A主成分分析 PCA \text{PCA} PCA

B \mathcal B \quad B线性判别分析 LDA \text{LDA} LDA

C \mathcal C \quad C深度学习 SparseAutoEncoder \text{SparseAutoEncoder} SparseAutoEncoder

D \mathcal D \quad D矩阵奇异值分解 SVD \text{SVD} SVD

E \mathcal E \quad E最小二乘法 LeastSquares \text{LeastSquares} LeastSquares

正确答案: A B C D \mathcal A \mathcal B \mathcal C \mathcal D ABCD

题目解析

关于 A D \mathcal A \quad \mathcal D \quad AD 选项,可以放在一起观察。关于主成分分析 ( Principal Component Analysis,PCA ) (\text{Principal Component Analysis,PCA}) (Principal Component Analysis,PCA)降维思想,这里不再过多赘述。这里重点描述从奇异值分解角度观察主成分分析:
详细推导过程见传送门

  • 假设无监督任务下,样本集合 X \mathcal X X表示为:
    X = ( x ( 1 ) , x ( 2 ) , ⋯ , x ( N ) ) N × p T x ( i ) ∈ R p \mathcal X = (x^{(1)},x^{(2)},\cdots,x^{(N)})_{N \times p}^T \quad x^{(i)} \in \mathbb R^p X=(x(1),x(2),⋯,x(N))N×pT​x(i)∈Rp
  • 对 X \mathcal X X进行中心化(将 X \mathcal X X分布平移至样本空间原点位置),即乘以相应的中心矩阵 H \mathcal H H:
    其中 E N \mathcal E_N EN​表示 N N N维单位向量; I N \mathcal I_{N} IN​表示元素值均为 1 1 1 N N N维列向量。
    { H = E N − 1 N I N ⋅ I N T H ⋅ X = [ x ( 1 ) − X ˉ , x ( 2 ) − X ˉ , ⋯ , x ( N ) − X ˉ ] N × p T \begin{cases} \begin{aligned} \mathcal H = \mathcal E_{N} - \frac{1}{N} \mathcal I_N \cdot \mathcal I_N^T \end{aligned} \\ \mathcal H \cdot \mathcal X = \left[x^{(1)} - \bar {\mathcal X},x^{(2)} - \bar {\mathcal X},\cdots,x^{(N)} - \bar {\mathcal X}\right]_{N \times p}^T \end{cases} ⎩ ⎨ ⎧​H=EN​−N1​IN​⋅INT​​H⋅X=[x(1)−Xˉ,x(2)−Xˉ,⋯,x(N)−Xˉ]N×pT​​
    奇异值分解 ( Singular Value Decomposition,SVD ) (\text{Singular Value Decomposition,SVD}) (Singular Value Decomposition,SVD)的角度对 H ⋅ X \mathcal H \cdot \mathcal X H⋅X进行处理:
    H ⋅ X = U Σ V T \mathcal H \cdot \mathcal X = \mathcal U \Sigma \mathcal V^T H⋅X=UΣVT
    其中 U \mathcal U U是列正交矩阵; V \mathcal V V是正交矩阵。对应 X \mathcal X X的协方差 S \mathcal S S使用奇异值分解表示如下:
    其中 X , H \mathcal X,\mathcal H X,H S \mathcal S S的表达过程详见主成分分析——最大投影方差角度
    S = 1 N X T ⋅ H ⋅ X = 1 N ( H X ) T ⋅ ( H X ) = 1 N ( U Σ V T ) T ⋅ U Σ V T = 1 N V ( Σ T Σ ) V T \begin{aligned} \mathcal S & = \frac{1}{N} \mathcal X^T \cdot \mathcal H \cdot \mathcal X \\ & = \frac{1}{N} (\mathcal H \mathcal X)^T \cdot (\mathcal H \mathcal X) \\ & = \frac{1}{N} (\mathcal U \Sigma \mathcal V^T)^T \cdot \mathcal U \Sigma\mathcal V^T \\ & = \frac{1}{N} \mathcal V(\Sigma^T\Sigma)\mathcal V^T \end{aligned} S​=N1​XT⋅H⋅X=N1​(HX)T⋅(HX)=N1​(UΣVT)T⋅UΣVT=N1​V(ΣTΣ)VT​
    这里忽略掉 1 N \begin{aligned}\frac{1}{N}\end{aligned} N1​​的影响(它不会影响正交基的方向),这意味着不需要直接对 X \mathcal X X的协方差矩阵进行特征值分解,而是通过 H ⋅ X \mathcal H \cdot \mathcal X H⋅X进行奇异值分解即可。其特征向量就是 V \mathcal V V自身:
    上式等号两侧右乘 V , 1 N \mathcal V,\begin{aligned}\frac{1}{N}\end{aligned} V,N1​​忽略。
    S ⋅ V = V Σ T Σ V T V ⏟ E = V ( Σ T Σ ) \begin{aligned} \mathcal S \cdot \mathcal V & = \mathcal V\Sigma^T\Sigma \underbrace{\mathcal V^T\mathcal V}_{\mathcal E} \\ & = \mathcal V (\Sigma^T\Sigma) \end{aligned} S⋅V​=VΣTΣE VTV​​=V(ΣTΣ)​
    其中 Σ T Σ \Sigma^T\Sigma ΣTΣ是特征值矩阵,其对角线元素是特征值,从而根据特征值进行找出最优主成分,以此类推。因此, D \mathcal D \quad D 选项正确。

关于 B \mathcal B \quad B 选项:线性判别分析,这里不过多赘述,详见算法八股(十)——线性判别分析与核函数中关于线性判别分析的解释。
关于 E \mathcal E \quad E 选项:最小二乘法
L ( W ) = ∑ i = 1 N ∣ ∣ W T x ( i ) − y ( i ) ∣ ∣ ( x ( i ) , y ( i ) ) ∈ D \mathcal L(\mathcal W) = \sum_{i=1}^N ||\mathcal W^Tx^{(i)} - y^{(i)}|| \quad (x^{(i)},y^{(i)}) \in \mathcal D L(W)=i=1∑N​∣∣WTx(i)−y(i)∣∣(x(i),y(i))∈D
我们仅从计算过程中观察,我们可以认为将 x ( i ) x^{(i)} x(i)所在的特征空间通过 W \mathcal W W映射到对应的标签空间。但整个过程 x ( i ) ( i = 1 , 2 , ⋯ , N ) x^{(i)}(i=1,2,\cdots,N) x(i)(i=1,2,⋯,N)的特征没有变化过。也就是说,我们并没有去修改特征空间,从而对 x ( i ) x^{(i)} x(i)提出新的表示。

下面主要关注 C \mathcal C \quad C 选项:什么是稀疏自编码器( SparseAutoEncoder \text{SparseAutoEncoder} SparseAutoEncoder),它又是如何实现特征降维的。

介绍:自编码器

关于自编码器 ( AutoEncoder ) (\text{AutoEncoder}) (AutoEncoder),是神经网络的一种。它经过训练后能尝试输入复制到输出。其模型结构可表示为如下形式:
节自《深度学习》(花书) P306。从该描述中可以发现,它是一个典型的概率生成模型

该模型中包含一个隐藏层 h h h,其作用是对输入特征 x x x进行抽象表示,也称作编码 ( Code ) (\text{Code}) (Code)。通过 h h h将整个模型划分成两个部分:

  • 编码器 ( Encoder ) (\text{Encoder}) (Encoder)。由函数 f ( ⋅ ) f(\cdot) f(⋅)对输入特征 x x x进行描述,得到抽象特征 h h h:
    h = f ( x ) h = f(x) h=f(x)
  • 解码器 ( Decoder ) (\text{Decoder}) (Decoder)。由函数 g ( ⋅ ) g(\cdot) g(⋅)对抽象特征 h h h进行重构,得到生成特征 r r r:
    r = g ( h ) r = g(h) r=g(h)

既然是生成模型,从常规角度认为从模型中生成出的特征 r r r和 x x x越相似越好。但相反,如果仅仅得到一个 g [ f ( x ) ] = x g[f(x)] = x g[f(x)]=x,这个模型可能并没有什么意义。因此,我们需要对模型施加一些约束,从而:

  • 生成的特征和输入特征相似;
  • 施加的约束导致模型会优先选择代表性强的特征,从而学习到数据的有用特征。

如果从概率分布的角度认识这个过程,已知输入分布 x x x,那么编码器的输出分布可表示为:
也就是给定 x x x,在 Encoder \text{Encoder} Encoder的抽象描述下,输出编码 h h h的后验概率分布。
P e n c o d e r ( h ∣ x ) \mathcal P_{encoder}(h \mid x) Pencoder​(h∣x)
同理,假设编码 h h h给定的条件下,解码器的输出分布可表示为:
P d e c o d e r ( x ∣ h ) \mathcal P_{decoder}(x \mid h) Pdecoder​(x∣h)

欠完备自编码器

基于我们想要输出分布 P m o d e l ( x ∣ h ) \mathcal P_{model}(x \mid h) Pmodel​(x∣h)与真实分布 P d a t a ( x ) \mathcal P_{data}(x) Pdata​(x)相同,但又不想单纯地将输入复制到输出
看起来像是一个矛盾的事情。

也就是说,在训练自编码器对 x x x训练的过程中,使隐变量 h h h能够学习到有用的特性。一种做法是:通过人工设置,强行让 h h h的维度小于 x x x的维度

这种编码维度小于输入维度的自编码器被称作欠完备自编码器 ( Undercompleter AutoEncoder ) (\text{Undercompleter AutoEncoder}) (Undercompleter AutoEncoder)。编码维度的减小意味着学习到的分布 P m o d e l ( h ∣ x ) \mathcal P_{model}(h \mid x) Pmodel​(h∣x)相比真实分布 P d a t a ( x ) \mathcal P_{data}(x) Pdata​(x)确实出现了缺失,但强制自编码器捕捉 x x x中最显著的特征。
x ⇒ h x \Rightarrow h x⇒h过程中学习到的特征信息被‘压缩’,信息丢失是不可避免的。但在 x x x分布确定的条件下, h h h中保留的必然是‘更具代表性、性质更加显著’的信息。

在后续解码器对压缩特征 h h h进行重构的过程中,由于 h h h特征的缺失已经达到了 不想单纯地将输入复制到输出 这个动机,导致后续即便重构出与 x x x大小相同的特征空间,它的信息相比真实分布 x x x依然是缺失的。因而我们需要一个损失函数惩罚重构分布和真实分布 之间的差异:
L [ x , f ( g ( x ) ) ] \mathcal L[x,f(g(x))] L[x,f(g(x))]
降维的角度观察, x ⇒ h x \Rightarrow h x⇒h可以被看作是一个降维过程, h h h中的各维度可看作特征值最大的若干主成分。在重构过程中,虽然无法将缺失的部分还原,但重构后的结果相比于真实分布其特征更具代表性
也就是说, Undercompleter AutoEncoder \text{Undercompleter AutoEncoder} Undercompleter AutoEncoder这种独特的模型结构就已经存在了特征降维的思想。那么它与 Sparse AutoEncdoer \text{Sparse AutoEncdoer} Sparse AutoEncdoer之间的关联关系是什么?

正则自编码器

上面描述的欠完备自编码器是通过人为设置强制减小编码维数而产生的模型结构,这种结构能够使 h h h学习到 x x x更显著的特征信息。

相反呢?如果我们的自编码器容量过大,也就是说: h h h的编码维数与 x x x相等,甚至高于 x x x

这种情况可能导致 h h h在编码过程中对 x x x的学习更加准确,我们不否认对应的解码结果会对 x x x重构的更加准确,但 h h h中学习不到任何有用的信息。
这种就是‘单纯地将输入复制到输出’的情况。

我们将这种情况称作过完备 ( Overcomplete ) (\text{Overcomplete}) (Overcomplete)。那么类似于上述的情况,是否可以让 h h h学习到有用的信息?换句话说:能否不使用“限制” h h h维度的方式,理想情况下,任意大小的 h h h都能够在训练中学习出有用的信息

正则自编码器提供了这样的能力。其思想在于利用稀疏表示、表示的小导数以及噪声或输入缺失的鲁棒性的方式,使非线性且过完备的正则自编码器仍然能够从数据中学到一些关于数据分布的有用信息。
节自《深度学习》(花书) P307 14.2 正则自编码器

从先验角度解释稀疏自编码器

稀疏自编码器 ( Sparse AutoEncoder ) (\text{Sparse AutoEncoder}) (Sparse AutoEncoder)就是通过对 h h h进行稀疏表示达到上述目的。其具体做法是:在损失函数的基础上,增加对 h h h的稀疏惩罚
再次强调,两个部分‘惩罚’的方向不一样。 L [ x , f ( g ( x ) ) ] \mathcal L[x,f(g(x))] L[x,f(g(x))]惩罚的是真实分布 x x x和重构分布 f ( g ( x ) ) f(g(x)) f(g(x))之间的差异性; Ω ( h ) \Omega(h) Ω(h)惩罚的是 h = f ( x ) h=f(x) h=f(x)的稀疏性。
L [ x , f ( g ( x ) ) ] + Ω ( h ) h = f ( x ) \mathcal L[x,f(g(x))] + \Omega(h) \quad h=f(x) L[x,f(g(x))]+Ω(h)h=f(x)

我们可以将 Ω ( h ) \Omega(h) Ω(h)视作关于 h h h的正则项,但实际上,该项并没有正则项的意义。在正则化——贝叶斯概率角度中介绍了正则项相当于参数的先验概率
MAP :  θ ^ = arg ⁡ max ⁡ θ [ log ⁡ P ( X ∣ θ ) + log ⁡ P ( θ ) ] \text{MAP : } \hat \theta = \mathop{\arg\max}\theta \left[ \log \mathcal P(\mathcal X \mid \theta) + \log \mathcal P(\theta)\right] MAP : θ^=argmaxθ[logP(X∣θ)+logP(θ)]
而先验概率 log ⁡ P ( θ ) \log \mathcal P(\theta) logP(θ)描述在训练过程之前,对参数 θ \theta θ特定值的偏好,并且 这个偏好取决于事件自身的性质。例如极大似然估计与最大后验概率估计中投掷硬币的例子。我们给出的分布 P ( θ ) \mathcal P(\theta) P(θ)是均值 μ = 0.5 \mu = 0.5 μ=0.5,方差 σ = 0.1 \sigma = 0.1 σ=0.1的高斯分布
很明显,我们在给出先验分布时,连数据是什么都不知道。
P ( θ ) = 1 0.1 × 2 π exp ⁡ { − ( θ − 0.5 ) 2 0.02 } \mathcal P(\theta) = \frac{1}{0.1 \times \sqrt{2\pi}} \exp \left\{-\frac{(\theta - 0.5)^2}{0.02}\right\} P(θ)=0.1×2π ​1​exp{−0.02(θ−0.5)2​}
但是隐变量 h h h是伴随模型存在的,它自身没有实际的物理意义。因而对应的先验分布 P m o d e l ( h ) \mathcal P_{model}(h) Pmodel​(h)也同样是没有实际意义的先验。因而它不能被直接视作正则项,但我们仍可以认为 P m o d e l ( h ) \mathcal P_{model}(h) Pmodel​(h)隐式地表达了对函数的偏好:
通常也将 P m o d e l ( h ) \mathcal P_{model}(h) Pmodel​(h)称作信念先验。节选自《深度学习》(花书) P308 14.2.1 稀疏自编码器。

关于解码器生成的样本分布 P m o d e l ( x ) \mathcal P_{model}(x) Pmodel​(x),它的似然函数可分解为如下形式:
P m o d e l ( x ) = ∑ h P m o d e l ( h , x ) \mathcal P_{model}(x) = \sum_{h} \mathcal P_{model}(h,x) Pmodel​(x)=h∑​Pmodel​(h,x)
关于联合概率分布 P m o d e l ( h , x ) \mathcal P_{model}(h,x) Pmodel​(h,x),它的对数结果表示为:
log ⁡ P m o d e l ( h , x ) = log ⁡ [ P m o d e l ( x ∣ h ) ⋅ P m o d e l ( h ) ] = log ⁡ P m o d e l ( x ∣ h ) + log ⁡ P m o d e l ( h ) \begin{aligned} \log \mathcal P_{model}(h,x) & = \log \left[\mathcal P_{model}(x \mid h) \cdot \mathcal P_{model}(h)\right] \\ & = \log \mathcal P_{model}(x \mid h) + \log \mathcal P_{model}(h) \end{aligned} logPmodel​(h,x)​=log[Pmodel​(x∣h)⋅Pmodel​(h)]=logPmodel​(x∣h)+logPmodel​(h)​
如果 h h h,也就是编码器各神经元的输出,假设它们之间是独立同分布的条件下,虽然 P m o d e l ( h ) \mathcal P_{model}(h) Pmodel​(h)不是真正意义上的先验,但是依然可以给其各个分量一个先验分布。如 Laplace \text{Laplace} Laplace先验
其中 h j ( j = 1 , 2 , ⋯ , K ) h_j(j=1,2,\cdots,\mathcal K) hj​(j=1,2,⋯,K)表示 h h h的各个分量,也就是编码器第 j j j个神经元的输出。
log ⁡ P m o d e l ( h ) = log ⁡ ∏ j = 1 K P m o d e l ( h j ) = ∑ j = 1 K log ⁡ P m o d e l ( h j ) = ∑ j = 1 K log ⁡ [ λ 2 exp ⁡ { − λ ∣ h j ∣ } ] = ∑ j = 1 K log ⁡ λ 2 ⏟ C − λ ⋅ ∑ j = 1 K ∣ h j ∣ ⏟ Ω ( h ) \begin{aligned} \log \mathcal P_{model}(h) & = \log \prod_{j=1}^{\mathcal K} \mathcal P_{model}(h_j) \\ & = \sum_{j=1}^{\mathcal K} \log \mathcal P_{model}(h_j) \\ & = \sum_{j=1}^{\mathcal K} \log \left[\frac{\lambda}{2} \exp \{-\lambda |h_j|\}\right] \\ & =\underbrace{\sum_{j=1}^{\mathcal K} \log \frac{\lambda}{2}}_{\mathcal C} - \underbrace{\lambda \cdot \sum_{j=1}^{\mathcal K} |h_j|}_{\Omega(h)} \end{aligned} logPmodel​(h)​=logj=1∏K​Pmodel​(hj​)=j=1∑K​logPmodel​(hj​)=j=1∑K​log[2λ​exp{−λ∣hj​∣}]=C j=1∑K​log2λ​​​−Ω(h) λ⋅j=1∑K​∣hj​∣​​​

个人理解:从先验的角度解释了稀疏惩罚 Ω ( h ) \Omega(h) Ω(h)的作用。重点在于如何构建稀疏惩罚,也就是说,如何约束编码器神经元的输出 h h h。

花书中的介绍,个人没有理解它的精髓。在不是真正意义上的先验的基础上,用先验去解释它。这里欢迎小伙伴们批评指正。

稀疏自编码器的构建

上面的 Laplace \text{Laplace} Laplace分布是一种方式,也可以尝试其他的方式去约束编码器的输出 h h h:

  • 通过前馈神经网络的描述,可以将 h h h的第 j j j个神经元 h j h_j hj​表示为如下形式:
    其中 σ \sigma σ表示激活函数。
    h j = σ ( W x 1 ⇔ j ⋅ x 1 + W x 2 ⇔ j ⋅ x 2 + ⋯ + W x p ⇔ j ⋅ x p + b j ) = σ ( W x ⇔ j ⋅ x + b j ) \begin{aligned} h_j & = \sigma \left(\mathcal W_{x_1 \Leftrightarrow j} \cdot x_1 + \mathcal W_{x_2 \Leftrightarrow j} \cdot x_2 + \cdots + \mathcal W_{x_p \Leftrightarrow j} \cdot x_p + b_j\right) \\ & = \sigma(\mathcal W_{x \Leftrightarrow j} \cdot x + b_j) \end{aligned} hj​​=σ(Wx1​⇔j​⋅x1​+Wx2​⇔j​⋅x2​+⋯+Wxp​⇔j​⋅xp​+bj​)=σ(Wx⇔j​⋅x+bj​)​

  • 很明显, h j h_j hj​可看作是一个关于样本特征 x 1 , x 2 , ⋯ , x p x_1,x_2,\cdots,x_p x1​,x2​,⋯,xp​的函数 h j ( x ) h_j(x) hj​(x)。将样本集合 D \mathcal D D内的所有样本 x ( i ) ( i = 1 , 2 , ⋯ , N ) x^{(i)}(i=1,2,\cdots,N) x(i)(i=1,2,⋯,N)带入到上式中,并取该结果的均值,结果记作 ρ j ^ \hat {\rho_j} ρj​^​:
    也称 ρ j ^ \hat {\rho_j} ρj​^​为‘平均激活度’ ( Average Activation ) (\text{Average Activation}) (Average Activation)
    ρ j ^ = 1 N ∑ i = 1 N [ h j ( x ( i ) ) ] \hat {\rho_j} = \frac{1}{N} \sum_{i=1}^N \left[h_j(x^{(i)})\right] ρj​^​=N1​i=1∑N​[hj​(x(i))]

  • 在向下执行之前,我们有必要了解一下 ρ j ^ \hat {\rho_j} ρj​^​,它的物理意义。为什么要这么设计它 ? ? ?如果从蒙特卡洛方法的反方向去考虑该式子,那么他可以被看作是:真实分布 P d a t a ( x ) \mathcal P_{data}(x) Pdata​(x)下, h j ( x ) h_j(x) hj​(x)的期望结果
    ρ j ^ ≈ E x ( i ) ∼ P d a t a ( x ) [ h j ( x ( i ) ) ] \hat {\rho_j} \approx \mathbb E_{x^{(i)} \sim \mathcal P_{data}(x)} [h_j(x^{(i)})] ρj​^​≈Ex(i)∼Pdata​(x)​[hj​(x(i))]
    这个期望的大小意味着什么:

    • 如果这个期望值大,意味着第 j j j个神经元 h j h_j hj​对于样本 x ( i ) ( i = 1 , 2 , ⋯ , N ) x^{(i)}(i=1,2,\cdots,N) x(i)(i=1,2,⋯,N)综合映射结果是不低的。 也就是说, h j h_j hj​对于样本特征的描述更加完整,更加丰富;
      但这种特征描述方式违背了‘对其稀疏表示’的初衷,从而变成了单纯的复制。
    • 相反,如果这个期望值小,这意味着可能存在部分神经元活性较低/失活了,导致一部分神经元的输出接近于 0 / 0/ 0/就是 0 0 0。从而只能利用少数神经元完成编码器对特征的压缩。而这些抗打的(未失活的)神经元对应的特征就是 x x x中最显著的信息。
    • 但我们也不能让其无限的小,甚至为 0 0 0。如果是极限情况下让 ρ j ^ = 0 \hat {\rho_j} =0 ρj​^​=0,这些最显著信息对应的神经元也失活了,这个模型就没有意义了
  • 基于上述描述,我们可以设置一个目标值 ρ \rho ρ,也称作稀疏性常数。这个值很小,例如 0.05 0.05 0.05(讲义中的例子),我们希望 ρ j ^ \hat {\rho_j} ρj​^​向目标值 ρ \rho ρ靠近,直至相等:
    ρ j ^ = ρ \hat {\rho_j} = \rho ρj​^​=ρ
    如何对这个靠近进行描述 ? ? ?我们将 ρ j ^ \hat {\rho_j} ρj​^​和 ρ \rho ρ看做是两个概率分布,使用 K L \mathcal K\mathcal L KL散度对其进行描述:
    K L \mathcal K\mathcal L KL散度可理解为两概率分布 ρ , ρ j ^ \rho,\hat {\rho_j} ρ,ρj​^​之间的相似程度。有下界 0 0 0,意味着 ρ = ρ j ^ \rho=\hat {\rho_j} ρ=ρj​^​
    K L ( ρ ∣ ∣ ρ j ^ ) = ρ log ⁡ ρ ρ j ^ + ( 1 − ρ ) log ⁡ 1 − ρ 1 − ρ j ^ \mathcal K\mathcal L(\rho || \hat {\rho_j}) = \rho \log \frac{\rho}{\hat {\rho_j}} + (1 - \rho) \log \frac{1 - \rho}{1 - \hat {\rho_j}} KL(ρ∣∣ρj​^​)=ρlogρj​^​ρ​+(1−ρ)log1−ρj​^​1−ρ​
    当然,这里仅描述了第 j j j个神经元 h j h_j hj​的情况。对于完整稀疏惩罚 Ω ( h ) \Omega(h) Ω(h)可表示为:
    因为 ρ j ^ \hat {\rho_j} ρj​^​ h j h_j hj​的均值/期望,因此整个式子中只有 h j ( j = 1 , 2 , ⋯ , K ) h_j(j=1,2,\cdots,\mathcal K) hj​(j=1,2,⋯,K)是变量,满足‘稀疏惩罚项’的要求。
    Ω ( h ) = ∑ j = 1 K K L ( ρ ∣ ∣ ρ j ^ ) \Omega(h) = \sum_{j=1}^{\mathcal K} \mathcal K\mathcal L(\rho || \hat {\rho_j}) Ω(h)=j=1∑K​KL(ρ∣∣ρj​^​)

最终,基于该方式的稀疏自编码器策略可表示为:
J s p a r s e ( W , b ) = L [ x , f ( g ( x ) ) ] + Ω ( h ) = J ( W , b ) + β ⋅ ∑ j = 1 K K L ( ρ ∣ ∣ ρ j ^ ) \begin{aligned} \mathcal J_{sparse}(\mathcal W,b) & = \mathcal L[x,f(g(x))] + \Omega(h) \\ & = \mathcal J(\mathcal W,b) + \beta \cdot \sum_{j=1}^{\mathcal K} \mathcal K\mathcal L(\rho || \hat {\rho_j}) \end{aligned} Jsparse​(W,b)​=L[x,f(g(x))]+Ω(h)=J(W,b)+β⋅j=1∑K​KL(ρ∣∣ρj​^​)​
回到题目, C \mathcal C \quad C 选项稀疏自编码器主要是针对编码器容量过完备情况下,对编码器神经元输出的稀疏惩罚。还是要和欠完备自编码器区分一下,正确。

相关参考:
《深度学习》(花书) P306 第14章 自编码器
深度学习 - 深度生成网络

深度学习笔记之稀疏自编码器相关推荐

  1. 2020-4-22 深度学习笔记20 - 深度生成模型 5 (有向生成网络--sigmoid信念网络/可微生成器网络/变分自编码器VAE/生产对抗网络GAN/生成矩匹配网络)

    第二十章 深度生成模型 Deep Generative Models 中文 英文 2020-4-17 深度学习笔记20 - 深度生成模型 1 (玻尔兹曼机,受限玻尔兹曼机RBM) 2020-4-18 ...

  2. 《繁凡的深度学习笔记》前言、目录大纲 一文让你完全弄懂深度学习所有基础(DL笔记整理系列)

    <繁凡的深度学习笔记>前言.目录大纲 (DL笔记整理系列) 一文弄懂深度学习所有基础 ! 3043331995@qq.com https://fanfansann.blog.csdn.ne ...

  3. UFLDL深度学习笔记 (三)无监督特征学习

    UFLDL深度学习笔记 (三)无监督特征学习 1. 主题思路 "UFLDL 无监督特征学习"本节全称为自我学习与无监督特征学习,和前一节softmax回归很类似,所以本篇笔记会比较 ...

  4. 深度学习笔记4:深度神经网络的正则化

    出处:数据科学家养成记 深度学习笔记4:深度神经网络的正则化 恍恍惚惚,又20天没写了.今天笔者要写的是关于机器学习和深度学习中的一项关键技术:正则化.相信在机器学习领域摸爬滚打多年的你一定知道正则化 ...

  5. 深度学习笔记(26) 卷积神经网络

    深度学习笔记(26) 卷积神经网络 1. CONV 2. POOL 3. Layer 4. FC 5. 卷积的优势 1. CONV 假设,有一张大小为32×32×3的输入图片,这是一张RGB模式的图片 ...

  6. 深度学习笔记(4) 浅层神经网络

    深度学习笔记(4) 浅层神经网络 1. 神经网络概述 2. 激活函数 3. 激活函数的导数 4. 神经网络的梯度下降 5. 随机初始化 1. 神经网络概述 神经网络看起来是如下: 有输入特征x1.x2 ...

  7. HALCON 21.11:深度学习笔记---语义分割/边缘提取(12)

    HALCON 21.11:深度学习笔记---语义分割/边缘提取(12) HALCON 21.11.0.0中,实现了深度学习方法. 本章介绍了如何使用基于深度学习的语义分割,包括训练和推理阶段. 通过语 ...

  8. HALCON 20.11:深度学习笔记(12)---语义分割

    HALCON 20.11:深度学习笔记(12)--- 语义分割 HALCON 20.11.0.0中,实现了深度学习方法. 本章解释了如何使用基于深度学习的语义分割,包括训练和推理阶段. 通过语义分割, ...

  9. 深度学习笔记其五:卷积神经网络和PYTORCH

    深度学习笔记其五:卷积神经网络和PYTORCH 1. 从全连接层到卷积 1.1 不变性 1.2 多层感知机的限制 1.2.1 平移不变性 1.2.2 局部性 1.3 卷积 1.4 "沃尔多在 ...

最新文章

  1. 理解深度学习中的学习率及多种选择策略
  2. 有关电子的十个有趣事实
  3. 代码 抠图_Python装逼指南——五行代码实现批量抠图!
  4. 用图表说话 麦肯锡 pdf下载_揭秘麦肯锡顾问百万年薪背后的逻辑,麦肯锡「方法论」系列大合集...
  5. NDK 原生代码处理图形
  6. 服务器常见远程管理网口及登录方式
  7. 主子表对应的字段_Power Pivot针对表筛选的函数及差异
  8. android 通知栏进度_Android改造下载图片进度通知
  9. python中的rt_TensorRT学习总结
  10. 映射的网络驱动器怎么共享_如何在Windows上通过网络共享CD和DVD驱动器
  11. CentOS7图形界面与命令行界面切换的快捷键
  12. “爆炸图!“ArcGIS中制作一张好看的爆炸分析图(附练习数据)
  13. easyphp mysql 密码_EasyPHP 使用经验积累
  14. 把Android源码导入Android Studio进行调试
  15. 折弯机使用说明书_折弯机使用操作方法-几大要点
  16. html七天签到页面,每日前端签到(第七天)
  17. 利用python爬虫大量爬取网页图片
  18. 第一周作业(零基础)
  19. NestJS 7.x 折腾记: (3) 采用nestjs-pino作为Nest logger
  20. 创业实践案例课程随堂检测答案

热门文章

  1. Vue:el-dialog可拖拽
  2. 微信小程序上传图片裁剪工具image-cropper使用
  3. 已经有211大学发布计算机专业,研究生复试上机考试说明
  4. linux下的go富集分析,GO富集分析示例【华为云技术分享】
  5. LibreCAD+Mingw编译记录
  6. vdbench 配置案例及参数说明
  7. 人工智能与高性能计算
  8. 添加了validaterequest=false 为什么还是报错
  9. 危险进程集粹(附说明)
  10. 离散控制 discrete control