Neural networks and deep learning(一本入門級(jí)好書)
Michael Nielsen
在線閱讀鏈接:http://neuralnetworksanddeeplearning.com/index.html
中文版鏈接:https://pan.baidu.com/s/1bo0t7sz 密碼: ecvf
代碼下載鏈接:https://pan.baidu.com/s/1c1PuaGC 密碼: 4w8n
(以識(shí)別手寫數(shù)字為例)
Part 0 預(yù)備知識(shí)
0-0 感知器
(接受幾個(gè)二進(jìn)制輸入,分配權(quán)重求和,產(chǎn)生一個(gè)二進(jìn)制輸出)
將閾值移到不等式另一邊辐棒,用感知器的偏置b=-threshold代替考廉。
假如我們有一個(gè)感知器拱镐,那如果這個(gè)網(wǎng)絡(luò)能學(xué)習(xí)權(quán)重和偏置,就能做出判斷啦。
0-1 S型神經(jīng)元
為了使我們的權(quán)重和偏置的微小改動(dòng)只引起微小變化堂竟,我們定義一個(gè)S型函數(shù)(求偏導(dǎo)就知道為什么可以這樣啦哗戈;而且事實(shí)上還有很多不同的激活函數(shù)):
那么此時(shí)輸出變成:
0-2 一個(gè)簡(jiǎn)單的手寫數(shù)字分類神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
注:本文討論的為前饋神經(jīng)網(wǎng)絡(luò)郊艘,即上一層輸入作為下一層輸出。(實(shí)際上也有遞歸神經(jīng)網(wǎng)絡(luò)~ )
輸入層:由于此網(wǎng)絡(luò)的輸入訓(xùn)練數(shù)據(jù)為掃描得到的2828的手寫數(shù)字圖像(0,1,2,...,9)唯咬,因此輸入層包含784=2828個(gè)神經(jīng)元纱注。
隱藏層:假設(shè)該層第一個(gè)神經(jīng)元用于檢測(cè)如下圖像是否存在:
第二三四個(gè)分別檢測(cè)以下是否存在:
那么若隱藏層的這四個(gè)神經(jīng)元都被激活,則可以判斷為0.
輸出層:含有10個(gè)神經(jīng)元胆胰。
Part 1 使用梯度下降算法學(xué)習(xí)權(quán)重和偏置
定義二次代價(jià)函數(shù)量化我們的目標(biāo):
問題轉(zhuǎn)化成求使C(w,b)最小的w和b狞贱。如下圖,梯度下降方向則為使C最快減小的方向蜀涨,eta稱為學(xué)習(xí)速率瞎嬉。
為了加快學(xué)習(xí),采用隨機(jī)梯度下降:通過隨機(jī)選取小量訓(xùn)練樣本計(jì)算deltaCx厚柳,求平均值即可得到deltaC的估算氧枣。
Part 2 反向傳播算法計(jì)算代價(jià)函數(shù)的梯度
2-0 一些符號(hào)表示
代價(jià)函數(shù)表示為:
2-1 四個(gè)基本方程
2-2 反向傳播算法