Chapter 7:Neural Network

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

①The Multi-layer Perceptron



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

②Notation and Forward Propagation

Notation:層數(shù)使用l = 1,2,3...L來表示,輸入層將不能被看做是一個(gè)層,每一層會(huì)有d^l + 1個(gè)節(jié)點(diǎn),因?yàn)檫€要加上一個(gè)偏置項(xiàng)。輸入層沒有進(jìn)來的權(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)值,然后再每一步的時(shí)候更新所有權(quán)值即可。但是對于一個(gè)神經(jīng)網(wǎng)絡(luò)來說就沒有這么簡單了,因?yàn)樯窠?jīng)網(wǎng)絡(luò)這么多層的疊加已經(jīng)不再是一種簡單的凸優(yōu)化函數(shù)了,而是很復(fù)雜的函數(shù)疊加。如果初始權(quán)值初始化的太大了,那么E_{in} = 0。因此,我們需要選擇比較小的權(quán)值使得一開始tanh^2(w_n^Tx_n) = 0
一個(gè)比較好的選擇就是使用高斯函數(shù)初始化。
終止點(diǎn):
一個(gè)比較好的選擇是當(dāng)邊緣error很小,而且迭代一定的次數(shù)之后就可以停止了。

④BackPropagation

主要就是使用鏈?zhǔn)椒▌t。






需要注意的是,有時(shí)候我們會(huì)發(fā)現(xiàn)誤差平面可能會(huì)看起來很平,也就是遇到了梯度消失,這是因?yàn)閠anh已經(jīng)飽和了,對于這種情況,可以使用一個(gè)不容易飽和的函數(shù)來修復(fù),比如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)化來說,能力會(huì)更強(qiáng),在線性模型里面,非線性轉(zhuǎn)化函數(shù)是先前就確定了的,也就是再?zèng)]看到數(shù)據(jù)之前就確定了,而神經(jīng)網(wǎng)絡(luò)是在參數(shù)里面的,我們可以在看到數(shù)據(jù)的情況下繼續(xù)調(diào)整參數(shù)。
如果我們假設(shè)數(shù)據(jù)是由一個(gè)目標(biāo)函數(shù)生成的,而這個(gè)目標(biāo)函數(shù)最高復(fù)雜度是C。如果用一個(gè)只有一層隱藏層,而隱藏層含有m個(gè)核的神經(jīng)網(wǎng)絡(luò)來學(xué)習(xí):
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)元越多,那么可以得到越小的錯(cuò)誤。
既然優(yōu)化樣本內(nèi)錯(cuò)誤的問題解決了,那么就是泛華的問題了。
對于兩層的MLP,也就是一層隱藏層的神經(jīng)網(wǎng)絡(luò):
d_{vc} <= (const)mdlog(md)
現(xiàn)在就來證明一下:


假設(shè)每一個(gè)Hi的VC維是
d_i
,那么每一個(gè)神經(jīng)元對于一個(gè)數(shù)據(jù)點(diǎn)的二分最高次數(shù)是
N^{d_i}
,一共這么多種組合方法,所以一共有
N^{\sum_{i=1}^md_i}
,再加上后面最后一個(gè)輸出函數(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)值,懲罰項(xiàng)是近似常數(shù),對于比較小的權(quán)值會(huì)衰減的更加快。
這是一種叫權(quán)重衰減的方法,還有一種是early stop,這種方法比較好理解,神經(jīng)網(wǎng)絡(luò)不是一次性就開發(fā)出所有的假設(shè),是不斷的在調(diào)整迭代的過程中才會(huì)慢慢的開放出新的權(quán)值,所以每一次迭代之后,他的假設(shè)集就會(huì)大一點(diǎn),當(dāng)?shù)螖?shù)不多的時(shí)候,就假設(shè)集就會(huì)小,那么VC維也就不高了。

⑧Networks with many layers

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


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

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

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