Contents
GRU、LSTM + 更現代的深度學習、機器學習和序列資料科學
從這 6.5 小時的課程,你會學到
- 了解簡單的遞歸單位(Elman 單位)
- 了解 GRU(Gated Recurrent Unit,門控遞歸單元)
- 了解 LSTM(Long Short-term Memory Unit,長遠短期記憶單元)
- 在 Theano 寫下各種遞歸網路
- 通過時間了解反向傳播( backpropagation )
- 了解如何減輕消失梯度問題
- 使用遞歸神經網路解決 XOR 和奇偶性( parity )問題
- 使用遞歸神經網路進行語言建模
- 使用 RNNs 生成文本,如詩歌
- 視覺化詞嵌入( word embeddings )並查找詞向量( word vectors )表示中的模式
要求
- 微積分
- 線性代數
- Python、Numpy、Matplotlib
- 在 Theano 寫一個神經網路
- 了解反向傳播( backpropagation )
- 機率(有條件和聯合分佈)
- 使用 Tensorflow 寫一個神經網路
課程說明
就像我在隱馬可夫模型課所說,遞歸神經網路都是關於學習序列的 – 但是,馬可夫模型受馬爾可夫假設的限制,遞歸神經網路不是 – 結果,它們更具表現力、更強大,相較任何我們幾十年來採用但沒有在任務上取得進展。
那麼在這門課程將會有什麼?它將如何建立在以前的神經網路課程和隱馬爾可夫模型上?
在課程的第一部分中,我們將添加時間概念到我們的神經網路。
我將向你介紹簡單遞歸單位( Simple Recurrent Unit ),也稱 Elman 單位。
我們將重新討論 XOR 問題,但我們將擴展它以使它成為奇偶性( parity )問題 – 你會看到一般的前饋神經網路 ( feedforward neural networks ) 將無法解決此問題,但遞歸網路將起作用,因為關鍵是將輸入視為一個序列。
在本課程的下一部分,我們將重新審視遞歸神經網路最流行的應用之一 – 語言建模( language modeling )。
當我們研究馬可夫模型時,我們可以看到此可生成詩歌,且看起來還不錯。 我們甚至可以根據他們使用的詞性標籤( tag )的順序來區分這是 2 個不同的詩人所做。
在本課程中,我們將擴展我們的語言模型,使其不再做馬可夫假設。
神經網路另一種流行的語言應用是詞向量( word vectors )或詞嵌入( word embeddings )。 最常用的技術叫做 Word2Vec,但我會告訴你如何使用遞歸神經網路來創建詞向量。
在接下來的部分中,我們將看看非常受歡迎的 LSTM ( Long Short-term Memory Unit ,長遠短期記憶單元),以及更加現代化和高效的 GRU ( Gated Recurrent Unit,門控遞歸單元 ),它們已被證明具有相當的性能。
我們會將這些應用於一些更實際的問題,例如從維基百科資料中學習語言模型並將結果中的詞嵌入視覺化。
所有這門課程所需的材料都可以免費下載和安裝。 我們將在 Numpy、Matplotlib 和 Theano 中完成大部分工作。 我隨時可以回答你的問題,並在你的資料科學旅程中提供幫助。
本課程著重於“如何構建和理解”,而不僅僅是“如何使用”。 讀完一些文件後,任何人都可以在 15 分鐘內學會使用 API。 這不是關於 “記住事實”,而是關於通過實驗 “親眼看到”。 它會教你如何視覺化模型內部發生的事情。 如果你不僅僅需要對機器學習模型進行膚淺的了解,本課程將很適合你。
我們在課堂中見!
注意:
所有的課程中的程式碼都可以從我的github下載:
/lazyprogrammer/machine_learning_examples
在目錄中:rnn_class
確保你總是用“ git pull ”,如此你總是拿到最新版本!
必要條件 / 假設你已具備以下知識 :
- 微積分
- 線性代數
- 機率(有條件和聯合分配)
- Python 程式設計 : if/else, loops, lists, dicts, sets
- Numpy 程式設計:矩陣和向量操作,載入一個 CSV 檔
- 深度學習:反向傳播( backpropagation ),XOR 問題
- 可以在 Theano 和 Tensorflow 中編寫一個神經網路
提示(通過課程):
- 以 2x 觀看。
- 拿手寫筆記。 這將大大增加你記住訊息的能力。
- 寫下方程。 如果你不這樣做,我保證它看起來像亂碼。
- 在討論板上提出許多問題。 越多越好!
- 意識到大多數練習將需要幾天或幾週才能完成。
- 自己編寫程式碼,不要只是坐在那裡看我寫程式。
修課順序
- 查看講座 “ What order should I take your courses in?” (可在我的任何課程的附錄中找到,或請參考先修課)
目標受眾
- 如果你想升級深度學習,請參加這門課程。
- 如果你是一名學生或專業人士,希望將深度學習應用於時間序列或序列資料,請參加本課程。
- 如果你想了解單詞嵌入和語言建模,請參加這門課程。
- 如果你想提高你使用隱馬爾可夫模型( HMM )的表現,請參加這門課程。
- 如果你對引發機器翻譯新發展的技術感興趣,請參加本課程。
- 如果你不知道深度學習,不要修這門課,請查本課程要求的必修課。
講師簡介
Lazy Programmer Inc 資料科學家和大數據工程師
我是一名資料科學家、大數據工程師和全端軟體工程師。
我有電腦工程的碩士,專長為機器學習和模式辨識。
我曾在網路廣告和數位媒體企業擔任過資料科學家和大數據工程師,圍繞所謂的資料建構各種高流量的 web 服務。我曾經使用 Hadoop / Pig / MapReduce 創建新的大數據管道,也曾建立機器學習模型來預測點擊率,使用線性迴歸、Bayesian Bandits 和協同過濾 ( collaborative filtering )建立新聞推薦系統,並使用A / B測試驗證結果。
我曾在大學部與研究所教授資料科學、統計學、機器學習、演算法、微積分、電腦圖學和物理學,任職的學校如哥倫比亞大學、紐約大學、Hunter 學院和 The New School。
有多家企業已從我的 Web 程式設計專業知識中受益。我做所有的後端(伺服器)、前端(HTML / JS / CSS)和運營/佈署工作。 我使用的技術包含:Python、Ruby / Rails、PHP、Bootstrap、jQuery(Javascript)、Backbone 和 Angular。至於儲存/資料庫,我採用 MySQL、Postgres、Redis、MongoDB等。
英文字幕:有
- 想要了解如何將英文字幕自動翻譯成中文? 請參考這篇 How-To
報名參加課程

也許你會有興趣
- Python 相關線上課程
- 深度學習相關線上課程
- Tensorflow 相關線上課程
- ★想要加強英文能力嗎?– 練好英文是最大的學習槓桿
你必須登入才能發表留言。