主要內容:
- 項目的選擇:可以選擇默認的問答項目,也可以自定義項目
- 如何發現自定義項目
- 如何找到數據集
- 門神經網絡序列模型的複習
- 關於機器翻譯的一些話題
- 查看訓練結果和進行評估
一、項目的選擇
默認項目:在SQuAD上構建一個文本問答系統
數據集地址SQuAD2.0:https://rajpurkar.github.io/SQuAD-explorer/
二、找到自己感興趣的項目
找到一個感興趣的領域的問題找到一個比現有的解決辦法更好的辦法
以一個感興趣的技術方法開始,找到好的方法擴展或者提升它,或者是一個新的方法實現它
項目的類型:
找到一個感興趣的應用或者任務,探索怎麼通過已有的神經網絡模型高效的實現它
實現一個複雜的神經架構證明它在一些新數據上的性能
提出一個新的或者變體的神經網絡模型然後探索它的應用
分析項目。分析模型的行爲,它的邏輯是怎麼展開的,它能處理什麼或者它可能會產生什麼錯誤
罕見的理論項目,展示一些有趣的,沒有見過的模型類型,數據或者數據表示
如何找到一個有趣的項目?
查看NLP論文的ACL選集:(ACL:The Association for Computational Linguistics Member Portal)
https://aclanthology.info
查看主要的機器學習會議的線上過程:
-
NeurIPS, ICML, ICLR
查看過去的cs224n的項目
查看課程網站
查看論文的預收錄網站:
-
https://arxiv.org
這個網站的作用是:我們會將預稿上傳到arvix作爲預收錄,因此這就是個可以證明論文原創性(上傳時間戳)的文檔收錄網站。
http://www.arxiv-sanity.com(好像是斯坦福大學自己構建的網站?)
三、找到數據集
- 一些人爲項目收集自己的數據
- 一些人從一個研究項目或者公司裏獲取數據
- 大部分人使用前人構建好的數據集
- 語言數據:
https://catalog.ldc.upenn.edu/
- 斯坦福大學的數據集:
- 機器翻譯的數據:
http://statmt.org
- 依存分析:
https://universaldependencies.org
- 還有很多其他的途徑找到數據集:
kaggle
- 研究論文
https://machinelearningmastery.com/datasets-natural-language-processing/
https://github.com/niderhoff/nlp-datasets
四、回顧門循環單元和機器翻譯
梯度消失的原因:
反向傳播時會經過所有直接相連的節點
可以通過給不相鄰的節點增加一條路徑的方式解決,使得信息不會丟失
單詞生成的過程中出現的問題:
單詞庫太大,訓練時間很長
有些單詞在單詞庫中不存在,所以翻譯生成的是<unk>的形式
機器翻譯的評估
- 人工評估
- 測試下游任務的性能
- 自動評估:
BLUE
BLUE的評估方法:(目前還不太理解這個方法的原理和應用)
n-gram精度
項目開展:
- 確定任務
- 確定數據集:尋找學術數據集,它們已經定義好了baselines,比如Newsroom Summarization Dataset:https://summari.es
- 確定自己的數據集,應該是要從上述數據集中抽取出自己需要的部分
- 分割數據集:訓練集、驗證集、測試集
- 定義評價指標
- 建立一個基線:
- 先實現最簡單的模型(通常是在unigram或者平均詞向量上實現邏輯迴歸)
- 評估模型
- 分析錯誤
- 繼續開始
- 應用現有的神經網絡模型
- 可視化數據,收集總結數據,查看錯誤,分析超參數
關於RNN訓練的建議: