Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
dantezhao opened this issue Mar 28, 2018 · 4 comments

Comments

@dantezhao
Copy link
Owner

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

@dantezhao
Copy link
Owner Author

dantezhao commented Mar 28, 2018

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

@dantezhao
Copy link
Owner Author

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

@dantezhao
Copy link
Owner Author

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

@dantezhao
Copy link
Owner Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant