深度學(xué)習(xí)的概念源于人工神經(jīng)網(wǎng)絡(luò)的研究,神經(jīng)網(wǎng)絡(luò)是由多個(gè)神經(jīng)元組成,。一個(gè)神經(jīng)元由以下幾個(gè)關(guān)鍵知識點(diǎn)組成:
? ? ? ? ????????????????????????①激活函數(shù)? ? ? ? ? ? ? ? ②損失函數(shù)? ? ? ? ? ? ? ? ③梯度下降
單個(gè)神經(jīng)元的網(wǎng)絡(luò)模型如圖所示
用計(jì)算公式表達(dá)如下:
z為輸出的結(jié)果,x為輸入,w為權(quán)重,b為偏置值。z的計(jì)算過程是將輸入的x與其對應(yīng)的w相乘,然后再把結(jié)果加上偏置值b。
模型每次的訓(xùn)練學(xué)習(xí)是為了調(diào)整w和b從而得到一個(gè)合適的值,最終由這個(gè)值配合運(yùn)算公式所形成的邏輯就是神經(jīng)網(wǎng)絡(luò)的模型??梢钥匆幌麓竽X細(xì)胞里的神經(jīng)突觸。它和我們建立的模型有點(diǎn)神似。
? ? ? ? 大腦神經(jīng)細(xì)胞是靠生物電來傳遞信號的,可以把它理解成經(jīng)過模型的具體數(shù)值
? ? ? ? 神經(jīng)細(xì)胞相連的樹突有粗有細(xì),顯然對通過不同粗細(xì)連接的生物電信號,會(huì)有不同的影響。這類似權(quán)重w,因?yàn)槊總€(gè)輸入節(jié)點(diǎn)都會(huì)與相關(guān)連接的w相乘,也就實(shí)現(xiàn)了對信號的放大、縮小處理
? ? ? ? 中間的細(xì)胞體是不知道如何運(yùn)作的??梢詫⑺休斎氲男盘柦?jīng)過w變換之后,再添加一個(gè)額外的偏置量b,把它們加在一起求和,然后再選擇一個(gè)模擬細(xì)胞體處理的函數(shù)(即激活函數(shù))來實(shí)現(xiàn)整個(gè)過程的仿真。當(dāng)通過調(diào)整w和b得到一個(gè)合適的值后,再配合合適的激活函數(shù),就會(huì)發(fā)現(xiàn)它可以產(chǎn)生很好的擬合效果,從而得出細(xì)胞體的運(yùn)作邏輯。
正向傳播
? ? ? ? 模擬細(xì)胞體的仿真過程中,將數(shù)據(jù)從輸入到輸出的這種流向傳遞過程,稱為正向傳播。且該過程是在一個(gè)假設(shè)有合適的w和b的基礎(chǔ)上,才可以實(shí)現(xiàn)對現(xiàn)實(shí)環(huán)境的正確擬合。然而,在現(xiàn)實(shí)環(huán)境中,是不知道w和b的值具體是多少才算正常的。
反向傳播
? ? ? ? 反向傳播的目的 : 告訴模型w和b的值調(diào)整到多少合適。
? ? ? ? 在一開始沒有得到合適的權(quán)重時(shí),正向傳播生成的結(jié)果與實(shí)際的標(biāo)簽是有誤差的,反向傳播就是要把這個(gè)誤差傳遞給權(quán)重,讓權(quán)重做適當(dāng)?shù)卣{(diào)整來達(dá)到一個(gè)合適的輸出。
? ? ? ? 代碼示例如下:
#反向優(yōu)化
cost = tf.reduce_mean(tf.square(Y - z))
learning_rate = 0.01
#使用梯度下降算法
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
? ? ? ? 實(shí)際訓(xùn)練過程中,模型需要通過多次迭代一點(diǎn)一點(diǎn)的修正,直到輸出值與實(shí)際標(biāo)簽值的誤差小于某個(gè)閾值為止。這個(gè)過程中,還需要將輸出的誤差轉(zhuǎn)化為權(quán)重的誤差,經(jīng)常使用的算法是誤差反向傳播算法,也就是BP算法。
? ? ? ? 為了要讓損失值變得最小化,需要通過對其求導(dǎo)的方式,找到最小值時(shí)刻的函數(shù)切線斜率(也就是梯度),從而讓w和b的值沿著這個(gè)梯度來調(diào)整。至于每次調(diào)整多少,我們引入一個(gè)叫做"學(xué)習(xí)率"的參數(shù)來控制,這樣通過不斷的迭代,使誤差逐步接近最小值,最終找到w和b的合適值,達(dá)到擬合的效果。
誤差反向傳播算法-BP算法的思想
? ? ? ? 反向傳播使用的BP算法是應(yīng)用較為廣泛的一種參數(shù)學(xué)習(xí)算法。它是一種按照誤差逆向傳播算法訓(xùn)練的多層前饋神經(jīng)網(wǎng)絡(luò)。
? ? ? ? 該算法的核心思想就是通過輸出層得到輸出結(jié)果和期望輸出的誤差來間接調(diào)整隱層的權(quán)值。
? ? ? ? BP算法的模型示意圖如下:
? ? ? ? BP算法的學(xué)習(xí)過程由信號的正向傳播(求損失)與誤差的反向傳播(誤差回傳)兩個(gè)過程組成:
? ? ? ? ? ? ? ? 正向傳播FP(求損失) : 在這個(gè)過程中,根據(jù)輸入的樣本、給定的初始化權(quán)重值w和偏置量b,計(jì)算最終輸出值以及輸出值與實(shí)際值之間的損失值。如果損失值不在給定的范圍內(nèi)則進(jìn)行反向傳播的過程,否則停止w、b的更新。
? ? ? ? ? ? ? ? 反向傳播BP(回傳誤差) : 將輸出以某種形式通過隱層向輸入層反傳,并將誤差分?jǐn)偨o各層的所有單元,從而獲得各層單元的誤差信號,此誤差信號即作為修正各單元權(quán)值的依據(jù)。文章來源:http://www.zghlxwxcb.cn/news/detail-726854.html
? ? ? ? 由于BP算法是通過傳遞誤差值δ進(jìn)行更新求解權(quán)重值w和偏置值b,所以BP算法也常常被叫做δ算法。文章來源地址http://www.zghlxwxcb.cn/news/detail-726854.html
到了這里,關(guān)于TensorFlow入門(十七、神經(jīng)元的擬合原理)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!