神經(jīng)網(wǎng)絡(luò)模型特點:
訓(xùn)練模型的時間比較長;對于訓(xùn)練數(shù)據(jù)沒涵蓋到的數(shù)據(jù),也有比較好的預(yù)測能力。相對于決策樹,它處理連續(xù)型的輸入輸出能力比較好。神經(jīng)網(wǎng)絡(luò)模型不容易解釋。
神經(jīng)網(wǎng)絡(luò)分三層,input layer, hidden layer和output layer. 理論上hidden layer可以有任意多層,在實際中,往往只有一層被使用。
對輸入數(shù)據(jù)的每個屬性進行標(biāo)準(zhǔn)化可以提高訓(xùn)練速度。對于連續(xù)型的屬性,往往每個domain value一個input unit. 如果是classification,對于二值型的output, 可以用一個output unit(0,1)表示。如果有多個class, 每種class可以用一個output unit.
hidden layer里放多少unit往往是慢慢嘗試出來的。
貼書上的圖,看文字?jǐn)⑹龊茈y懂,但是看一個具體的例子是怎么算的數(shù)就比較容易:
其中: 是算某一個節(jié)點輸入值的. Wij是權(quán)重值,每個節(jié)點的初始權(quán)重值是隨機的,往往是-1到1或者-0.5到0.5,
是Bias.
算某個節(jié)點的output,是這樣算的: , 這樣可以得到一個0到1之間的數(shù),range比較小。
神經(jīng)網(wǎng)絡(luò)的大致思路是,如果經(jīng)過神經(jīng)網(wǎng)絡(luò)后預(yù)測的值不對,就返回來調(diào)整hidden layer units的權(quán)重,做錯了事就回頭反思一下,直到總做對事為止。
hidden layer: ,其中Wjk是從j到下一層的k節(jié)點的權(quán)重。所以這個過程叫backpropagate.
backpropagate是為了修改權(quán)重和bias。
修改權(quán)重:
其中l(wèi)叫l(wèi)earning rate, 通常是0到1之間的數(shù)。
修改bias:
神經(jīng)網(wǎng)絡(luò)結(jié)束調(diào)節(jié)可以有多種,比如 足夠小,或者misclassification足夠小或者已經(jīng)走過了預(yù)先設(shè)定那么多次的epochs
例子:
神經(jīng)網(wǎng)絡(luò)往往被批評可解釋性不好,一種解釋的方式是sensitivity analysis.就是x如果減5%,y會增加8%這種風(fēng)格。