Reflection: Deep Learning with R-Ch2.4–2.6

imflorachen
4 min readApr 7, 2020

--

Ch2.4–2.6

### 2.4. THE ENGINE OF NEURAL NETWORKS: GRADIENT-BASED OPTIMIZATION

#### 2.4.3. Stochastic gradient descent

* 通過分析找到產生最小的損失函數的權重值的組合。

* 小批量隨機梯度下降 mini-batch stochastic gradient descen(mini-batch SGD)。 “stochastic”是指每批數據都是隨機抽取的事實。stochastic 同 random。

1. 抽一批訓練樣本x和相應的目標y。

2. 在x上運行網絡預測y_pred。

3. 計算批處理中的網絡損失,算y_pred和y之間的不匹配度量。

4. 計算與網絡參數有關的損耗梯度(反向傳遞)。

5. 在與梯度相反的方向上稍微移動參數,例如,W = W -(step * gradient),這樣可稍微減少批次的損失。

* step 太小會需要迭代很久,也可能會卡在local minimum,step 太大可能會可能會在曲線上亂跑。

* SGD 算法是在每次迭代時抽樣單個樣本和目標,而不是抽樣一批數據。抽樣一批數據則是 mini-batch SGD。

* 相反的,對”所有”可用數據運行,這稱為 batch SGD。這樣每次更新都將更加準確,但代價將更高。這兩個極端之間的有效折衷方案是使用大小合適的mini-batch。

* SGD存在多種變形,它們的不同之處在於在計算下一個權重更新時考慮了先前的權重更新,而不僅僅是查看梯度的當前值。例如,momentum(動量) SGD以及Adagrad,RMSProp等。這樣的變化被稱為優化方法或優化器。

* 動量解決了SGD的兩個問題:收斂速度和局部最小值。

* 實際上,這意味著不僅要基於當前梯度值,而且還要基於先前的參數更新來更新參數w

#### 2.4.4. Chaining derivatives: the Backpropagation algorithm

* 將 Chain Rule 應用於神經網絡的梯度值的計算產生了一種稱為反向傳播(Backpropagation)的算法(有時也稱為反向模式微分)。

* 反向傳播從最終的 loss 值開始,然後從頂層向底層進行反向傳播,應用 chain rule 來計算每個參數對 loss 值的貢獻。

* symbolic differentiation: 給定具有已知導數的操作鏈,他們可以為鏈計算梯度函數(透過chain rule),以將網絡參數值映射到梯度值。當使用此類函數時,向後傳遞將減少為對該梯度函數的調用。

### 2.5. LOOKING BACK AT OUR FIRST EXAMPLE

* 權重張量是layer的屬性,是網絡知識所在的地方。

* categorical_crossentropy是損失函數,用作學習權重張量的反饋信號,並且訓練階段會嘗試將其最小化。是通過小批量隨機梯度下降而發生的。 rmsprop優化器,定義了用於控制梯度下降的具體規則。

* R-code: 並不是回傳一個 network object 而是透過 pipe(%>%) 對 network 操作。

* 所有訓練數據上的每次迭代都稱為一個epoch。

* 在每次迭代中,網絡將針對批次的損失計算權重的梯度,並相應地更新權重。

### 2.6. SUMMARY

* 學習意味著找到模型參數的組合,該模型參數可將一組給定的訓練數據樣本及其對應目標的損失函數最小化。

* 通過抽樣隨機批次的數據樣本及其目標,計算網絡參數相對於批次損失的梯度來進行學習。將網絡參數沿與梯度相反的方向移動一點(移動的幅度由學習率定義)。

* 神經網絡是由differentiable tensor operation組合而來,應用導數的chain rule找出梯度函數,就可以透過現在的參數值與此批資料計算出梯度值。

* 損失是在訓練期間要盡量減少的數量,因此它應該表示您要解決的任務是否成功。

* 優化器指定了使用損耗梯度更新參數的確切方法:例如,它可以是RMSProp優化器,動量SGD等。

--

--

imflorachen
imflorachen

Written by imflorachen

Hi i’m trying to write what i’ve learned from work or from books. Wish I could become a better data scientist.

No responses yet