《Neural networks and deep learning》概览
最近閱讀了《Neural networks and deep learning》這本書(shū)(online book,還沒(méi)出版),算是讀得比較仔細(xì),前面幾章涉及的內(nèi)容比較簡(jiǎn)單,我著重看了第三章《Improving the way neural networks learn》,涉及深度神經(jīng)網(wǎng)絡(luò)優(yōu)化和訓(xùn)練的各種技術(shù),對(duì)第三章做了詳細(xì)的筆記(同時(shí)參考了其他資料,以后讀到其他相關(guān)的論文資料也會(huì)補(bǔ)充或更改),歡迎有閱讀這本書(shū)的同學(xué)一起交流。以下屬個(gè)人理解,如有錯(cuò)誤請(qǐng)指正。
What this book is about?
這本書(shū)中的代碼基于Python實(shí)現(xiàn),從MNIST這個(gè)例子出發(fā),講人工神經(jīng)網(wǎng)絡(luò)(Neural networks),逐步深入到深度學(xué)習(xí)(Deep Learning),以及代碼實(shí)現(xiàn),一些優(yōu)化方法。適合作為入門(mén)書(shū)。
1、 Using neural nets to recognize handwritten digits
-
文章概要
用人工神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別MNIST數(shù)據(jù)集,Python實(shí)現(xiàn),僅依賴NumPy庫(kù)。
2、 How the backpropagation algorithm works
-
文章概要
上一章沒(méi)有討論怎么優(yōu)化NN,當(dāng)時(shí)并沒(méi)有討論怎么計(jì)算損失函數(shù)的梯度,沒(méi)有討論優(yōu)化過(guò)程,這就是這一章要講的BP算法。
-
BP算法在1970s出現(xiàn),但直到1986年Hinton的paper發(fā)表之后它才火起來(lái)。
-
BP實(shí)現(xiàn)代碼
the code was contained in the update_ mini _ batch and backprop methods of the Network class.In particular, the update_mini_batch method updates the Network’s weights and biases by computing the gradient for the current mini_batch of training examples:
-
Fully matrix-based approach to backpropagation over a mini-batch
Our implementation of stochastic gradient descent loops over training examples in a mini-batch. It’s possible to modify the backpropagation algorithm so that it computes the gradients for all training examples in a mini-batch simultaneously. The idea is that instead of beginning with a single input vector, x, we can begin with a matrix X=[x1x2…xm] whose columns are the vectors in the mini-batch.
將mini batch里的所有樣本組合成一個(gè)大矩陣,然后計(jì)算梯度,這樣可以利用線性代數(shù)庫(kù),大大地減少運(yùn)行時(shí)間。
-
BP算法有多快?
BP算法剛發(fā)明的時(shí)候,計(jì)算機(jī)計(jì)算能力極其有限?,F(xiàn)在BP在深度學(xué)習(xí)算法中廣泛應(yīng)用,得益于計(jì)算能力的大躍升,以及很多有用的trick。
-
what’s the algorithm really doing?
這部分對(duì)BP算法深入討論,是個(gè)證明過(guò)程。網(wǎng)絡(luò)前面某個(gè)節(jié)點(diǎn)發(fā)生的改變,會(huì)一層一層往后傳遞,導(dǎo)致代價(jià)函數(shù)發(fā)生改變,這兩個(gè)改變之間的關(guān)系可以表示為:
一層一層地推導(dǎo),又可以表示為:
后面還有一堆……
關(guān)于BP的原理,建議看看Andrew NG的UFLDL,也可以看一些相應(yīng)的博文。
3、Improving the way neural networks learn
這一章討論一些加速BP算法、提高NN性能的技術(shù)。這些技術(shù)/trick在訓(xùn)練網(wǎng)絡(luò)、優(yōu)化的時(shí)候很常用,如下所述,(目前還沒(méi)整理完各個(gè)部分的筆記,而且篇幅長(zhǎng),就分為幾篇博客來(lái)寫(xiě),陸續(xù)在 [文章鏈接] 中貼出。):
比方差代價(jià)函數(shù)更好的: 交叉熵代價(jià)函數(shù) [文章鏈接]
四種正則化方法(提高泛化能力,避免overfitting): [文章鏈接]
- L1 regularization
- L2 regularization
- dropout
- artificial expansion of the training data
4、A visual proof that neural nets can compute any function
轉(zhuǎn)載請(qǐng)注明出處:http://blog.csdn.net/u012162613/article/details/44220115
總結(jié)
以上是生活随笔為你收集整理的《Neural networks and deep learning》概览的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: DeepLearning tutoria
- 下一篇: 卷积神经网络的一些细节