fbpx

用 Python 實現非監督機器學習的隱馬可夫模型(HMM )

將隱馬可夫模型 ( HMM,Hidden Markov Models ) 用於股票價格分析、語言建模、網站分析、生物學和頁排名( PageRank)。

從這 7 小時的課程,你會學到

  • 理解和列舉馬爾可夫模型和隱馬爾可夫模型的各種應用
  • 了解馬爾可夫模型如何運作
  • 用程式碼編寫一個馬爾可夫模型
  • 將馬爾科夫模型應用於任何資料序列( sequence of data )
  • 了解馬爾可夫鏈背後的數學
  • 將馬爾可夫模型應用於語言
  • 將馬爾可夫模型應用於網站分析
  • 了解 Google 的頁排名( PageRank )如何運作
  • 了解隱馬爾可夫模型
  • 用程式碼編寫隱馬爾可夫模型
  • 使用 Theano 寫一個隱馬爾可夫模型
  • 了解梯度下降(通常用於深度學習)如何用於多種 HMM

要求

  • 熟悉機率和統計
  • 了解高斯混合模型( Gaussian mixture models )
  • 有信心運用 Python 和 Numpy

課程說明

隱馬爾可夫模型( Hidden Markov Model, HMM )是關於學習序列( sequences )的。

很多對我們來說非常有用資料模型都是按順序排列的。股票價格是價格的序列 ; 語言是一系列詞彙 ; 信用評分涉及借款和還款的順序,我們可以使用這些順序來預測你是否要違約。總之,序列無處不在,能夠分析它們是資料科學工具箱中的一項重要技能。

理解你從序列中獲得的資訊的最簡單方法是考慮你現在正在閱讀的內容。如果我已經把前面的句子倒寫回去,即使它包含所有相同的單詞,對你而言也沒有什麼意義。所以”順序( order )”很重要。

雖然當前深度學習的方式是使用遞歸神經網路( recurrent neural networks )來對序列進行建模,但我想首先向大家介紹一種已經存在了幾十年的機器學習演算法 – 隱馬爾可夫模型( HMM )。

本課程直接來自我的第一門課程:無監督機器學習群聚分析  ,在這裡你學會瞭如何測量隨機變數( a random variable )的機率分佈。在本課程中,你將學習測量一系列隨機變數( a sequence of random variables )的機率分佈

你們知道我有多愛深度學習,所以這個課程有一點變化。我們已經涵蓋了梯度下降( gradient descnet ),你知道它是如何集中解決深度學習問題。我曾聲稱梯度下降可以用來優化任何目標函數。在本課程中,我將向你展示如何使用梯度下降法來求解 HMM 的最優參數,作為常用期望最大化演算法( expectation-maximization algorithm )的替代方法

我們將在 Theano 和 Tensorflow ( 深度學習中很流行的程式庫 ) 做 HMM。這也將教你如何處理 Theano 和 Tensorflow 中的序列,同時也將包含很有用的循環神經網路( recurrent neural networks ) 和 LSTM

本課程也將帶你了解許多馬爾可夫模型( Morkov Models )和隱馬爾可夫模型( Hidden Markov Models )的實際應用。我們將研究一種疾病和健康模型,並計算如何預測你生病的時間會持續多久。我們將討論如何使用馬爾可夫模型來分析人們與你網站的互動方式,並解決諸如跳出率高等問題,這可能會影響你的搜索引擎優化( SEO )。我們將構建可用於識別作者甚至生成文本的語言模型 – 想像一下有機器能代勞你的寫作。 HMM 在自然語言處理( naturla language processing , NLP ) 方面非常成功。

我們將看看馬爾可夫模型( Morkov Models ) 的最新和多產應用 – Google 的頁排名( PageRank )演算法。最後,我們將討論馬爾可夫模型的更多實際應用,包括生成圖像、智慧手機自動建議和使用隱馬爾可夫模型來回答生物學中最基本的問題之一 –  DNA ( 生命碼 ) 如何被轉化為一個有機體的物理或行為屬性?

所有這門課程的材料都可以免費下載和安裝。我們將在 Numpy 和 Matplotlib 中完成我們大部分的工作,以及一點 Theano。我隨時可以回答你的問題,並在你的資料科學旅程中為你提供幫助。

本課程著重於“如何構建和理解”,而不僅僅是“如何使用”。讀完一些文件後,任何人都可以在 15 分鐘內學會使用 API​​。 這不是關於“記住事實”,而是關於通過實驗“親眼看到”。它會教你如何視覺化模型內部發生的事情。如果你不僅僅需要對機器學習模型進行膚淺的考察,本課程對你將很有幫助。

我們在課堂中見!

注意:

所有的課程中的程式碼都可以從我的github下載:

/lazyprogrammer/machine_learning_examples

在目錄中:hmm_class

確保你總是用“ git pull ”,如此你總是拿到最新版本!

必要條件 / 假設你已具備以下知識 :

  • 微積分
  • 線性代數
  • 機率
  • 了解高斯混合模型( Gaussian mixture models )
  • Python 程式設計 : if/else, loops, lists, dicts, sets
  • Numpy 程式設計:矩陣和向量操作,載入一個 CSV 檔
  • Python 中的群聚分析( Cluster Analysis )和無監督機器學習( Unsupervised Machine Learning )將為你提供足夠的背景知識

提示(通過課程):

  • 以 2x 觀看。
  • 拿手寫筆記。 這將大大增加你記住訊息的能力。
  • 寫下方程。 如果你不這樣做,我保證它看起來像亂碼。
  • 在討論板上提出許多問題。 越多越好!
  • 意識到大多數練習將需要幾天或幾週才能完成。
  • 自己編寫程式碼,不要只是坐在那裡看我寫程式。

修課順序

  • 查看講座 “ What order should I take your courses in?” (可在我的任何課程的附錄中找到,包括免費的 Numpy 課程)

目標受眾

  • 進行資料分析的學生和專業人員,尤其是序列資料( sequence data )
  • 希望優化網站體驗的專業人士
  • 希望加強機器學習知識和實踐技能的學生
  • 對 DNA 分析和基因表達( gene expression )感興趣的學生和專業人士
  • 對建模語言和從模型生成文本感興趣的學生和專業人士

講師簡介

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 位部落客按了讚: