论隐马尔可夫模型在谈恋爱中的重要性

  学习了隐马尔科夫模型至今也有一些时日了,前一阵子由于会错了女朋友的意思,搞得心里有些芥蒂,虽然没有掀起什么波澜,但这却引起了我对人生的思考:

如何通过这件事让我们更好地理解隐马尔可夫模型呢?

  首先我们来讲一个故事:

  故事的主人公是我们的朋友小丁,小丁同学最近交了一个女朋友芳名李建钢,两个人平日里感情还挺不错。这天下午,小丁和李建钢在公园散步,路上遇到了小丁的前女友,赵铁柱,两人一见面,竟热情的聊起来。

  李建钢在一旁心中满是尴尬,但还是礼貌的小丁的前女友说了声“你好”

  小丁见状,心中不禁为女朋友的“大度 ”点了个赞,转过头来,邀请赵铁柱和他们一起出游。

  李建钢心中不乐意了,但是一时找不到什么理由拒绝,在大庭广众之下也不好发脾气,从牙缝中挤出一句“多一个人也热闹点”。

  小丁这时候还没有意识到事情的严重性,心里感激涕零,暗暗赞赏自己现女友的与众不同。三个人就这么度过了一个“愉快”的下午。

  晚上各自回到家之后,李建钢越想越气,觉得自己没有受到起码的尊重,最后觉得这样的男友扔了也罢,反手一条微信,发了一句“你是个好人”,然后就将小丁删除、拉黑了。

  小丁回到家里,还在回味今天的偶遇,也不禁啧啧赞叹李建钢表现的“大度”,这时手机收到李建钢的消息。

  “我是个好人?交往了这段时间,这个女人总算明白我和那些渣男不一样了!”小丁乐开了花,关上灯,闭上眼睛,寻思着明天一定要给李建钢带的煎饼果子中多加一个蛋,脑海中已然浮现出李建钢那幸福的表情。

现在我们分析一下这个故事,走进小丁这个笨蛋的内心世界。
废话不多说,推理开始~

  首先,不难看出,如果我们用马尔科夫模型来描述这个故事,那么“李建钢说的话”就可以看作观测序列,表示为 O O ,这个是小丁同学可以观察到的;而“李建钢内心的想法”就可以看作状态序列,表示为 I I ,这是小丁同学所看不到的。

I = ( i 1 , i 2 , i 3 ) O = ( o 1 , o 2 , o 3 ) I=(i_1,i_2,i_3)\\ O=(o_1,o_2,o_3)
在这里插入图片描述

  所有可能的状态的集合,就是李建钢的想法,可以简化为“生气”和“不生气”,用 Q Q 表示;
Q = ( " " ) Q=("生气",“不生气”)
  所有可能的观测的集合,就是李建刚说的话,也可以简化为“好话”和“气话”,用 V V 表示。
Q = ( " " ) Q=("好话",“气话”)
  根据观察,可以知道观测序列:
O = ( ) O=(“好话”,“好话”,“好话”)
  李建钢可能属于讨好型人格,说的全是“好话”~

  我们知道隐马尔可夫模型的三要素: λ = ( A , B , π ) \lambda = (A,B,\pi) 。在这件事情中,三要素中的概率不去通过算法计算,而是使用生活的常识,对女孩子的心思有个先验的概率估计。

  李建钢是一个不错的女孩,但是有着很强的自尊心,所以偶遇小丁的前女友,虽然有一点点尴尬,但是还是保持礼貌的微笑,并且大方地打了招呼,可以猜测,遇到这种情况,李建钢会有0.6的概率生气,有0.4的概率不会生气。 π \pi 就可以表示为:
π = ( 0.6 0.4 ) \pi= \begin{pmatrix} 0.6\\0.4 \end{pmatrix}

  和一些女孩子一样,当李建钢生气的时候,说的话总是让人捉摸不定,说好话和气话的概率各位0.5;当她不生气的时候,说好话的概率是0.9,说气话的概率是0.1,这0.1的气话可以理解为偶尔撒撒娇。那么 B B 就可以表示为:
B = ( 0.5 0.5 0.9 0.1 ) B= \begin{pmatrix} 0.5&0.5\\0.9&0.1 \end{pmatrix}

   A A 的情况有些复杂,如果小丁当时察觉到女朋友生气了,开始和女友好好沟通,并与前女友保持距离,那么李建钢由生气转换成继续生气的概率是0.4,同时有0.6的概率被哄好,由不生气转换成生气的概率是0.3,由不生气保持不生气的概率是0.7,这时 A A 表示为 A 1 A_1
