打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
机器学习入门之一:基本概念

1. 监督学习和无监督学习

利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程,也称为监督训练或有教师学习。正如人们通过已知病例学习诊断技术那样,计算机要通过学习才能具有识别各种事物和现象的能力。用来进行学习的材料就是与被识别对象属于同类的有限数量样本。监督学习中在给予计算机学习样本的同时,还告诉计算各个样本所属的类别。若所给的学习样本不带有类别信息,就是无监督学习。任何一种学习都有一定的目的,对于模式识别来说,就是要通过有限数量样本的学习,使分类器在对无限多个模式进行分类时所产生的错误概率最小。

 

2. 马尔可夫链和隐马尔可夫链

马尔可夫过程是下述这样的一种过程:在已知时刻 t0 系统所处状态的条件下,在时刻以后系统到达的情况与时刻 t0 以前系统所处的状态无关,完全取决于时刻t0 系统所处的状态。这个特性称为无后效性,也称为“马尔可夫性”。
马尔可夫过程数学定义如下:设{X(t), t∈T} 为随机过程,如果对于任意正整数n及t1<t2<t3…. <tn,P{X(t1) = x1,X(t1) = x1,…..X(tn-1) = xn-1} >0, 并且其条件分布为:

P{X(tn) = xn| X(t1) = x1,X(t1) = x1,…..X(tn-1) = xn-1} = P{X(tn) = xn| X(tn-1) = xn-1}

则称{X(t), t∈T} 为为马尔可夫过程,或称该过程具有马尔可夫性。P{X(tn) = xn| X(tn-1) = xn-1} 也被称为在时刻tn状态转移为xn转移概率。按照时间和状态的离散、连续情况马尔可夫过程可分为三类:

  • 时间与状态(空间)都离散的过程,称为马尔可夫链;
  • 时间连续与状态(空间)离散的过程,称为连续时间的马尔可夫过链;
  • 时间与状态(空间)都连续的马尔可夫过程。

可见当时间与状态空间都是离散的时候,这个过程就成为了马尔可夫链/过程,那什么是隐式马尔可夫链/过程呢?

隐马尔可夫模型(Hidden Markov Model,HMM)是统计模型,它用来描述一个含有隐含未知参数的马尔可夫过程。其难点是从可观察的参数中确定该过程的隐含参数,然后利用这些参数来作进一步的分析,例如模式识别。在正常的马尔可夫模型中,状态(也就是上面介绍的X(t))对于观察者来说是直接可见的。这样状态的转换概率便是全部的参数。而在隐马尔可夫模型中,状态并不是直接可见的,但受状态影响的某些变量则是可见的。每一个状态在可能输出的符号上都有一概率分布。因此输出符号的序列能够透露出状态序列的一些信息。

设有N个缸,每个缸中装有很多彩球,球的颜色由一组概率分布描述。实验进行方式如下

  1. 根据初始概率分布,随机选择N个缸中的一个开始实验
  2. 根据缸中球颜色的概率分布,随机选择一个球,记球的颜色为O1,并把球放回缸中
  3. 根据描述缸的转移的概率分布,随机选择下一口缸,重复以上步骤。

最后得到一个描述球的颜色的序列O1,O2,…,称为观察值序列O。实验中,有几个要点需要注意:

  1. 不能被直接观察缸间的转移
  2. 从缸中所选取的球的颜色和缸并不是一一对应的
  3. 每次选取哪个缸由一组转移概率决定

HMM的状态是不确定或不可见的,只有通过观测序列的随机过程才能表现出来;观察到的事件与状态并不是一一对应,而是通过一组概率分布相联系。用模型五元组 =( N, M, π ,A,B)用来描述HMM,或简写为 =(π ,A,B)


使用HMM可以解决如下三个问题:

问题1:给定观察序列O=O1,O2,…OT,以及模型λ=(A,B, π) , 如何计算P(O|λ)?

问题2:给定观察序列O=O1,O2,…OT以及模型λ,如何选择一个对应的状态序列 S = q1,q2,…qT,使得S能够最为合理的解释观察序列O?

问题3:如何调整模型参数 , 使得P(O|λ)最大?

Wikipedia上的一个例子,看完以后,请找到这5个参数:

假设你有一个住得很远的朋友,他每天跟你打电话告诉你他那天做了什么。你的朋友仅仅对三种活动感兴趣:公园散步,购物以及清理房间。他选择做什么事情只凭天气。你对于他所住的地方的天气情况并不了解,但是你知道总的趋势。在他告诉你每天所做的事情基础上,你想要猜测他所在地的天气情况。

你认为天气的运行就像一个马尔可夫链。其有两个状态 "雨"和"晴",但是你无法直接观察它们,也就是说,它们对于你是隐藏的。每天,你的朋友有一定的概率进行下列活动:"散步", "购物", 或 "清理"。因为你朋友告诉你他的活动,所以这些活动就是你的观察数据。这整个系统就是一个隐马尔可夫模型HMM。
你知道这个地区的总的天气趋势,并且平时知道你朋友会做的事情,也就是说这个隐马尔可夫模型的参数是已知的。你可以用程序语言(Python)写下来:

states = ('Rainy', 'Sunny')observations = ('walk', 'shop', 'clean')start_probability = {'Rainy': 0.6, 'Sunny': 0.4}transition_probability = {   'Rainy' : {'Rainy': 0.7, 'Sunny': 0.3},   'Sunny' : {'Rainy': 0.4, 'Sunny': 0.6},   }emission_probability = {   'Rainy' : {'walk': 0.1, 'shop': 0.4, 'clean': 0.5},   'Sunny' : {'walk': 0.6, 'shop': 0.3, 'clean': 0.1},   }

在这个例子中,HMM的5个参数分别如下:

N: 状态数目:2, 雨和晴天

M: 观察值数目:3,散步、购物和清理

A: 与时间无关的状态转移概率:就是这个地区的天气趋势

B: 给定状态下,观察值概率分布是:下雨时散步的概率,下雨时购物的概率,etc.

π: 初始状态空间的概率分布,这个应该是没有的,可以以等概率开始。

 

3.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
HMM原理及应用
隐马尔可夫模型(HMM)攻略
从饮食习惯知天气冷暖——浅谈隐马尔可夫模型
轻松理解隐马尔可夫模型
初学者也能看懂的隐马尔科夫模型介绍
【NLP】再看隐马尔可夫模型(HMM)原理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服