首页 > 其他 > 详细

机器学习技法(林轩田)学习笔记:Lecture 13 & Lecture 14

时间:2018-07-30 20:54:24      阅读:254      评论:0      收藏:0      [点我收藏+]

Lecture 13: Deep Learning

Autoencoder

autoencoder是深度学习中一种常用的初始化权重的方法。

技术分享图片

如上图所示,首先,从第0~1层的权重开始,一层层用autoencoder初始化每两层之间的权重,然后再使用训练集对整个网络进行训练

autoencoder是如何初始化每两层之间的权重呢?

我们希望初始化权重后,每一层输入信息并传递给下一层后,能最大程度地保留这些信息

对于一个两层的神经网络(输入\(d+1\)维,输出\(d\)维,隐含层神经元个数(包括偏置)为\(\tilde d+1(\tilde d<d)\))而言,如果这个网络能保证输出非常近似于输入,那么输入到隐含层的过程就最大程度上保留了原始信息。

Basic Autoencoder

假设现在要初始化第\(l-1\)层到第\(l\)层的权重,第l-1层有结点(含偏置)\(d^{(l)}+1\),第l层有结点(含偏置)\(d^{(l+1)}+1\)

技术分享图片

最简单的autoencoder就是训练一个输入\(d^{(l)}+1\)维,隐含层有结点(含偏置)\(d^{(l+1)}+1\)个,输出结点数\(d^{(l)}\)个的神经网络,其中,隐含层激励函数为tanh,输出层激励函数为线性函数,如上图所示。

另外,这个神经网络有正则化:\(w_{ij}^{(1)}=w_{ji}^{(2)}\)(不过这个特别的正则化会使梯度下降更加复杂)

训练完这个网络后,第l-1层到l层的参数就初始化为:这个网络输入层到隐含层的参数

Denoising Autoencoder

技术分享图片

在机器学习基石中,我们已经了解了,训练样本的噪声\(\sigma^2\)越大,越容易引发过拟合。

为了解决这个问题,在用autoencoder初始化每两层之间的参数时,我们给构造的两层神经网络的输入\(x\)添加随机的噪声,使之变成\(\tilde x\),然后用\(\{(\tilde x,x)\}\)作训练集训练这个网络

Principal Component Analysis

Ng在Coursera的machine learning和CS229都讲过了PCA,但是技法的这节课从新的角度——linear autoencoder解释了PCA

考虑一种linear autoencoder,之前我们构造的两层神经网络,隐含层的激励函数是tanh,现在我们把它替换成线性激励函数,另外这个网络没有偏置。

设该网络输入d维,隐含层结点有\(\tilde d\)\((\tilde d<d)\),输出d维。这样,这个两层网络的第k个输出可以表示为:

\[h_k(x)=\sum_{j=1}^{\tilde d}w^{(2)}_{jk}(\sum_{i=1}^d w^{(1)}_{ij}x_i)\]

因为这个网络有特别的正则化:\(w_{ij}^{(1)}=w_{ji}^{(2)}=w_{ij}\),所以:

\[h_k(x)=\sum_{j=1}^{\tilde d}w_{kj}(\sum_{i=1}^d w_{ij}x_i)\]

我们令\(W\in\mathbb R^{d\times \tilde d},W_{ij}=w_{ij}\),则:

\[h(x)=(h_1(x),\cdots,h_d(x))^T\]

\[=WW^Tx\]

那么这个网络在给定输入为x时,均方误差为:

技术分享图片

其中\(WW^T\)是实对称阵,我们通过正交变换的方式将其对角化:

\[WW^T=V \Gamma V^T\]

\(V\)是正交阵,其中每个列向量都是一个特征向量,\(\Gamma\)是对角阵,其第i个主对角元是V的第i个列向量(特征向量)对应的特征值

因为\(r(WW^T)\leq \min(r(W),r(W^T))\leq \tilde d\)\(r(V)=d\),所以

\[r(\Gamma)=r(V \Gamma V^T)=r(WW^T)\leq \tilde d\]

\(\Gamma\)是对角阵,这表明它最多有\(\tilde d\)个非零主对角元

\(WW^Tx_n=V\Gamma V^Tx_n\),相当于是用\(V^T\)\(x_n\)作正交变换后,得到新的向量,保留其中\(r(\Gamma)\)个维度后,再用\(V\)进行逆向的正交变换将它还原回去

当给定输入为x时,这个神经网络的均方误差为:

技术分享图片

现在我们希望\(\min_wE_{in}(W)\),这等价于:

技术分享图片

首先优化内层的\(\min_\Gamma(\cdots)\)

\[\min_\Gamma\frac 1 N\sum_{n=1}^N\|VIV^Tx_n-V\Gamma V^T x_n\|^2\]

\[=\min_\Gamma\frac 1 N\sum_{n=1}^N\|V(I-\Gamma) V^T x_n\|^2\]

\[=\min_\Gamma\frac 1 N\sum_{n=1}^N\|(I-\Gamma) V^T x_n\|^2\]

(正交变换V保范数)

这相当于\(=\min_\Gamma\frac 1 N\sum_{n=1}^N\|(I-\Gamma) v_n\|^2\),\(v_n\)是固定的向量,显然我们希望\(\Gamma\)主对角线上1的个数越多越好,其他的主对角元都是0,那么最多有\(\tilde d\)个1,不失一般性,\(\Gamma\)可以表示为:

技术分享图片

如果有其他形式的\(\Gamma\),把V的对应列交换一下就和上面这个形式一样了

下面,我们要最优化外层的\(\min_V(\cdots)\)

技术分享图片

技术分享图片

先看最特殊的情况:\(\tilde d=1\),此时只有\(V^T\)的第一行\(v^T\)起作用,优化目标变成了:

技术分享图片

这是一个带等式约束条件的最优化问题,我们用拉格朗日乘数法构造拉格朗日函数\(\mathcal L\),令\(\frac{\partial \mathcal L}{\partial v}=0\)可以得到:

技术分享图片

可见,v是\(\sum_{n=1}^Nx_nx_n^T=X^TX\)的特征向量,最优的向量v是\(X^TX\)的特征值最大的特征向量

推广到一般情形,可以证明,最优的向量\(v_1,\cdots,v_{\tilde d}\)\(X^TX\)的特征值最大的前\(\tilde d\)个线性无关的特征向量,这和我们之前用方差最大化推导PCA得到的结果是一样的。

机器学习技法(林轩田)学习笔记:Lecture 13 & Lecture 14

原文:https://www.cnblogs.com/qpswwww/p/9392382.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!