書-Deep Learning 用Python 進行深度學習的基礎理論實作
⊙輸出層
⊙恆等函數
⊙sfotmax函數
⊙sfotmax函數-使用問題
⊙輸出層-神經元數量
輸出層
神經網路可以解決分類、迴歸問題,要使用相對應的活化函數(也可以混用,但是效果不太好)。
1.分類問題-恆等函數,分辨此人是男是女。
2.迴歸問題-softmax函數, 猜測此人的體重(連續性的數值)。
恆等函數
輸入什麼就輸出什麼,不做任何處理。
sfotmax函數
輸出有n個,計算第k個輸出yk,分子ak為輸入訊號,分母ai為所有輸入的總和。
算法就是把輸入的訊號經過exp後當作exp_a,exp_sum就是把exp_a全部相加,在相除就是答案了。
sfotmax函數-使用問題
當輸入的數值經過運算後過大,會造成'溢位'的問題,exp(10)就變成超過2萬的數值,exp(100)就有40個0,exp(1000)就會回傳無限的的'inf'符號,盡量把數字控制在4~8位元組之間,以免造成溢位。
下面來改良一下公式。
首先分子分母同時乘與任意定數'C'(上下乘與相同數,所以運算結果是一樣),接者移動到exp裡面當作'log C',最後把'log C'改變符號成C'。
這個任意數通常都是輸入的最大值。使用之前的公式因為數字太大造成錯誤。
我們可以發現,softmax輸出的是0~1之間的實數,這是很重要的性質,因為這個性質,所以輸出可以解釋為'機率'。
解決機器學習的問題的步驟分成兩個
學習-訓練一個模型
推論-使用模型對未知的資料進行推論(分類)
輸出層-神經元數量
會根據你想要輸出多少而定,手寫辨識就是從0~9,共10個,所以有10個輸出神經元。
可以看到上方這張圖,顏色最深的表示神經元輸出了最大值,代表這個神經網路預測為[1]。
留言列表