fbpx

深度學習 : 以 Python 實踐遞歸神經網路

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?” (可在我的任何課程的附錄中找到,包括免費的 Numpy 課程)

目標受眾

  • 如果你想升級深度學習,請參加這門課程。
  • 如果你是一名學生或專業人士,希望將深度學習應用於時間序列或序列資料,請參加本課程。
  • 如果你想了解單詞嵌入和語言建模,請參加這門課程。
  • 如果你想提高你使用隱馬爾可夫模型( 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

課程網址   ♥找優惠折扣碼?

Sponsored by Udemy

也許你會有興趣

喜歡我們的分享嗎? 使用以下的社群分享按鈕分享給你的朋友吧!

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: