Chapter 7:Neural Network

神經(jīng)網(wǎng)絡(luò)是一種生物啟發(fā)式的模型,在時間序列上和視覺上已經(jīng)有了很重要的工程應用。

①The Multi-layer Perceptron



對于上訴的公式證明,在理論上可以使用一些方法來類比計算,也就是說任何的一個在緊密集合上的連續(xù)函數(shù)都可以使用單步函數(shù)進行任意近似。單步函數(shù)可以說是最簡單的函數(shù),感知機perceptron好就是一種比較簡單的step function。
在上訴的神經(jīng)網(wǎng)絡(luò)里面,輸入層是不可以被看成是一層。而隱藏層是使用sign(.)作為輸出。然而,問題是這些使用sign(.)的方法困難部分是在于他不是平滑的,一個平滑的近似函數(shù)是完全不同于sign(.),平滑的近似函數(shù)可以允許我們使用數(shù)學分析的方法來尋找最優(yōu)權(quán)值。

②Notation and Forward Propagation

Notation:層數(shù)使用l = 1,2,3...L來表示,輸入層將不能被看做是一個層,每一層會有d^l + 1個節(jié)點,因為還要加上一個偏置項。輸入層沒有進來的權(quán)值,但是有輸出的權(quán)值,輸出層相反。


前向傳播完成后,那么我們需要做的就是求
E_{in}

E_{in}(w) = \frac{1}{N}\sum^{N}_{n=1}(h(x_n;w)-y_n)^2 = \frac{1}{N}\sum^{N}_{n=1}(x_n^L-y_n)^2

③The Simple Perceptron Revisited

tanh(x):f(x) = \frac{e^x - e^{-x}}{e^x+e^{-x}}
Nearly linear for x = 0 and nearly +/-1 for |x| large.
tan(.)近似函數(shù)抓住了整體的趨勢,如果我們最小化tanh-insample error,我們可以基本等同于是優(yōu)化in-sample error了。
優(yōu)化in-sample error的方法自然就是梯度下降了,首先初始化權(quán)值,然后再每一步的時候更新所有權(quán)值即可。但是對于一個神經(jīng)網(wǎng)絡(luò)來說就沒有這么簡單了,因為神經(jīng)網(wǎng)絡(luò)這么多層的疊加已經(jīng)不再是一種簡單的凸優(yōu)化函數(shù)了,而是很復雜的函數(shù)疊加。如果初始權(quán)值初始化的太大了,那么E_{in} = 0。因此,我們需要選擇比較小的權(quán)值使得一開始tanh^2(w_n^Tx_n) = 0。
一個比較好的選擇就是使用高斯函數(shù)初始化。
終止點:
一個比較好的選擇是當邊緣error很小,而且迭代一定的次數(shù)之后就可以停止了。

④BackPropagation

主要就是使用鏈式法則。






需要注意的是,有時候我們會發(fā)現(xiàn)誤差平面可能會看起來很平,也就是遇到了梯度消失,這是因為tanh已經(jīng)飽和了,對于這種情況,可以使用一個不容易飽和的函數(shù)來修復,比如square error function。

⑤Approximation VS Generalization

A 3-layer neural network:h(x) = \theta(w_0 + \sum^m_{j=1}w_j\theta(v_j^Tw))
神經(jīng)網(wǎng)絡(luò)相對于非線性轉(zhuǎn)化來說,能力會更強,在線性模型里面,非線性轉(zhuǎn)化函數(shù)是先前就確定了的,也就是再沒看到數(shù)據(jù)之前就確定了,而神經(jīng)網(wǎng)絡(luò)是在參數(shù)里面的,我們可以在看到數(shù)據(jù)的情況下繼續(xù)調(diào)整參數(shù)。
如果我們假設(shè)數(shù)據(jù)是由一個目標函數(shù)生成的,而這個目標函數(shù)最高復雜度是C。如果用一個只有一層隱藏層,而隱藏層含有m個核的神經(jīng)網(wǎng)絡(luò)來學習:
E_{in}(h) = \frac{1}{N}(h(x_n)-y_n)^2 <= \frac{(2RC)^2}{m},而R = max(x),E_(in) <= E_{out}^* + O(C/m)
所以如果神經(jīng)元越多,那么可以得到越小的錯誤。
既然優(yōu)化樣本內(nèi)錯誤的問題解決了,那么就是泛華的問題了。
對于兩層的MLP,也就是一層隱藏層的神經(jīng)網(wǎng)絡(luò):
d_{vc} <= (const)mdlog(md)
現(xiàn)在就來證明一下:


假設(shè)每一個Hi的VC維是
d_i
,那么每一個神經(jīng)元對于一個數(shù)據(jù)點的二分最高次數(shù)是
N^{d_i}
,一共這么多種組合方法,所以一共有
N^{\sum_{i=1}^md_i}
,再加上后面最后一個輸出函數(shù):
N^{{\sum_{i=1}^md_i}+d_c}

根據(jù)之前的VC分析,我們可以得到
m(N) < 2^N
,可以得到
N > 2Dlog_2^D
,如果m不是很大,我們可以用很好的泛化,而m大又容易過擬合。

⑥Regularization and Validation

首先是權(quán)值衰減,

還有另外一種衰減方式:



對于比較大的權(quán)值,懲罰項是近似常數(shù),對于比較小的權(quán)值會衰減的更加快。
這是一種叫權(quán)重衰減的方法,還有一種是early stop,這種方法比較好理解,神經(jīng)網(wǎng)絡(luò)不是一次性就開發(fā)出所有的假設(shè),是不斷的在調(diào)整迭代的過程中才會慢慢的開放出新的權(quán)值,所以每一次迭代之后,他的假設(shè)集就會大一點,當?shù)螖?shù)不多的時候,就假設(shè)集就會小,那么VC維也就不高了。

⑧Networks with many layers

神經(jīng)網(wǎng)絡(luò)的第一層會建立起比較低級別的特征,第二層會在第一層的基礎(chǔ)上再建立一層更高級的特征,以此類推,所以神經(jīng)網(wǎng)絡(luò)可以發(fā)現(xiàn)很多機器學習發(fā)現(xiàn)不了的特征,這種自動選擇特征是神經(jīng)網(wǎng)絡(luò)的一大特點。
對于神經(jīng)網(wǎng)絡(luò)的訓練,一下方法比較常用:


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容