dantezhao / data-group

77 stars 12 forks source link

对语言模型M0和M1做线性插值,M_=aM0+(1-a)M1。得到的模型更好吗 #27

Open dantezhao opened 6 years ago

dantezhao commented 6 years ago

题主:看到解释说,因为信息熵是凸函数,所以M_的熵比M0和M1的熵的线性组合小,因此M_的不确定性少,是更好的模型。但是M0和M1模型都是通过最大熵算法求得的。。为什么插值模型是熵越小越好了。 困惑。。各位大佬有什么想法吗

dantezhao commented 6 years ago

仗剑走天涯:没看太懂,可否详细说一下呢。 M0 M1为什么说都是通过最大熵得到的呢。用神经网络得到的语言模型就是这样吗?

dantezhao commented 6 years ago

题主:是指可以用最大熵模型将M0模型和M1模型综合起来,可以得到更好的效果。比上面用线性插值方法得到的综合模型效果更好。 这是困惑的地方,感觉最大熵模型不太好理解呀

dantezhao commented 6 years ago

仗剑走天涯:说一下我的观点。最大熵模型的本质上是学习到样本背后所隐藏的随机分布。只是在学习这个分布时,最大熵模型遵循的原则是,学到的随机分布要使得训练样本集的产生概率尽可能大,这有点类似于最大似然。同时,使得训练集以外的样本产生的概率尽可能均匀,也就是追求熵的最大化。假设你有两个样本集train1,train2,用最大熵模型学习到相应的模型m1,m2,那么,m1就是使得train1产生概率最大,其他样本(包括trian2)产生概率尽可能平均的随机分布。m2也是类似。这样,用线性差值的方式,得到的融合模型,可以大致理解为是使得train1,train2产生概率尽可能大,对于其他样本产生概率尽可能平均。可以看到,融合模型受到的限制是trian1,train2,比单纯的m1,m2都多,剩下让它最大化熵的空间自然也小。所以,它的信息熵要小于m1,m2。但是由于它是使得train1,train2概率最大化的模型,可以想到,效果也会更好一点。

dantezhao commented 6 years ago

题主: 学到的随机模型要使得训练样本集产生概率尽可能大,训练集以外的样本产生概率尽可能均匀。 光看 统计学习方法 那一堆公式,真没理解到这层意思。 我之前描述不太准确,m1,m2两个语言模型并不是用最大熵模型学习到的,最大熵模型的优势是能把多个不同来源信息整合起来,所以用于融合m1,m2两个模型。 我现在理解是线性插值模型M_=aM1+(1-a)M2确实比单个模型M1,M2信息熵小,不管是从凸函数性质理解还是增加了训练数据的角度理解都是这样。所以M效果会比单个模型要好。 而用最大熵模型融合M1,M2得到的模型,称M。最大熵模型求解的过程中,M的确是熵最大的模型,但这里的熵最大是针对"不确定的部分"来说的。 根据经验语言模型效果M*>M>M1,M2。 只是因为最大熵模型时间复杂度太高,成本太大,所以用线性插值的方法来代替