1. 程式人生 > >機器學習技法(林軒田)學習筆記:Lecture 13 & Lecture 14

機器學習技法(林軒田)學習筆記:Lecture 13 & Lecture 14

深度學習 現在 splay 過擬合 正則 給定 encoder 傳遞 inline

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