机器学习——人工神经网络之后向传播算法(BP算法)
目錄
?
一、后向傳播算法的本質(zhì)——梯度下降法求局部極值
1、w迭代公式的合理性
二、后向傳播算法的推導(dǎo)(以二層神經(jīng)網(wǎng)絡(luò)為例)
1、問(wèn)題描述(創(chuàng)建目標(biāo)函數(shù)loss函數(shù),求參數(shù))
2、求解參數(shù)的流程(四步曲)
3、求解參數(shù)第二步——目標(biāo)函數(shù)對(duì)每一個(gè)參數(shù)求偏導(dǎo)(BP算法目的所在)
>>>問(wèn)題1:為什么叫做后向傳播算法(BP)?
>>>問(wèn)題2:非線性函數(shù)fai的改造(重要)——激活函數(shù)
1)fai的改造函數(shù)形式一
2)fai的改造函數(shù)形式二
3)fai的改造函數(shù)形式三
4)fai的改造函數(shù)形式四
三、多層神經(jīng)網(wǎng)絡(luò)的向量模型以及BP算法求參(w(m)、b(m))流程步驟
1、多層神經(jīng)(l層)網(wǎng)絡(luò)的向量模型(前向傳播流程)
1)關(guān)于多層神經(jīng)網(wǎng)絡(luò)向量模型中的一些定義
2)多層神經(jīng)(l層)網(wǎng)絡(luò)的向量模型
?>>>問(wèn)題3:上圖中w(m),b(m)是怎么變化的?
2、BP算法(后向傳播算法)流程
1)推導(dǎo)利用BP求偏導(dǎo)(鏈?zhǔn)椒▌t)——已知第m+1層求第m層
2)所有對(duì)參數(shù)w,b的偏導(dǎo)
3)求解所有w,b參數(shù)小結(jié)(求解流程)
>>>問(wèn)題4:w,b迭代公式中的α怎么進(jìn)行取值?
一、后向傳播算法的本質(zhì)——梯度下降法求局部極值
這里需要注意的是區(qū)分SVM和BP,SVM找的是全局的最優(yōu)解,BP尋找的是局部的最優(yōu)解
1、w迭代公式的合理性
w的迭代公式是為了讓函數(shù)值一直減小,直到在局部達(dá)到最小,即導(dǎo)數(shù)為0,那迭代公式能否完成極值點(diǎn)的尋找呢?證明如下:
從上圖可知,通過(guò)w的迭代公式,可以讓函數(shù)值隨w的迭代而一直減小,直到找到極值點(diǎn)
二、后向傳播算法的推導(dǎo)(以二層神經(jīng)網(wǎng)絡(luò)為例)
1、問(wèn)題描述(創(chuàng)建目標(biāo)函數(shù)loss函數(shù),求參數(shù))
下面為二層神經(jīng)網(wǎng)絡(luò),有9個(gè)未知參數(shù),目的是在讓E函數(shù)值最小的情況下求解這9個(gè)參數(shù)
2、求解參數(shù)的流程(四步曲)
3、求解參數(shù)第二步——目標(biāo)函數(shù)對(duì)每一個(gè)參數(shù)求偏導(dǎo)(BP算法核心)
第二步結(jié)束,執(zhí)行第三步和第四步,直到滿足條件時(shí)所有的參數(shù)w,b就算出來(lái)了
?
>>>問(wèn)題1:為什么叫做后向傳播算法(BP)?
答:如下圖所示,
我們首先要從前往后通過(guò)輸入的X來(lái)計(jì)算,a和z、y的表達(dá)式(前向計(jì)算),
然后再從后到前依次計(jì)算對(duì)各個(gè)參數(shù)的偏導(dǎo),因此BP算法的目的就是用來(lái)求目標(biāo)函數(shù)對(duì)參數(shù)的偏導(dǎo)的,所以叫后向傳播算法
?
>>>問(wèn)題2:非線性函數(shù)fai的改造(重要)——激活函數(shù)
求目標(biāo)函數(shù)對(duì)參數(shù)求偏導(dǎo)時(shí)含有fai的導(dǎo)數(shù),而前面說(shuō)fai是階躍函數(shù),那其導(dǎo)數(shù)恒等于0,在0處無(wú)窮大,那該怎么把fai的導(dǎo)數(shù)帶入到求參數(shù)偏導(dǎo)的式子中去呢?
答:這樣的fai函數(shù)肯定是不行的,為此對(duì)fai函數(shù)進(jìn)行了改造,改造成了以下幾種形式
建議先看文章:《機(jī)器學(xué)習(xí)——人工神經(jīng)網(wǎng)絡(luò)之多層神經(jīng)網(wǎng)絡(luò)(多層與三層)——數(shù)學(xué)模型中的非線性函數(shù)fai》
用以下的fai函數(shù)和三層神經(jīng)網(wǎng)絡(luò)模型結(jié)合也可以解決所有的線性問(wèn)題
1)fai的改造函數(shù)形式一
?
2)fai的改造函數(shù)形式二
以下兩種是深度學(xué)習(xí)常被用到的fai函數(shù)
3)fai的改造函數(shù)形式三
4)fai的改造函數(shù)形式四
三、多層神經(jīng)網(wǎng)絡(luò)的向量模型以及BP算法求參(w(m)、b(m))流程步驟
1、多層神經(jīng)(l層)網(wǎng)絡(luò)的向量模型(前向傳播流程)
1)關(guān)于多層神經(jīng)網(wǎng)絡(luò)向量模型中的一些定義
?
2)多層神經(jīng)(l層)網(wǎng)絡(luò)的向量模型
?>>>問(wèn)題3:上圖中w(m),b(m)是怎么變化的?
答:w(m)和b(m)是待求參數(shù),上圖只是通過(guò)數(shù)學(xué)的推導(dǎo)來(lái)表示清楚多層神經(jīng)網(wǎng)絡(luò)模型中各個(gè)參數(shù)的變化以及關(guān)系式,至于怎么求w(m)和b(m)依舊使用的是BP算法,具體怎么求看后面部分
?
2、BP算法(后向傳播算法)流程
注意:
1、這里得區(qū)分開y和Y的關(guān)系,y是變量,Y是輸入的標(biāo)簽是已知量,但是兩者的維度是一致的
2、鏈?zhǔn)椒▌t指的就是求復(fù)合函數(shù)的偏導(dǎo)的法則
?
1)推導(dǎo)利用BP求偏導(dǎo)(鏈?zhǔn)椒▌t)——已知第m+1層求第m層
①鏈?zhǔn)?:最后一層(l層)的偏導(dǎo)
?
②鏈?zhǔn)?:第m層的偏導(dǎo)——從后往前推的遞推式
?
2)所有對(duì)參數(shù)w,b的偏導(dǎo)
通過(guò)下面四個(gè)式子可以將目標(biāo)函數(shù)對(duì)所有參數(shù)的偏導(dǎo)求解出來(lái)
?
3)求解所有w,b參數(shù)小結(jié)(求解流程)
1、任意取一組參數(shù)w,b,
2、求出目標(biāo)函數(shù)對(duì)所有參數(shù)w,b的偏導(dǎo)的表達(dá)式
3、將w,b的值代入偏導(dǎo)公式求出偏導(dǎo)值
4、根據(jù)w,b的迭代公式對(duì)w,b參數(shù)進(jìn)行更新,得到新的一組w,b參數(shù)
5、若目標(biāo)函數(shù)對(duì)所有的參數(shù)的偏導(dǎo)為0,則取該組w,b參數(shù)作為最優(yōu)模型的參數(shù),否則一直進(jìn)行循環(huán),直到偏導(dǎo)都為0
通過(guò)上述就將模型確定了
?
>>>問(wèn)題4:w,b迭代公式中的α怎么進(jìn)行取值?
答:α在模型中叫做步長(zhǎng),這個(gè)參數(shù)的取值,一般是通過(guò)調(diào)整得到的,過(guò)大可能會(huì)導(dǎo)致錯(cuò)過(guò)最好的參數(shù),過(guò)小收斂效率慢。總的來(lái)說(shuō)這個(gè)參數(shù)的取值隨緣,先定一個(gè)步長(zhǎng),算出w,b后,再慢慢調(diào)節(jié)阿爾法的值
?
對(duì)模型中的參數(shù)該怎么進(jìn)行設(shè)置呢?請(qǐng)看文章:《機(jī)器學(xué)習(xí)——人工神經(jīng)網(wǎng)絡(luò)之參數(shù)設(shè)置(BP算法)》
?
?
?
?
總結(jié)
以上是生活随笔為你收集整理的机器学习——人工神经网络之后向传播算法(BP算法)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Oracle数据库 查询所有表
- 下一篇: 华为杯数学建模竞赛百分百获奖经验分享(获