用 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

♥欢迎关注 Soft & Share 微博

发表评论

Powered by WordPress.com.

Up ↑

%d 博主赞过: