最大熵模型(MEM)

最大熵模型允许添加自定义特征,适用于维度极大的分类任务,如词性标注。它打破了隐马尔科夫模型的齐次性假设,通过引入特征函数考虑更多复杂情况。模型训练通过调整特征权重使样本特征权重接近经验分布,测试时未知特征默认为均匀分布,体现最大熵原则。代码示例来自《NLP汉语自然语言处理,原理与实践》。
摘要由CSDN通过智能技术生成

最大熵模型的优点在于可以添加任意自定义特征,且不需要保持维度一致性(通俗而言,就是每个样本满足哪些特征,就放哪些特征;特征函数的取值均为 0 或 1;放进来的特征即表示该样本在该特征维度上取值为 1,否则默认为 0),因此适用于特征维度极大的分类任务;例如 NLP 工作中的词性标注,依据上文出现的词语判断词性,出现的词语即表示为 1,语料库中词汇的数量通常高达数十万,在通常模型中构造维度高达数十万的训练样本显然是不现实的,而通过最大熵模型,每个样本只需要提供个位数的特征信息。相对于隐马尔科夫模型,最大熵模型破除了齐次性的假设,同时引入特征函数,使模型预测得以考虑更多复杂特征,而非只有上一时间步长的状态。

模型训练时计算经验分布下的特征权重和当前训练样本下的特征权重,通过算法收敛使得训练样本下的模型特征权重逐渐接近经验分布下的特征权重。当测试样本中出现超出训练样本特征集的特征,模型在计算其针对各个分类的条件概率 p ( y ∣ x i ; x 1 , x 2 , . . . x n ) p(y|x_i;x_1,x_2,...x_n) p(yxi;x1,x2,...xn) 时默认其为均匀分布,即最大熵最核心的思想——最大熵。由于该模型的数学原理较为复杂,笔者暂时只呈现相关代码 (今后有空闲时间再补充),对相关原理感兴趣可先参考这一篇文章:最大熵模型

以下代码来自郑捷所著《NLP汉语自然语言处理,原理与实践》,使用如下函数进行梯度更新: Δ W = 1 M l o g E p ∗ E p \Delta W = \frac{1}{M}log\frac{E_{p^*}}{E_p} ΔW=M1logEpEp

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值