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

这篇具有很好参考价值的文章主要介绍了深度学习笔记之稀疏自编码器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

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

引子:题目描述

下列方法中,可以用于特征降维的方法包括(多选) ( ) (\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×pTx(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=ENN1ININTHX=[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 HX进行处理:
    H ⋅ X = U Σ V T \mathcal H \cdot \mathcal X = \mathcal U \Sigma \mathcal V^T HX=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=N1XTHX=N1(HX)T(HX)=N1(UΣVT)TUΣVT=N1V(ΣTΣ)VT
    这里忽略掉 1 N \begin{aligned}\frac{1}{N}\end{aligned} N1的影响(它不会影响正交基的方向),这意味着不需要直接对 X \mathcal X X的协方差矩阵进行特征值分解,而是通过 H ⋅ X \mathcal H \cdot \mathcal X HX进行奇异值分解即可。其特征向量就是 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} SV=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=1N∣∣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(hx)
同理,假设编码 h h h给定的条件下,解码器的输出分布可表示为:
P d e c o d e r ( x ∣ h ) \mathcal P_{decoder}(x \mid h) Pdecoder(xh)

欠完备自编码器

基于我们想要输出分布 P m o d e l ( x ∣ h ) \mathcal P_{model}(x \mid h) Pmodel(xh)与真实分布 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(hx)相比真实分布 P d a t a ( x ) \mathcal P_{data}(x) Pdata(x)确实出现了缺失,但强制自编码器捕捉 x x x最显著的特征。
x ⇒ h x \Rightarrow h xh过程中学习到的特征信息被‘压缩’,信息丢失是不可避免的。但在 x x x分布确定的条件下, h h h中保留的必然是‘更具代表性、性质更加显著’的信息。

在后续解码器对压缩特征 h h h进行重构的过程中,由于 h h h特征的缺失已经达到了 不想单纯地将输入复制到输出 这个动机,导致后续即便重构出与 x x x大小相同的特征空间,它的信息相比真实分布 x x x依然是缺失的。因而我们需要一个损失函数惩罚重构分布真实分布 之间的差异:
L [ x , g ( f ( x ) ) ] \mathcal L[x,g(f(x))] L[x,g(f(x))]
降维的角度观察, x ⇒ h x \Rightarrow h xh可以被看作是一个降维过程, 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 , g ( f ( x ) ) ] \mathcal L[x,g(f(x))] L[x,g(f(x))]惩罚的是真实分布 x x x和重构分布 g ( f ( x ) ) g(f(x)) g(f(x))之间的差异性; Ω ( h ) \Omega(h) Ω(h)惩罚的是 h = f ( x ) h=f(x) h=f(x)的稀疏性。
L [ x , g ( f ( x ) ) ] + Ω ( h ) h = f ( x ) \mathcal L[x,g(f(x))] + \Omega(h) \quad h=f(x) L[x,g(f(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π 1exp{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)=hPmodel(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(xh)Pmodel(h)]=logPmodel(xh)+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=1KPmodel(hj)=j=1KlogPmodel(hj)=j=1Klog[2λexp{λhj}]=C j=1Klog2λΩ(h) λj=1Khj

个人理解:从先验的角度解释了稀疏惩罚 Ω ( 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=σ(Wx1jx1+Wx2jx2++Wxpjxp+bj)=σ(Wxjx+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^=N1i=1N[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=1KKL(ρ∣∣ρj^)

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

相关参考:
《深度学习》(花书) P306 第14章 自编码器
深度学习 - 深度生成网络文章来源地址https://www.toymoban.com/news/detail-428359.html

到了这里,关于深度学习笔记之稀疏自编码器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 深入理解深度学习——Transformer:编码器(Encoder)部分

    分类目录:《深入理解深度学习》总目录 相关文章: ·注意力机制(AttentionMechanism):基础知识 ·注意力机制(AttentionMechanism):注意力汇聚与Nadaraya-Watson核回归 ·注意力机制(AttentionMechanism):注意力评分函数(AttentionScoringFunction) ·注意力机制(AttentionMechanism):Bahda

    2024年02月08日
    浏览(62)
  • 机器学习&&深度学习——BERT(来自transformer的双向编码器表示)

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——transformer(机器翻译的再实现) 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 我们首先理解一下相关的一些概念,首先我们知道在自然语言系统中,词是意义的基

    2024年02月12日
    浏览(45)
  • 机器学习&&深度学习——从编码器-解码器架构到seq2seq(机器翻译)

    👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习深度学习——注意力提示、注意力池化(核回归) 📚订阅专栏:机器学习深度学习 希望文章对你们有所帮助 接下来就要慢慢开始实战了,把这边过了,我们接下来就要进行机器翻译的实战

    2024年02月13日
    浏览(43)
  • 「Verilog学习笔记」用优先编码器①实现键盘编码电路

    专栏前言 本专栏的内容主要是记录本人学习Verilog过程中的一些知识点,刷题网站用的是牛客网   分析  用此编码器实现键盘的编码电路。 注意:编码器的输出是低电平有效,而键盘编码电路输出的是正常的8421BCD码,是高电平有效。因此将编码器的输出取反就是8421编码输出

    2024年02月05日
    浏览(44)
  • 机器学习笔记 - 利用自动编码器神经网络构建图像去噪器

            传统的图像噪声去除主要是基于各种滤波器,但它们不是特定于数据的,因此可能会损失很多图像的细节,或者噪声去除的效果不是很理想。基于神经网络的自动编码器可以用于学习数据集的噪声去除滤波器。         关于自动编码器的介绍,可以参考下面的链

    2024年02月05日
    浏览(45)
  • 【STM32】STM32学习笔记-对射式红外传感器计次 旋转编码器计次(12)

    相关头文件: misc.h 1.1 NVIC_PriorityGroupConfig函数 1.2 NVIC_PriorityGroup类型 1.3 NVIC_Init函数 1.4 NVIC_InitTypeDef类型 NVIC_IRQChannel取值 成员NVIC_IRQChannelPreemptionPriority可赋的值:最大取值15,具体有上面设置的优先级组中规定的位数决定 成员NVIC_IRQChannelSubPriority可赋的值:最大取值15,具体有

    2024年01月15日
    浏览(46)
  • 7、江科大stm32视频学习笔记——中断的应用:对射式红外传感器计次&旋转编码器计次

    目录 1、标志位函数 2、 初始化的中断的步骤 3、对射式红外传感器计次 (1)接线图 (2)CountSensor.c (3)main.c 4、旋转编码器计次 (1)接线图(旋转编码器接在PB1、PB0引脚) (2)Encoder.c (3)main.c 5、建议 //在 主程序 中查看标志位和清楚标志位,用以下两个函数,能不能

    2024年02月11日
    浏览(46)
  • STM32学习笔记(三)丨中断系统丨EXTI外部中断(对射式红外传感器计次、旋转编码器计次)

    ​  本次课程采用单片机型号为STM32F103C8T6。 ​  课程链接:江科大自化协 STM32入门教程   往期笔记链接:   STM32学习笔记(一)丨建立工程丨GPIO 通用输入输出   STM32学习笔记(二)丨STM32程序调试丨OLED的使用   本篇文章的内容我愿称之为 史诗级副本 (感觉

    2024年02月16日
    浏览(47)
  • 深度学习之自编码器实现——实现图像去噪

           大家好,我是带我去滑雪!         自编码器 是一种无监督学习的神经网络,是一种数据压缩算法,主要用于数据降维和特征提取。它的基本思想是将输入数据经过一个编码器映射到隐藏层,再通过一个解码器映射到输出层,使得输出层的结果与输入层的结果尽可能

    2024年02月06日
    浏览(43)
  • HDLBITS笔记9:8-3优先编码器

    为 8 位输入构建优先级编码器。 给定一个 8 位向量,输出应报告向量中的第一个位 1 。如果输入向量没有高位,则报告零。例如,输入 8\\\'b10010000 应输出 3\\\'d4,因为 bit[4] 是第一个高位。 从上一个练习(always_case2),案例陈述中将有256个案例。如果支持的事例语句中的事例

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包