吳恩達Deeplearning.ai 知識點梳理(course 2,week 3)

這周主要講的是超參數的調試、Batch Norm以及多分類。

Hyperparameter Tuning

Tuning Process

  一般來說,最重要的就是那個Learning_rate,也就是α 。第二重要的一般是動量參數β 以及Hidden Units的數量,還有mini-batch的大小。第三是層數以及learning_rate decay,最後是adam的參數,但是一般都是默認值0.9,0.999以及10e-8。
Hyperparameter Tuning

  第二是調參時儘量不要用正交的Grid的方式進行參數搜索,因爲一開始其實並不知道那個參數比較重要,所以儘可能的隨機採集。多一些數據,瞭解一下每個參數在分佈在哪兒對模型比較優。

  第三是先粗調再精調。可能隨機搜索出來的幾個比較好,那就在這個範圍找。

Random Search & Coarse to Fine

Parameter scale

scale 有幾種:

  1. 層數(2~4),單元個數(50~100),均勻採樣
  2. α ,0.0001~1,對數採樣
  3. β ,0.9~0.999,可以用1β ,然後對數採樣。

  另外要注意的是,以β 舉例,0.9000和0.9005可能差別不大,但是對於0.999和0.9995差別就很大了,因爲第一個是111000 ,第二個是112000 ,所以相對變化很重要。

調參模式:熊貓和魚子醬

  1. 數據是會時不時發生變化的,隨着數據的變化,模型參數應該與時俱進,時不時重新更新一下數據。
  2. 調參模式,如果硬件條件有限,可以拿一個模型精細的慢慢調,這個就類似於熊貓每次只生1、2個孩子,然後仔細照看;還有一種是魚子模式,魚每次生上億個卵,看哪個能成。這兩種模式可以根據環境條件具體情況具體來做。

Batch Normalization

什麼是Batch Norm?

  Batch Norm是給每一層都加上輸入歸一化,如下圖所示:

Batch Norm

首先對輸入計算均值和方差,然後做歸一化,然後給分配上一個縮放和偏移,這個縮放和偏移是“學習”得來的。

Batch Norm

Batch Norm的位置在上圖所示的位置,也就是Z和A之間。

Mini-Batch的Batch Norm以及test time的處理

Training-Test-Minibatch

當使用Mini-Batch的時候,使用指數衰減平均對當前的Mini-Batch的均值和方差。然後最後test的時候,就用最後一個均值和方差就行了。

爲什麼Batch Norm好用?

  1. Batch Norm最大的作用是降低Covariate Shift的影響。簡要的說就是輸入特徵發生變化了:對每一層來說,在學習過程中,由於前一層的參數總是發生變化,那麼對於後一層,Feature Vector總是發生變化,那麼學習起來就會更困難。如果我們對每一層做一個均值方差歸一化,那麼至少每一層的Feature Vector的均值和方差是比較穩定的,這樣就減小了Covariate Shift的影響。
  2. Regularization的作用。Batch Norm還有一些輕微的正則化的作用。這是由於加上了縮放和偏移,導致給Z加上了一些噪聲,類似於drop out,所以有輕微的正則化作用。

多分類

SoftMax Activation Function

SoftMax
SoftMax就是對輸出的Z中每一個元素做exp(),然後計算exp()後的每一個元素的權重。

Loss Function

如下圖所示:
Loss Function

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