線性回歸、對數幾率回歸模型,本質上是單個神經元。計算輸入特征加權和。偏置視為每個樣本輸入特征為1權重,計算特征線性組合。激活(傳遞)函數 計算輸出。線性回歸,恆等式(值不變)。對數幾率回歸,sigmoid。輸入->權重->求和->傳遞->輸出。softmax分類含C個神經元,每個神經元對應一個輸出類 ...
線性回歸、對數幾率回歸模型,本質上是單個神經元。計算輸入特征加權和。偏置視為每個樣本輸入特征為1權重,計算特征線性組合。激活(傳遞)函數 計算輸出。線性回歸,恆等式(值不變)。對數幾率回歸,sigmoid。輸入->權重->求和->傳遞->輸出。softmax分類含C個神經元,每個神經元對應一個輸出類別。
XOR異或運算,無法通過線性模型解決。sigmoido類型神經元要求數據線性可分。2D數據存在直線,高維數據存在超平面,把不同類別樣本分隔。
在神經網路輸入和輸出之間插入更多神經元,解決非線性可分問題。輸入層->隱含層(hidden layer)->輸出層->輸出。隱含層使網路可以對輸入數據提出更多問題。隱含層每個神經元對應一個問題,依據問題回答最終決定輸出結果。隱含層在數據分佈圖允許神經網路繪製以一條以上分隔線。每條分隔線向輸入數據劃分提出問題,所有相等輸出劃分到單個區域。深度學習,添加更多隱含層,可採用不同類型連接,使用不同激活函數。
梯度下降法,找到函數極值點。學習,改進模型參數,大量訓練,損失最小化。梯度下降法尋找損失函數極值點。梯度輸出偏導數向量,每個分量對應函數對輸入向量相應分量偏導。求偏導,當前變數外所有變數視為常數,用單變數求導法則。偏導數度量函數輸出相對特定輸入變數的變化率,當輸入變數值變化,輸出值的變化。損失函數輸入變數指模型權值,不是實際數據集輸入特征。相對於推斷模型每個權值。
梯度輸出向量表明每個位置損失函數增長最快方向,在函數每個位置向哪個方向移動函數值可增長。點表示權值當前值。梯度向右箭頭表示為增加損失需向右移動,簡頭長度表示向右移動函數值增長量。反方向移動,損失函數值減少。直到梯度模為0,達到損失函數極小值點。
學習速率(learning rate)縮放梯度。梯度向量長度在損失函數單元中,縮放與權值相加。學習速率是超參數(hyperparameter),模型手工可配置設置,需指定正確值。太小,需要多輪迭代。太大,超調(overshooting),永遠找不到極小值點。用tf.summary.scalar函數在TensorBoard查看損失函數值變化曲線。
局部極值點問題,通過權值隨機初始化,增加靠近全局最優點附近開始下降機會。損失函數所有極值點接近等價。
tf.gradients方法,符號計算推導指定流圖步驟梯度以張量輸出。梯度下降法取決輸入數據形狀及問題特點。
誤差反向傳播演算法,計算損失函數相對網路權值偏導,每層導數都是後一層導數與前一層導輸出積。前饋,從輸入開始,逐一計算隱含層輸出,直到輸出層。計算導數,從輸出層逐一反向傳播。復用所有已完成計算元素。
Sigmoid隱含層,softmax輸出層以及帶反向傳播梯度下降,是最基礎構件。
參考資料:
《面向機器智能的TensorFlow實踐》
歡迎加我微信交流:qingxingfengzi
我的微信公眾號:qingxingfengzigz
我老婆張幸清的微信公眾號:qingqingfeifangz