上節(jié)回顧:
介紹了神經(jīng)元、神經(jīng)網(wǎng)絡(luò)
介紹了激活函數(shù)
提到了前向傳播概念
留下問題:用到的參數(shù)w和b是怎么來的呀潭,是自己隨便設(shè)定的嗎
本節(jié)介紹:
神經(jīng)網(wǎng)絡(luò)钉迷、反向傳播的例子
損失函數(shù)和梯度下降法、學(xué)習(xí)率介紹
神經(jīng)網(wǎng)絡(luò)的應(yīng)用舉例
最重要的用途是分類
垃圾郵件識別:一封電子郵件钠署,把出現(xiàn)在里面的所有詞匯提取出來糠聪,送進(jìn)一個機器里,機器需要判斷這封郵件是否是垃圾郵件谐鼎。
貓狗分類:有一大堆貓舰蟆、狗照片,把每一張照片送進(jìn)一個機器里狸棍,機器需要判斷這幅照片里的東西是貓還是狗身害。
這種能自動對輸入的東西進(jìn)行分類的機器,就叫做分類器草戈。分類器的輸入是一個數(shù)值向量塌鸯,叫做特征(向量)。
第一個例子里唐片,分類器的輸入是一堆0丙猬、1值,表示字典里的每一個詞是否在郵件中出現(xiàn)费韭,比如向量(1,1,0,0,0......)就表示這封郵件里只出現(xiàn)了兩個詞abandon和abnormal茧球;
第二個例子里,分類器的輸入是照片星持,假如每一張照片都是320x240像素的紅綠藍(lán)三通道彩色照片抢埋,那么分類器的輸入就是一個長度為320x240x3=230400的向量。
分類器的輸出也是數(shù)值督暂。
第一個例子中揪垄,輸出1表示郵件是垃圾郵件,輸出0則說明郵件是正常郵件逻翁;
第二個例子中福侈,輸出0表示圖片中是狗,輸出1表示是貓卢未。
分類器的目標(biāo)就是讓正確分類的比例盡可能高肪凛。一般我們需要首先收集一些樣本,人為標(biāo)記上正確分類結(jié)果辽社,然后用這些標(biāo)記好的數(shù)據(jù)訓(xùn)練分類器伟墙,訓(xùn)練好的分類器就可以在新來的特征向量上工作了。
這就是BP神經(jīng)網(wǎng)絡(luò)(back propagation)滴铅。
反向傳播的例子
旨在得到最優(yōu)的全局參數(shù)矩陣戳葵,進(jìn)而將多層神經(jīng)網(wǎng)絡(luò)應(yīng)用到分類或者回歸任務(wù)中去。
前向傳播輸入信號直至輸出產(chǎn)生誤差汉匙,反向傳播誤差信息更新權(quán)重矩陣拱烁。
-
兩人猜數(shù)字
這一過程類比沒有隱層的神經(jīng)網(wǎng)絡(luò)生蚁,比如邏輯回歸,其中超級瑪麗代表輸出層節(jié)點戏自,左側(cè)接收輸入信號邦投,右側(cè)產(chǎn)生輸出結(jié)果,哆啦A夢則代表了誤差擅笔,指導(dǎo)參數(shù)往更優(yōu)的方向調(diào)整志衣。迭代幾輪,誤差會降低到最小猛们。
backward_exp1.png -
三人猜數(shù)字
這一過程類比帶有一個隱層的三層神經(jīng)網(wǎng)絡(luò)念脯,其中靜香代表隱藏層節(jié)點,超級瑪麗依然代表輸出層節(jié)點弯淘,靜香左側(cè)接收輸入信號绿店,經(jīng)過隱層節(jié)點產(chǎn)生輸出結(jié)果,哆啦A夢代表了誤差庐橙,指導(dǎo)參數(shù)往更優(yōu)的方向調(diào)整假勿。
超級瑪麗直接相連的左側(cè)參數(shù)矩陣可以直接通過誤差進(jìn)行參數(shù)優(yōu)化(實縱線);小女孩直接相連的左側(cè)權(quán)重矩陣可以通過間接誤差得到權(quán)重更新怕午,迭代幾輪废登,誤差會降低到最小淹魄。
backward_exp2.png
這個地方提到的誤差這個概念郁惜,其實就是對應(yīng)了損失函數(shù),損失函數(shù)說白了就是計算誤差的函數(shù)甲锡。
損失函數(shù)的介紹
舉例:線性回歸:尋找一條擬合圖中數(shù)據(jù)點最好的直線
把每條小豎線的長度加起來就等于我們現(xiàn)在通過這條直線預(yù)測出的值與實際值之間的差距
這個歐氏距離加和其實就是用來量化預(yù)測結(jié)果和真實結(jié)果的誤差的一個函數(shù)兆蕉。即為損失函數(shù)(說白了就是計算誤差的函數(shù))。
這個函數(shù)用來表示預(yù)測值和已知答案的差距缤沦,值越小虎韵,就越說明我們找到的這條直線越能擬合我們的數(shù)據(jù)。
損失函數(shù)和優(yōu)化
損失函數(shù)求解:
- 均方誤差
缺點:采用梯度下降法學(xué)習(xí)時缸废,模型一開始訓(xùn)練學(xué)習(xí)速率非常慢
- 自定義損失函數(shù)
-
交叉熵
常用于分類問題
loss2.png
模型參數(shù)優(yōu)化
- 梯度下降法
作用:求極值
什么是梯度
對一個多元函數(shù)求偏導(dǎo),會得到多個偏導(dǎo)函數(shù).這些導(dǎo)函數(shù)組成的向量,就是梯度包蓝;一元函數(shù)的梯度是什么?它的梯度可以理解為就是它的導(dǎo)數(shù)。
求解多元函數(shù)和一元函數(shù)的道理是一樣的,只不過函數(shù)是一元的時候,梯度中只有一個導(dǎo)函數(shù),函數(shù)是多元的時候,梯度中有多個導(dǎo)函數(shù).
當(dāng)我們把梯度中的所有偏導(dǎo)函數(shù)都變?yōu)?的時候,就可以找到每個未知數(shù)的對應(yīng)解企量。
什么是梯度下降
梯度下降中求偏導(dǎo)數(shù)的未知數(shù)不是x和y,而是x的參數(shù)W测萎。
梯度下降的方向:把這一點帶入到梯度函數(shù)中,結(jié)果為正,那我們就把這一點的值變小一些,同時就是讓梯度變小些;當(dāng)這一點帶入梯度函數(shù)中的結(jié)果為負(fù)的時候,就給這一點的值增大一些。
在這個下降的過程中.因為我們并不知道哪一個點才是最低點,也沒有辦法來預(yù)測下降多少次才能到最低點.這里梯度下降給出的辦法是:
先隨便蒙一個點出來,然后根據(jù)這個點每次下降以丟丟.什么時候下降得到的值(點帶入偏導(dǎo)函數(shù)得到的)和上一次的值基本一樣届巩,也就是相差特別特別小的時候,我們認(rèn)為就到了最低點硅瞧。
什么是學(xué)習(xí)率
讓點沿著梯度方向下降慢慢求得最優(yōu)解的過程我們叫做學(xué)習(xí),學(xué)習(xí)率就是用來限制他每次學(xué)習(xí)別太過"用功"的。下左圖是我們所期望的,一個點按照梯度方向下降,慢慢逼近最低點,右圖中展示的這個梯度值過大的時候,點下降的step就過大了,一次性邁過了最低點,導(dǎo)致函數(shù)無法找到最優(yōu)解恕汇。學(xué)習(xí)率就是用來限制這種情況的腕唧。
怎么反向調(diào)參
更新權(quán)重的算法:每一個權(quán)重值都要減去它對應(yīng)的導(dǎo)數(shù)和學(xué)習(xí)率的乘積
Lr 代表的是學(xué)習(xí)率
簡單舉例