干货|吴恩达Coursera课程教你学习神经网络二!
上一周的課程中講了神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)以及正向傳播(feed forward)過程,了解了神經(jīng)網(wǎng)絡(luò)是如何進(jìn)行預(yù)測(cè)的,但是預(yù)測(cè)的結(jié)果怎么和真是結(jié)果進(jìn)行比較以及發(fā)現(xiàn)了錯(cuò)誤如何修改還沒有提及。
這一周的課程中,介紹了cost function作為結(jié)果比較的標(biāo)準(zhǔn)以及backpropagation方法作為錯(cuò)誤修改的方式。
1?Cost Function
Linear regression使用平方差來表示結(jié)果之間的差距:
Logistic regression使用negative log來表示結(jié)果之間的差距:
Neural network實(shí)際上就是k個(gè)Logistic regression的一個(gè)集合,所以其cost function也是negative log的一個(gè)集合。整個(gè)網(wǎng)絡(luò)產(chǎn)生的error其實(shí)就是每一個(gè)Logistic regression產(chǎn)生的error的和。
2?Backpropagation
在Logistic regression中,模型是向著error的負(fù)梯度方向更新的,所以需要計(jì)算cost function的梯度,這在Neural Networks中也是如此,只不過這次的權(quán)值θ多了一些,需要一層一層慢慢求解了。
假設(shè)神經(jīng)網(wǎng)絡(luò)有4層:
先來回顧一下,一條訓(xùn)練數(shù)據(jù)的正向傳播的情況,這次我們不把bias直接加到矩陣中去了,把它拿出來,令為b(i),是一個(gè)列向量:
至此,所有的偏導(dǎo)都求完了,總結(jié)一下:
3Gradient Checking
如果梯度計(jì)算不正確,那整個(gè)模型都錯(cuò)了。最慘的是,在訓(xùn)練了幾個(gè)小時(shí)之后發(fā)現(xiàn)梯度算錯(cuò)了。所以梯度計(jì)算完之后,需要驗(yàn)算一下對(duì)不對(duì)。
梯度可以如下約等于:
驗(yàn)算過程如下:
4Random Initialization
模型中權(quán)重和偏置的初始值可以隨便設(shè)成任何數(shù)字,但是設(shè)置成什么樣直接決定了模型收斂的快慢和程度,進(jìn)而影響模型的performance。
把權(quán)重和偏置初始化為0非常不好。因?yàn)樵谇跋騻鞑ミ^程中,全部初始化成0,則結(jié)果就是0,在得到殘差之后,反向傳播過程中,殘差根據(jù)權(quán)重進(jìn)行分配,因?yàn)闄?quán)重全部為0,所以隱藏層的殘差為0,即權(quán)重不更新,所以不能全部初始化成0,權(quán)重為0的神經(jīng)元是死掉的,是不會(huì)更新的。
另外全部初始化成同樣的數(shù)字也是不好的,模型將一直以同樣的方式更新這些神經(jīng)元。反向傳播過程中,殘差根據(jù)權(quán)重進(jìn)行分配,因?yàn)闄?quán)重都相同,所以權(quán)重的更新也是相同的,所以網(wǎng)絡(luò)中的每一個(gè)神經(jīng)元都是一樣的。
一般從均勻分布中隨機(jī)初始化權(quán)重和偏置,比如:
總結(jié)
以上是生活随笔為你收集整理的干货|吴恩达Coursera课程教你学习神经网络二!的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 扎克伯格做了26张PPT,员工效率提10
- 下一篇: 国内各大平台的推荐算法,看到360的时候