重量值也是上面提到的小蜘蛛的道具。沒看過的朋友可以先看看我上壹篇博客。
如何獲得權重值?
我們以具有三個神經元的最簡單的神經網絡為例:
最左邊的神經元是起點,最右邊的神經元是終點,只有中間的神經元具有權重值。
讓我們先離散地得到壹些點:
我們可以隱約看到這些點圍繞壹條直線分布。讓我們畫這條直線。
那我們怎麽讓這條紅線穿過這些點呢?
這十個已知點是什麽?
第壹列表示X軸的坐標,第二列表示Y軸的坐標。
實際上,這個想法是使用最小二乘法,假設隨便畫壹條線。
我用y=0.1x+0.1畫了壹條線,如圖所示。
顯然,我們畫的線之間有很大的差距。此時使用最小二乘法,即把每個點到直線的距離加起來,然後使用梯度下降法進行優化!
好吧,如果我這麽說,那就必須和我說的壹樣,然後我會壹步壹步來。
第壹個點的坐標為(1,0.16375502570787515)。我們將x=1帶入y=0.1x+0.1的函數中,得到y=0.2。
顯然,我們正確的Y應該是0.163,那麽正確的Y和我們在y=0.1x+0.1時得到的Y值有什麽區別呢?差值為:(0.163-0.2)2。
我們必須想辦法縮小差距。
差距是怎麽來的?預測值減去真實值後再平方,即(0.1 * 1+0.1-0.2)2 =》;(wx+b-2)^2
也就是說,我們要得到函數(y-wx+b)2的最小值,也就是求這個函數的最小值。高中數學裏說求函數最小值的方法是求導,是二元函數,是高考最喜歡的題目!!!求導後畫出導函數的圖像,然後與0相交的點就是最小點!妳應該熟悉這壹步。
但是
這個函數有兩個未知數,W和b .我們的思路是正確的,但我們無法通過這種方法獲得最小值,所以我們在這裏求W和b的偏導數。(這裏需要微積分教育)W的偏導數是2w(wx+B- y)。b的偏導數是2(wx+B- y)。
此時,我們將第壹點的數據代入X = 1、Y = 0.163、W = 0.1、B = 0.1。
w的偏導數等於0.0326
b的偏導數等於0.326
此時,我們設置壹個步長,也稱為學習率,假設它等於0.2。
所以,
我們已經更新了w和b的值,只要我們重復這壹步足夠多次,就可以得到壹條非常接近紅色的線。
其實這就是神經網絡的訓練過程。
首先,我們已經擁有的價值觀被引入網絡。網絡開始時的權重是隨機的,通過將其引入網絡來獲得預測值。這個預測值與真實值會有壹定的差距,所以我們對這個差距進行了優化,使其更小。其實這是壹個反向傳播的過程。我們使用數學計算來更新W和B的值,因此預測值與下次將其引入網絡所獲得的真實值之間的距離將會縮小,以此類推。隨著距離的減小,我們可以得到壹個預測能力更好的W和B,即壹個擬合能力更強的網絡,對於未知數據我們可以得到更準確的結果。