深度學習基礎課:“判斷性別”Demo需求分析和初步設計(下1)
大家好~我開設了“深度學習基礎班”的線上課程,帶領同學從0開始學習全連接和卷積神經網絡,進行數學推導,并且實現可以運行的Demo程序
線上課程資料:
本節課錄像回放
加QQ群,獲得ppt等資料,與群主交流討論:106047770
本系列文章為線上課程的復盤,每上完一節課就會同步發布對應的文章
本文為第二節課:“判斷性別”Demo需求分析和初步設計(下1)的復盤文章
本課程系列文章可進入索引查看:
深度學習基礎課系列文章索引
回顧相關課程內容
- 第二節課:“判斷性別”Demo需求分析和初步設計(中)
- 什么是神經網絡 ?

- 為什么引入神經網絡?
- 前向傳播算法包括哪些步驟?
- 什么是神經網絡 ?
主問題:什么是損失函數
為什么引入損失函數?
- 雖然神經網絡的未知量的數量比起神經元來說更多,但如果推理的樣本數量比神經網絡的未知量的數量更多時,該怎么辦?
- 繼續增加神經網絡中的權重、偏移數量(如增加層、增加每層的神經元)?
答:不能,因為:
這會增加計算成本;
樣本數量可以任意多,但無法無限地增加神經網絡中的權重、偏移數量
所以應該保持神經網絡中的權重、偏移數量不變
- 繼續增加神經網絡中的權重、偏移數量(如增加層、增加每層的神經元)?
- 在訓練后仍然會得到一組權重、偏移,但在推理階段對于每個樣本推理的輸出值仍然等于真實值嗎?
答:不等于 - 我們希望的結果是什么?
答:每個樣本推理的輸出值盡量接近真實值 - 因此,在訓練時需要得到一組合適的權重、偏移,使得每個樣本推理的輸出值盡量接近真實值
- 那么,如何具體判斷得到的一組權重、偏移是合適的呢?
答:需要引入損失函數??,用來在訓練階段度量在推理階段的輸出值和真實值的誤差大小
什么是損失函數
- 損失函數的表達式是什么?
- 值是什么?
答:誤差 - 自變量、常量分別是什么?
答:輸出是自變量,真實值是常量 - 表達式是什么?
答:??=??(??輸出)
- 值是什么?
- 有了損失函數,如何具體判斷得到的一組權重、偏移是合適的呢?
- 希望得到損失函數的最大值還是最小值?
答:最小值 - 此時的自變量(輸出)就是合適的的值
- 輸出跟權重、偏移是什么關系?
答:
根據上面的公式可知是函數映射關系,其中前者是函數的值,后者是函數的自變量- 輸入x是自變量還是常量?為什么?
答:輸入x是常量。
因為損失函數用于在訓練階段確定合適的權重和偏移,而此時輸入x是已知的(如為100個樣本數據)
- 輸入x是自變量還是常量?為什么?
- 損失函數的表達式更新為:??=??(??,??)
- 所以如何具體判斷得到的一組權重、偏移是合適的呢?
答:求出損失函數的最小值,此時作為自變量的權重、偏移就是合適的
- 希望得到損失函數的最大值還是最小值?
主問題:什么是隨機梯度下降
-
如何用數值分析的方法求一個函數的最小值點?
答:
首先,我們隨便選擇一個點開始,比如上圖的??0。接下來,每次迭代修改??為??1,??2,??3......經過數次迭代后最終達到函數最小值點。
你可能要問了,為啥每次修改??,都能往函數最小值那個方向前進呢?這里的奧秘在于,我們每次都是向函數??=??(??) 的梯度的相反方向來修改??。
什么是梯度呢?梯度是一個向量,它指向函數值上升最快的方向。顯然,梯度的反方向當然就是函數值下降最快的方向了。 -
求出來的是極小值點還是最小值點?
答:極小值 -
如何求最小值點?
答:再取多組值來判斷(可升級為小批量隨機梯度下降) -
所以,求一個函數的極小值點的算法(梯度下降算法)總結成公式是什么?
答:
-
求損失函數的極小值點的梯度下降算法總結成公式是什么?
答:
浙公網安備 33010602011771號