第四周[任務1] 簽到作業 過兒--《深度學習》花書訓練營【第五期】

a.      爲什麼在神經網絡中加入非線性是必須的?

答:神經網絡的每一層主要是由 隱藏+激活函數構成。

隱藏:wX+b的形勢實現線性變換

激活函數如:sigmoid,relu完成非線性變換

由於N個線性變換的疊加最終還是線性變換。因此,如果沒有激活函數完成非線性變換,則神經網絡無法完成對非線性任務的迴歸及分類任務。


b.      寫出下列每個激活函數的表達式及其導數。在x∈[−5,5]  y∈[−10,10]範圍內繪製原函數及其導數的圖像。總結各激活函數的利弊。

i.        ReLU

在z=0時,通常給定導數1,0,當然z=0的情況很少。

ii.       Sigmoid

導數爲:

iii.     Tanh

導數爲:


c.       分類與迴歸的區別,以及softmax的作用

分類的output爲離散指,且多數情況下爲 one-hot 形勢,準確率通常用 cross entropy (CE)類似的方法來計算

迴歸的output往往是連續數字,準確率通常用 MSE\MSE類似的方法計算


d.      獨立手推ce損失函數

 


e.      批量梯度下降,隨機梯度下降,小批量梯度下降這三種分別是什麼意思,通常會用哪一種?爲什麼?其他兩種的缺點是什麼?

1)批量梯度下降

對全量集數據進行梯度計算,尋找負梯度方向進行優化

優點:

  • 相比隨機梯度下降更爲穩定,避免受到個別數據擾動導致整體訓練方向跑偏。

缺點:

  • 耗資源:對於超大樣本的情況下幾乎不可能完成(由於需要將全部數據導入內存進行梯度計算,會導致內存不夠用)

 

2)隨機梯度下降

隨機選取某一樣本計算梯度,尋找負梯度方向進行優化

優點

  • 速度相比批量梯度下降顯著提升

缺點

  • 很耗時間:對每一個梯度計算,優化,循環往復,總體耗時更長
  • 可能出現局部最優或者無法優化的情況:由於部分樣本可能噪音很大,因此可能出現某些樣本的負梯度擾動導致整體訓練方向偏離比較大。無法找到真正的最優化方向。

 

3)小批量梯度下降

結合披露梯度下降與隨機梯度下降方法,折中方式,選擇小批量樣本進行梯度計算,尋找負梯度方向進行優化

優點:

  • 隨着batch size 的增大,個別噪音數據的擾動降低到最小,整體優化方向與完整的披露梯度下降相差不大。
  • 根據自己機器的內存設定適合的batch size,重複利用計算資源。
  • 在時間與資源方面取得平衡
  • 可實現並行優化

缺點:

  • 引入了batch size 參數,事實上,batch size參數的選擇也成爲了優化網絡參數的一個關鍵問題。

 

關於batch size參數選擇的影響:

1)合理範圍內,增大batch size 好處:

  • 內存利用率提升,大矩陣乘法並行化效率提升
  • 完成一整個epoch所需迭代次數減少
  • batch size越大,負梯度方向越準確,震盪越小

2)盲目增大batch size的壞處

  • 可能導致在某些時間點,內存容量扛不住,導致崩潰
  • 完成一個epoch的迭代次數減少,對於要達到相同精度,所花的時間可能大大增加,參數修正也顯得更加緩慢。

 

激活函數部分參考文章:

激活函數的導數( Derivatives of activation functions)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章