回覆列表
-
1 # 孟文浩
-
2 # DeepLearning
好的答案都是簡潔而不是長篇大論,我認為最為巧妙的就是一個關於偏置項處理的方法,考慮以下神經元的加權輸出
f(w0, w1, w2, ...) = w0 + w1x1 + w2x2 + ...
這裡使用一個w0來代替偏置項b,參考下邊式子,是原始神經元對每個輸入的處理:
y = wx + b
這裡有n個輸入,就有n個偏置項,求解起來浪費計算力,於是我們給每一層增加一個虛假的神經元“1”, 就巧妙的把w與b統一了。向量點積表示法
(w0, w1, w2, ...) • (1, x1, x2, ...)
= w0 + w1x1 + w2x2 + ...
這樣w0就等同於b啦,只要調整向量w即可。
機器學習算是近幾年比較火的一項技術了吧,有些人可能會覺得機器學習是一門十分玄妙高深技術,其實不然。(當然,非常數學)
,我會用一些大部分在初高中就學習過的知識來解釋機器學習的主要數學原理,爭取大部分人能看懂。只會講一些入門級的理解,至於詳細內容和更高階的知識有興趣的可以自己去研究。
首先,我們要知道”機器“——也就是計算機是如何學習的。
機器學習,本質上來講就是建構函式。
一開始,這個函式的引數和變數都是未知的,而訓練就是我們想要把這個函式的未知引數確認下來,使得當我們將變數代入函式時,我們能計算出與期望的值相近的結果。
最終,這些確認下來的引數就是機器學習的結果,只要我們將原來函式的引數設定為我們訓練出來結果,那麼當我們在將變數代入函式時,我們就能得到我們期望的結果。
在初高中的學習中,與這種思路類似(即通過已知的一系列(x,y)來確定函式的a和b)的就是線性迴歸問題,然而線上性迴歸問題中,我們求引數a和b都是通過將所有樣本一起計算得到的。而機器學習過程中,我們每代入一次樣本值,a和b就會離正確的結果更進一步。
而要讓a和b里正確結果更進一步,我們會構造另外一個名為損失函式的函式,比如線性迴歸問題裡,我們可以選擇L=(ax+b-y)^2,這個函式裡,a和b是變數,已經代入的(x,y)是引數,函式越小,ax+b越接近y。然後我們通過對L進行關於a或b的求導數(導數即函式在一點的的斜率)來確定a和b分別加減多少才能離結果更近。