回覆列表
-
1 # MMLab
-
2 # 噔噔學習日記
啊..小的不才,理解不了你的問題。
既然你都問到神經網路,又提到群優化了,那想必也知道神經網路是一種監督學習演算法,意味著我們需要向它提供包含自變數的輸入資料和包含因變數的輸出資料。
而神經網路會根據初始超參進行預測,並計算出預測值與實際值之間的差。我們的目標是使這個差要最小化。所以,訓練神經網路基本上就是要找到這個最小化差(我就不用成本函式這個詞了)。
那麼問題來了,神經網路是怎麼做預測的?通俗簡單的說,就是將輸入節點中的值與其對應的權重相乘並相加。最後,將偏差項新增到總和中並傳遞啟用函式做輸出。那怎麼找這個最小化差?簡單通俗的說就是一遍又一遍的迴圈著做減法(預測值-實際值)直到這個差最小(此處不說過擬合)。咱們把1.2合起來叫做向前傳播吧。那既然有向前傳播了,意思是說還有向後傳播嘍?對頭(呀~你問的不會就是向後傳播吧?)。那向後傳播是幹什麼的?就是神經網路透過最小化差的比較,不斷的微調權重和偏差。怎麼微調?就是把計算出來的權重和學習率相乘。怎麼向前傳播?就是把微調的結果丟給前面的1中去更新上一輪中的權重後再來一遍,這個後面輸出的權重再拋回前面做輸入的過程就叫向後傳播)如此,不斷的迴圈到你設定的迭代總次數為止。直到預測輸出變得更接近實際輸出,這整個過程基本上就叫“訓練神經網路”了。
神經網路其實就是一個高階的數學模型,y=f(x),你現在需要反函式x=g(y),這沒有辦法直接推匯出來,因為根據
反函式存在定理: 嚴格單調的函式必定存在嚴格單調的反函式,並且二者單調性相同。
神經網路不滿足這個定理,輸入輸出並非嚴格單調的。舉個例子
輸入: (白人,黑人,小黃人)
輸出: 人
請問你能根據輸出判斷輸入是什麼人嗎?