A 1 = ( 0.4 0.6 0.3 0.7 ) A_1= \begin{pmatrix} 0.4&0.6\\0.3&0.7 \end{pmatrix}

  但是小丁看起来不太聪明的亚子,并没有采用上述的方法,这时李建钢由生气转换成继续生气的概率是0.9,同时有0.1的概率被哄好,由不生气转换成生气的概率是0.9,由不生气保持不生气的概率是0.1,这时 A A 表示为 A 2 A_2
A 2 = ( 0.9 0.1 0.9 0.1 ) A_2= \begin{pmatrix} 0.9&0.1\\0.9&0.1 \end{pmatrix}

  我们知道了模型和观测序列,想要知道状态序列,这个问题属于隐马尔可夫模型基本问题中的预测问题。
  下面我们来帮助小丁同学使用维特比算法推测状态序列,也就是李建钢内心真实的想法。

  根据事情的经过不难看出,小丁果断采用的是第二种方案,即选择使用了 A 2 A_2 这个矩阵。
  使用 δ i ( j ) \delta_i(j) 来表示状态为 j j ,第 i i 个时间的观测为“好话”的概率。状态1表示为“生气 ”,状态2表示“不生气”
δ 1 ( 1 ) = 0.6 × 0.5 = 0.3 δ 1 ( 2 ) = 0.4 × 0.9 = 0.36 \delta_1(1)=0.6×0.5=0.3 \\ \delta_1(2)=0.4×0.9=0.36
  取其中最高的数接着进行计算,这里可以看出,李建钢还算是一个大度的人,偶遇前女友之后还是可以大概率呈“不生气”的状态。接下来:
δ 2 ( 1 ) = 0.36 × 0.9 × 0.5 = 0.162 δ 2 ( 2 ) = 0.36 × 0.1 × 0.9 = 0.0324 δ 3 ( 1 ) = 0.162 × 0.9 × 0.5 = 0.0729 δ 3 ( 2 ) = 0.162 × 0.1 × 0.9 = 0.01458 \delta_2(1)=0.36×0.9×0.5=0.162 \\ \delta_2(2)=0.36×0.1×0.9=0.0324\\ \delta_3(1)=0.162×0.9×0.5=0.0729 \\ \delta_3(2)=0.162×0.1×0.9=0.01458
在坐标轴上的显示为:
在这里插入图片描述
  经过分析我们知道,李建钢真正生气的点在于小丁竟然邀请前女友和他们一起出行,仔细一想,这个生气的理由很符合常理。而小丁竟然在这之后一错再错,最终酿成悲剧!

  如果我们使用第一种情况,使用“哄+好好沟通+和前女友保持距离”的 策略,再来进行计算:
δ 1 ( 1 ) = 0.6 × 0.5 = 0.3 δ 1 ( 2 ) = 0.4 × 0.9 = 0.36 δ 2 ( 1 ) = 0.36 × 0.3 × 0.5 = 0.054 δ 2 ( 2 ) = 0.36 × 0.7 × 0.9 = 0.2268 δ 3 ( 1 ) = 0.2268 × 0.3 × 0.5 = 0.03402 δ 3 ( 2 ) = 0.2268 × 0.7 × 0.9 = 0.142884 \delta_1(1)=0.6×0.5=0.3 \\ \delta_1(2)=0.4×0.9=0.36\\ \delta_2(1)=0.36×0.3×0.5=0.054 \\ \delta_2(2)=0.36×0.7×0.9=0.2268\\ \delta_3(1)=0.2268×0.3×0.5=0.03402 \\ \delta_3(2)=0.2268×0.7×0.9=0.142884
在这里插入图片描述
  可以看出,李建钢生气的概率一直维持在一个很低的水平!

  由此得出结论,谈恋爱还是要学会哄人的。— —

  小丁同学算不上什么渣男,也不是特别聪明,归根揭底,还是当时学习隐马尔可夫模型的时候没有学好,没有在一开始关注到李建钢的想法,并且后面一错再错,导致了最后的不欢而散。

  第二天,小丁同学捧着煎饼果子去找李建钢,却发现自己联系不上李建钢了。在苦苦哀叹造化弄人的同时,也希望他能冷静下来,明白学好数学的重要性。

(狗头.jpg)

猜你喜欢

转载自blog.csdn.net/qq_34924057/article/details/106691426