線性回歸、對數(shù)幾率回歸模型瓶堕,本質(zhì)上是單個神經(jīng)元。計算輸入特征加權(quán)和症歇。偏置視為每個樣本輸入特征為1權(quán)重郎笆,計算特征線性組合谭梗。激活(傳遞)函數(shù) 計算輸出。線性回歸宛蚓,恒等式(值不變)激捏。對數(shù)幾率回歸,sigmoid凄吏。輸入->權(quán)重->求和->傳遞->輸出远舅。softmax分類含C個神經(jīng)元,每個神經(jīng)元對應一個輸出類別痕钢。
XOR異或運算图柏,無法通過線性模型解決。sigmoido類型神經(jīng)元要求數(shù)據(jù)線性可分任连。2D數(shù)據(jù)存在直線蚤吹,高維數(shù)據(jù)存在超平面,把不同類別樣本分隔随抠。
在神經(jīng)網(wǎng)絡(luò)輸入和輸出之間插入更多神經(jīng)元裁着,解決非線性可分問題。輸入層->隱含層(hidden layer)->輸出層->輸出拱她。隱含層使網(wǎng)絡(luò)可以對輸入數(shù)據(jù)提出更多問題二驰。隱含層每個神經(jīng)元對應一個問題,依據(jù)問題回答最終決定輸出結(jié)果秉沼。隱含層在數(shù)據(jù)分布圖允許神經(jīng)網(wǎng)絡(luò)繪制以一條以上分隔線桶雀。每條分隔線向輸入數(shù)據(jù)劃分提出問題,所有相等輸出劃分到單個區(qū)域氧猬。深度學習背犯,添加更多隱含層,可采用不同類型連接盅抚,使用不同激活函數(shù)漠魏。
梯度下降法,找到函數(shù)極值點妄均。學習柱锹,改進模型參數(shù),大量訓練丰包,損失最小化禁熏。梯度下降法尋找損失函數(shù)極值點。梯度輸出偏導數(shù)向量邑彪,每個分量對應函數(shù)對輸入向量相應分量偏導瞧毙。求偏導,當前變量外所有變量視為常數(shù),用單變量求導法則宙彪。偏導數(shù)度量函數(shù)輸出相對特定輸入變量的變化率矩动,當輸入變量值變化,輸出值的變化释漆。損失函數(shù)輸入變量指模型權(quán)值悲没,不是實際數(shù)據(jù)集輸入特征。相對于推斷模型每個權(quán)值男图。
梯度輸出向量表明每個位置損失函數(shù)增長最快方向示姿,在函數(shù)每個位置向哪個方向移動函數(shù)值可增長。點表示權(quán)值當前值逊笆。梯度向右箭頭表示為增加損失需向右移動栈戳,簡頭長度表示向右移動函數(shù)值增長量。反方向移動览露,損失函數(shù)值減少荧琼。直到梯度模為0,達到損失函數(shù)極小值點。
學習速率(learning rate)縮放梯度差牛。梯度向量長度在損失函數(shù)單元中命锄,縮放與權(quán)值相加。學習速率是超參數(shù)(hyperparameter)偏化,模型手工可配置設(shè)置脐恩,需指定正確值。太小侦讨,需要多輪迭代驶冒。太大,超調(diào)(overshooting)韵卤,永遠找不到極小值點骗污。用tf.summary.scalar函數(shù)在TensorBoard查看損失函數(shù)值變化曲線。
局部極值點問題沈条,通過權(quán)值隨機初始化需忿,增加靠近全局最優(yōu)點附近開始下降機會。損失函數(shù)所有極值點接近等價蜡歹。
tf.gradients方法屋厘,符號計算推導指定流圖步驟梯度以張量輸出。梯度下降法取決輸入數(shù)據(jù)形狀及問題特點月而。
誤差反向傳播算法汗洒,計算損失函數(shù)相對網(wǎng)絡(luò)權(quán)值偏導,每層導數(shù)都是后一層導數(shù)與前一層導輸出積父款。前饋溢谤,從輸入開始瞻凤,逐一計算隱含層輸出,直到輸出層溯香。計算導數(shù)鲫构,從輸出層逐一反向傳播浓恶。復用所有已完成計算元素玫坛。
Sigmoid隱含層,softmax輸出層以及帶反向傳播梯度下降包晰,是最基礎(chǔ)構(gòu)件湿镀。
參考資料:
《面向機器智能的TensorFlow實踐》
歡迎加我微信交流:qingxingfengzi
我的微信公眾號:qingxingfengzigz
我老婆張幸清的微信公眾號:qingqingfeifangz