斯坦福大學-自然語言處理與深度學習(CS224n) 筆記 第五課 反向傳播與項目指導

課程概要

1、反向傳播的四種解釋
2、項目指導

一、反向傳播的解釋1

任務:和上一課一樣,判斷中心詞是否是一個命名實體地點,窗口定義和最後一層的函數都是一樣的
結構:含有兩個隱層


在這裏插入圖片描述

二、反向傳播的解釋2:circuits

例子來源於:CS231n: http://cs231n.github.io/optimization-2/
用類似樹的結構來模擬計算,每個子節點表示一個數字,每個中間節點表示一個運算。

從右往左,我們可以依次計算每個節點對應的梯度,主要的計算是前一個節點的梯度乘以當前節點的梯度

一個更加複雜和具體的例子:
在這裏插入圖片描述
如果可以的話,我們也可以把幾個節點合併成爲一個節點:
在這裏插入圖片描述

三、反向傳播的解釋3:高級流程圖

對這個圖而言,每個節點都代表一個計算結果,每條邊都代表一個計算關係,y向量是x向量的衍生。

前饋做的事情是按照正常順序計算每個節點的結果。而後饋做的事情是初始化輸出的梯度爲1,計算反向順序的每個節點的梯度。

整體的梯度求導我們都可以使用自動化的方法求解,在做前饋計算的時候,前饋符號可以自動推斷出後饋的計算。每個節點都需要知道如何計算出輸出,以及如何基於輸出梯度計算出輸入的梯度。

四、反向傳播的解釋4:真實神經網絡中的δ誤差信號

和之前一樣的兩個隱層的神經網絡




五、項目指導(針對課程項目)

1、一些備選的項目類型

  • 對一個新任務運用神經網絡模型
  • 應用一個複雜的神經框架
  • 建立一個新的神經網絡模型
  • 深度學習的理論:比如優化

2、指導:對一個新任務運用已有神經網絡模型

a 定任務:比如說Summarization

b 定數據集

  • 查找現有的學術數據集:這些數據集一般都已經有基準(baseline),比如Document Understanding Conference (DUC)
  • 定義自己的數據集(會更困難,一般沒有基準):Wikipedia,Twitter,Blogs,News

c 定自己的度量標準

  • 在網上查找針對該任務的已經建立好的度量(metrics),比如說 Summarization,就可以使用Rouge

d 分裂你的數據

  • 把數據分成:訓練集,發展集和測試集
  • 一定要確保測試集其他數據集之間是完全沒有重疊的

e 建立一個基準

  • 應用最簡單的模型:通常是基於一元模型/二元模型的邏輯迴歸
  • 在測試集和訓練集上計算度量(metrics)
  • 分析錯誤
  • 如果度量結果很好,那麼你就完成了,說明任務太簡單了,重新換個任務開始思考。

f 應用現有的神經網絡模型

  • 在測試集和訓練集上計算度量(metrics)
  • 分析輸出和錯誤
  • 這樣就達到了課程的最低要求

g 要非常瞭解自己的數據

  • 對數據集進行可視化
  • 收集統計信息
  • 關注錯誤
  • 分析超參將會怎麼影響模型表現

h 嘗試不同的模型變體

  • Word vector averaging model (neural bag of words)
  • Fixed window neural model
  • Recurrent neural network
  • Recursive neural network
  • Convolutional neural network

3、指導:構建一個新模型

  • 首先,先要完成上面的步驟a-h
  • 然後,思考爲什麼現有的模型是存在問題的
  • 和研究者/mentor進行大量得交流
  • 應用新的模型,並且進行重複的迭代
  • 建立一個有效的實驗狂降
  • 一開始先構建簡單模型
  • 以summarization爲例:平均每個段落的詞向量,然後貪婪搜索;應用語言模型;衍生目標:生成seq2seq的總結
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章