改进的迭代尺度法(IIS)详细解析 | 统计学习方法学习笔记 | 数据分析 | 机器学习

IIS是一种最大熵模型学习的最优化算法。最大熵模型:舟晓南:统计学习方法 - 最大熵模型解析 | 数据分析,机器学习,学习历程全记录

已知最大熵模型为:

 

《统计学习方法》中直接给出对数似然函数为:


 现在解释如何得到上式的对数似然函数:

首先根据对数似然函数的一般形式给出:

 在上式中,第二行的箭头成立,是因为指数v(x, y)表示x和y确定时的个数,N为总样本数,除以总样本数不改变w,因此成立。

因为 \sum_{x,y}^{}\bar{p}(x,y)log\bar{p}(x)为常数,这对于我们求极大值没有用处,因此忽略,所以:

因为  ,  所以最终可以得到书中的对数似然函数:

 


 现在求对数似然函数w的极大值,假设最大熵模型当前的参数向量是w,找到一个新的参数向量\omega +\delta  ,使模型的对数似然函数值增大。如果能有这样一种参数向量更新的方法\omega \rightarrow \omega +\delta  ,那么就可以不停迭代,直至找到对数似然函数的最大值。

因为:  ,所以:

利用不等式 -log\alpha \geqslant 1-\alpha ,\alpha > 0 (不等式证明可参考:证明 logX < X 对所有 X > 0 成立)可得:

利用 :

又因为  ,所以有:

 

于是:

我们将等式右端记为:A(\delta |\omega )  ,这是似然函数的下界,于是有:

如果我们能够找到适当的\delta使下界提高,那么似然函数也会随之提高。但 \delta是一个向量,不易同时对每个方向都进行优化,于是固定其它方向,仅优化其中的一个方向,这时我们需要再一次更新下界,使得可以仅优化一个方向。

具体的,我们引入一个量:

表示所有特征在(x,y)中出现的次数。在书中对f#为常数或不为常数的情况做了讨论,不过对于f#什么时候为常数,网络上各有理解。我们首先回顾一下f(x,y)是什么:

 首先这个函数f本身代表的是一个规则,即x与y满足某一事实,则为1,否则为0。括号内的x和y是输入值,即每一个数据点的数据,或者说是每一个实例的数据。

那么fi(x, y)中的下标i表示的是不同的规则,比如f1(x, y)在x=1, y=2的情况下为1,否则为0;f2(x, y)在x=2,y=2的情况下为1,否则为0。

对某一个实例而言,我们将其代入f1和f2中,判断这个实例的数据是否符合f1和f2的规则,如果仅符合f1而不符合f2,则f1=1,f2=0。

那么  实际上是对一个特定的实例的数据进行i次不同规则的判断。

举一个例子,如果f1(x, y)为x1=1, y=0则为1,否则为0,f2(x, y)为x2=0,y=0为1,否则为0。那么对于某一个实例(x1=1, x2=0, y=0)来。说,它既满足f1也满足f2,所以f1=1, f2=1,那么  

那么对于另一个实例(x1=1, x2=1, y=0),它满足f1但不满足f2,所以f1=1,f2=0,那么

这就是为什么在《统计学习方法》中提到f#(x, y)可能为常数,也可能不为常数。在常数的情况下,说明每一个实例的数据符合的规则的数量是一样的,比如有三个规则,实例1符合规则1和规则2,实例2符合规则2和规则3,实例3符合规则1和规则3,尽管它们符合的规则不同,但数量相同,三个实例的f#(x, y)都为2。

当然,f#(x, y)为常数的情况发生的概率很小,因此f#(x, y)在大部分情况下都不是常数。

为了更好的理解,我们再看下标i还出现在权值和权值的更新值上,这说明实际上每一个特征函数fi(x, y)都对应了一个权值wi,对于一个特定的实例来说,如果它符合f1(x, y)的规则,那么权值w1就会作用在这个实例上,也就是说在预测或者分类的时候,模型会考虑f1(x, y)所代表的特征,如果该实例不符合f2(x, y),那么w2就不会作用在这个实例上,毕竟f2(x, y)=0,这样模型在预测或分类时,就不会考虑f2(x, y)所代表的特征,毕竟这个实例都没有这个特征,又为什么要去考虑它呢?

回到IIS算法本身,定义了f#(x, y)后,可以将  A(\delta |\omega )改写为:

 

因为指数函数是凸函数,且对任意i,有  且  ,利用琴声不等式(琴声不等式的资料可自行查找)可得:

 

 所以:

 于是下界被再一次刷新,此时可以对向量 \delta 中的一个方向单独进行优化(求导)了。对其求偏导并令导数为0:

 得到:


这样,就可以依次对每一个\delta _{i}求解,得到向量\delta并对w进行更新迭代了。


同名公众号和知乎:舟晓南

对机器学习,深度学习,python感兴趣,欢迎关注专栏,学习笔记已原创70+篇,持续更新中~ ^_^

学习笔记:数据分析,机器学习,深度学习​https://www.zhihu.com/column/c_1274454587772915712

专栏文章举例:

【机器学习】关于逻辑斯蒂回归,看这一篇就够了!解答绝大部分关于逻辑斯蒂回归的常见问题,以及代码实现 - 知乎 (zhihu.com)

关于 python 二三事​https://www.zhihu.com/column/c_1484952401395941377

专栏文章举例:

记录一下工作中用到的少有人知的pandas骚操作,提升工作效率 - 知乎 (zhihu.com)

关于切片时不考虑最后一个元素以及为什么从0开始计数的问题 - 知乎 (zhihu.com)

关于转行:

舟晓南:如何转行和学习数据分析 | 工科生三个月成功转行数据分析心得浅谈

舟晓南:求职数据分析师岗位,简历应该如何写?|工科生三个月成功转行数据分析心得浅谈


我建了个数据分析,机器学习,深度学习的群~ 需要学习资料,想要加入社群均可私信~

在群里我会不定期分享各种数据分析相关资源,技能学习技巧和经验等等~

详情私信,一起进步吧!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值