【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络
?
第二課 傳統神經網絡
?
?
《深度學習》整體結構:
線性回歸 -> 神經網絡 -> 卷積神經網絡(CNN)-> 循環神經網絡(RNN)- LSTM
目標分類(人臉識別,物品識別,場景識別,文字識別),目標檢測(安防,自動駕駛),視頻分類(視頻檢索),語句生成(自動翻譯,智能對話)
?
?
提綱:
1. 神經網絡起源:線性回歸
2. 從線性到非線性
3. 神經網絡的構建
4. 神經網絡的“配件”
?
?
?期待目標:
1. 了解從線性到非線性回歸的轉化
2. 明白如何構建神經網絡,了解不同激勵函數的區別聯系
3. 掌握“配件”對神經網絡性能的影響(損失函數 Cost,學習率 Learning Rate,動量,過擬合),會“調參”
4. 明白本節所有的“面試題”
?
?
?
?
線性回歸:
1. 概念:線性關系來描述輸入到輸出的映射關系
2. 應用場景:網絡分析,銀行風險分析,基金股價預測,天氣預報
?
?
線性回歸:
一個線性回歸問題
目標方程:y = ax1 + bx2 + cx3 + d
參數: m = [a, b, c, d]
數據:[(x1,1, x2,1,x3,1), (), (), ()]
預測:yt = ax1,t + bx2,t + cx3,t + d
目標:minimize (yt - yt)?
總結:線性函數是一維函數,y = ax1 + bx2 + cx3 + d
現在要計算最佳參數 m = [a, b, c, d]
給定數據,計算出預測值,預測值與真實值計算Cost,當Cost最小的時候計算出 m = [a, b, c, d]
?
?
優化方法:梯度下降法
模型參數
當前 m0 = [a0, b0, c0, d0]
每一步 m?
參數 m = [a, b, c, d]?
?
?
梯度下降:梯度計算
Loss = ax1 + bx2 + cx3 + d -y
梯度下降:參數更新?
?
梯度下降法總結:
1. 隨機初始化參數
開啟循環 t= 0, 1, 2
? ? ? 帶入數據求出結果 yt
? ? ? 與真值比較得到loss = y - yt
? ? ? 對各個變量求導得到 m
? ? ? 更新變量 m
? ? ??
?
?
線性回歸的局限性:線性回歸能夠清楚的描述分割線性分布的數據,對非線性分布的數據描述較弱
?
?
非線性激勵
考量標準:
1. 正向對輸入的調整
2. 反向梯度損失
?
?
?
?
?
?
?
?
?
?
?
?
?
?
神經網絡構建
神經元的“并聯”和“串聯”
從第一層神經網絡到最終輸出,每一個神經元的數值由前一層神經元數值,神經元參數W,b以及激勵函數共同決定第n+1層,第k個神經元的方程,可由公式表示為:
在這里,m表示第n層神經網絡的寬度,n為當前神經網絡的深度
并聯:深度,串聯:寬度
?
?
?
MINIST 神經網絡分類:
course_2_tf_nn.py
結構變化影響:
1. “并聯”寬度影響
2. “串聯”層數影響
3. Dropout
4. Learning rate?
?
1. 損失函數 - Loss
影響深度學習性能最重要因素之一。是外部世界對神經網絡模型訓練的直接指導。
合適的損失函數能夠確保深度學習模型收斂
設計合適的損失函數是研究工作的主要內容之一
?
?
?
?
?
?
?
?
?
?
?
?
?
總結:?
1. 神經網絡起源:線性回歸
2. 從線性到非線性
3. 神經網絡的構建
4. 神經網絡的“配件”
?
下節課預告:鏈式規則反向求導,SGD優化原理,卷積神經網絡(CNN)各個layers介紹
?
第二節課的代碼
https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_2_tf_nn.py
https://github.com/wiibrew/DeepLearningCourseCodes/blob/master/course_2_tf_nn.ipynb
具體通過TensorFlow構建神經網絡的過程,通過Pycharm和 Python Notebook來完成實驗,調參還部署很熟練。
?
?
?
?
?
TensorFlow 對數據進行簡單的可視化實驗:
?http://playground.tensorflow.org/
?
?
轉載于:https://www.cnblogs.com/licheng/p/6952619.html
總結
以上是生活随笔為你收集整理的【原创 深度学习与TensorFlow 动手实践系列 - 2】第二课:传统神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis 一些高级用法
- 下一篇: 深度学习概论