《机器学习高频面试题详解》1.15:EM算法
点击上方卡片链接就可以进入专栏,专栏右上角有订阅选项,欢迎大家订阅~
前言
大家好,我是鬼仔,今天带来《机器学习高频面试题详解》专栏的第1.15节:EM算法。这是鬼仔第一次开设专栏,每篇文章鬼仔都会用心认真编写,希望能将每个知识点讲透、讲深,帮助同学们系统性地学习和掌握机器学习中的基础知识,希望大家能多多支持鬼仔的专栏~
目前这篇是试读,后续的文章需要订阅才能查看哦,专栏预计更新30+篇文章(只增不减),具体内容可以看专栏介绍,大家的支持是鬼仔更新的动力!
本文大纲 |
|
一、算法原理 |
1. 极大似然估计 |
2. EM算法举例 |
|
3. EM算法流程 |
|
二、面试真题 |
1. 简要阐述下EM算法的定义和流程? |
2. 简要阐述下EM算法的原理? |
|
3. EM算法与Kmeans聚类算法的关系? |
|
4. 采用EM算法求解的模型有哪些,为什么不用牛顿法或梯度下降法? |
|
5. EM算法对参数初始值敏感吗,算法是否一定收敛,能否保证收敛到全局最大值? |
一、算法原理
1. 极大似然估计
假设表示一个具体的数据,表示模型的参数,则对于函数来说,有两种情况:
1)如果是已知确定的,是变量,该函数即为概率函数,它表示对于不同的样本点,其出现的概率是多少;
2)如果是已知确定的,是变量,该函数即为似然函数,它表示对于不同的模型参数,出现这个样本点的概率是多少。
也就是说同一个数学模型,从不同的变量角度观察,可以产生不同的数学问题。极大似然估计是在保证似然函数取得最大值时,求解参数的值,具体可见1.4:概率模型参数估计方法。
2. EM算法举例
1)考虑投硬币的场景:有两枚硬币A和B,假定随机抛掷后正面朝上概率分别为,。为了估计这两个硬币朝上的概率,轮流抛硬币,每一轮都连续抛5次,总共5轮:
硬币 |
结果 |
统计 |
A |
正正反正反 |
3正-2反 |
B |
反反正正反 |
2正-3反 |
A |
正反反反反 |
1正-4反 |
B |
正反反正正 |
3正-2反 |
A |
反正正反反 |
2正-3反 |
硬币A被抛了15次,结果分别为:3次正、1次正、2次正,根据极大似然估计,可得出,同理可得。
2)考虑另一种情形,假设每一次抛硬币都不知道是A还是B,同样每一轮都连续抛5次,总共5轮:
硬币 |
结果 |
统计 |
- |
正正反正反 |
3正-2反 |
- |
反反正正反 |
2正-3反 |
- |
正反反反反 |
1正-4反 |
- |
正反反正正 |
3正-2反 |
- |
反正正反反 |
2正-3反 |
此时多了一个硬币种类的隐变量,可以把它认为是一个5维的向量,隐变量的分布不知道,因此无法直接估计和,所以必须先估计出,然后才能进一步估计和。可要估计,又得先知道和,这样才能用极大似然概率法则去估计,这是相互矛盾的事情。
为此,EM算法发明了出来。具体的做法如下:
先分别随机初始化硬币A和B正面朝上的概率,比如,。
然后,我们看看第一轮抛掷最可能是哪个硬币。
如果是硬币A,得出3正2反的概率为
如果是硬币B,得出3正2反的概率为
依此类推,求出其他4轮中的相应概率:
轮数 |
若是硬币A |
若是硬币B |
极大似然法则估计隐变量的分布 |
1(3正-2反) |
0.00512 |
0.03087 |
硬币B |
2(2正-3反) |
0.02048 |
0.013 |
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
专栏作者曾在校招期间拿到包括字节、微信和华为等多家大厂的SSP offer,该专栏主要是为了帮助同学们系统性地学习和掌握机器学习中的基础知识。专栏详细地整理了各大厂的算法岗面经,力争深入浅出地讲解重要知识点,适合人群为准备校招或者实习,且目标岗位为算法岗、数据挖掘岗或者数据分析岗的同学。