理工渣眼中的HMM及安全使用

虽然是理工妹子,但仍是数学渣。症状之一便是每次学习算法都能把自己绕成鸡窝头。所以测验写一篇数学渣眼中的HMM。 咱们先看一个让人头疼的HMM界说式(喜爱从公式下手是我多年来敷衍考试养成的...

虽然是理工妹子,但仍是数学渣。症状之一便是每次学习算法都能把自己绕成鸡窝头。所以测验写一篇数学渣眼中的HMM。
咱们先看一个让人头疼的HMM界说式(喜爱从公式下手是我多年来敷衍考试养成的不良习性)
一、HMM五米素

N:躲藏状况数 hidden states
M:观测状况数 observed states
A: 状况搬运矩阵 transition matrix
B:发射矩阵  emission matrix
pi:初始隐状况向量 initial state vector
好了,接下来咱们用数学渣能够了解的言语来解说上面都是些什么鬼
女主:小红  用食物测量心境
           心境状况有三种: 高兴、正常、溃散
           上面三种状况的时分吃的食物也有三种: 汉堡、 西瓜、啤酒
男主:小明 面部表情辨认妨碍
因而对男主而言,
躲藏状况:女主的心境状况
观测状况:女主吃的食物
躲藏状况数 :N=3
观测状况数:    M=3
初始隐状况向量pi:
对照下表看:女主处于各种心境状况的概率,例如女主51%的概率是正常的,36%的概率是高兴的,13%的概率是溃散的
 高兴
 正常
 溃散
 0.36
 0.51
 0.13
状况搬运矩阵A:
上一个隐状况到下一个隐状况的转化概率矩阵
对照下表看:在女主上一个状况是高兴的条件下,则此时状况是高兴的概率为36.5%,正常的概率为50%,溃散的概率为13.5%
  高兴
   正常
 溃散
  高兴
 0.365
 0.500
 0.135
  正常
 0.250
 0.125
 0.625
 溃散
 0.365
 0.265
 0.370
 发射矩阵B:
隐状况对应的观测状况的概率
对照下表看:在女主是高兴的状况下,她吃汉堡的概率是10%,西瓜的概率是20%,啤酒的概率是70%
 汉堡
 西瓜
 啤酒
 高兴
 0.1
 0.2
 0.7
 正常
 0.5
 0.25
 0.25
 溃散
 0.8
 0.1
 0.1
 
一个HMM模型就由上面描述的躲藏状况数N,观测状况数M,初始隐状况向量pi,状况搬运矩阵A,混杂矩阵B五个要素组成。
咱们知道了什么是HMM,接下来看HMM是干嘛的,用mahout的HMM库来示例HMM处理哪三类问题,依然用小红和小明的场景
二、HMM处理的三类问题-mahout示例
现在男主小明开端做使命了,咱们用现成的东西mahout来示例
装置攻略(仅介绍local版)
Default
wget http://archive.apache.org/dist/mahout/0.9/mahout-distribution-0.9.tar.gz
 
cd mahout-distribution-0.9/
 
vim bin/mahout
修正
Default
MAHOUT_JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64 (修正为你自己的java地点地址)
 
MAHOUT_LOCAL=true使命一:学习(本例中依据女主吃的食物序列,揣度一个适宜的HMM模型)
输入:观测状况序列——女主吃的食物序列,咱们用数字表明对应的食物与心境
           0:汉堡
           1:西瓜
           2:啤酒
           0 :溃散
           1:高兴
           2:   正常
输出:生成一个适宜的HMM模型
算法:BaumWelch
Default
echo "0 1 2 2 2 1 1 0 0 2 1 2 1 1 1 1 2 2 2 0 0 0 0 0 0 2 2 2 0 0 0 0 0 0 1 1 1 1 2 2 2 2 2 0 2 1 2 0 2 1 2 1 1 0 0 0 1 0 1 0 2 1 2 1 2 1 2 1 1 0 0 2 2 0 2 1 1 0" > hmm-input 输入观测序列后,开端生成HMM模型
Default
bin/mahout baumwelch -i hmm-input(观测序列文件) -o hmm-model(hmm模型文件) -nh 3(隐状况数) -no 3(观测状况数) -e .0001 -m 10咱们看成果
Initial probabilities: 初始隐状况向量pi0 1 20.062295949769082204 0.22250521455286396 0.7151988356780538Transition matrix:状况搬运矩阵A:0 1 20 0.3765444789556002 0.5583673988903969 0.065088122154002921 0.3759312048603327 0.2560959620304218 0.367972833109245452 0.5383787685979908 0.24752553248847228 0.21409569891353694Emission matrix: 发射矩阵0 1 20 0.4419117509334424 0.3106990713267408 0.24738917773981681 0.20948851558479514 0.2830936761513362 0.50741780826386862 0.34341499252552676 0.40310175949497634 0.2534832479794969
使命二:猜测(依据上一个使命生成的HMM模型来猜测女主后续会吃的东西)
输入:HMM模型
输出:猜测后续的观测状况,或许核算给定规矩状况序列的概率(这个咱们鄙人一个场景中描述)
算法: ForwardBackward
Default
bin/mahout hmmpredict -m hmm-model(hmm模型文件) -o hmm-predictions (猜测成果文件)-l 10(猜测多少个后续观测状况)咱们看成果
Default
more hmm-predictions
2 2 0 0 1 2 1 2 2 1猜测女主后续会吃的东西依次为 :啤酒,啤酒,汉堡,汉堡,西瓜,啤酒,西瓜,啤酒,啤酒、西瓜
使命三:编码(依据女主吃的东西,判别女主当时的心境,这个也是男主最关怀的使命,女孩的心思你别猜。。。)
输入:HMM模型,观测状况序列
输出:观测状况序列对应的躲藏状况序列

[1] [2] [3] [4] [5]  黑客接单网

  • 发表于 2021-04-16 09:10
  • 阅读 ( 209 )
  • 分类:互联网

0 条评论

请先 登录 后评论
李易工作室
李易工作室

664 篇文章

你可能感兴趣的文章

相关问题