损失函数:
最小二乘法
就是说
Min21i=1∑n(xi−yi)2
最大似然
最大似然估计的意思是啥类,就是说
Maxi=1∏n(xi∣yi)
我们在这里假设 xi 的取值为0或1,y_i表示的是概率
Maxi=1∏nyixi(1−yi)1−xi
我们想办法把连乘改为连加,采用对数的方法
Maxi=1∑n(xilogyi + (1−xi)log(1−yi))
然后我们一把求最小,所以加一个负号就好了
Min −i=1∑n(xilogyi + (1−xi)log(1−yi))
信息量
信息量可以反应出什么呢,我的理解是一个事情从不确定到确定,他的一个难度有多大。就比如8支队伍参加比赛,那么每支队伍的夺冠的概率为1/8,这也可以描述为队伍A进总决赛的概率为1/4,总决赛获胜的概率为1/2
从这个里面我们概括一下,我们用f函数来表示信息量
f(81) = f(41) + f(21)
f(队伍A夺冠) = f(队伍A进总决赛) + f(队伍A总决赛获胜)
我们在继续考虑概率的思维,将其转换为:f(x1x2) = f(x1)+f(x2)
由公式八 我们想到对数函数的一个计算法则:
logx1x2 = logx1 + logx2
所以我们定义信息量函数的方向也就有了:f(x):=k logbx
我们先来考虑一下这个b的取值(我们默认是大于1的),其实b的一个取值我们知道他只会影响f(x)随 x 的一个变化速率,总体的倾向的话,他是不会影响。在考虑到使用计算机二进制,我把b 在这里取值为2。
我们再来考虑这个k的取值,首先来说,我们是在给信息量下一个定义,所以我们可以将k简单的描述为1或者-1,我们可以在这个体系里面逐渐完善。 在考虑我们的x 跟f(x)之间的关系,是正比还是反比。 回顾我们的公式(6),我们可以看到其实 x 越小, f(x)的值越大。
所以我们可以最终给出一个完整的信息量的定义:
f(x) = −log2 x
熵
熵是反应一个系统整体从不确定到确定的难度。我们再看一个例子:现在有四只队伍 AB对抗 CD对抗,然后的话,我们假设AB胜率均为1/2,C的胜率我们假设为1/100 ,D的胜率我们假设为99/100
那么,我们把AB对抗,CD对抗作为两个系统,然后的话,思考怎么计算两个系统的熵,我们知道了信息量是衡量一件事从不确定到确定,那么一个我们综合考虑一个系统内事的信息量,我们是不是就可以得到熵的表达式:
思考1:我们把熵当作把一个系统内事的信息量的简单相加
HAB:=−log221−log221=2
HCD:=−log21001−log210099≈6.65
我们看到这种情况应该是不正确的,就是说,我们在判断 AB 跟CD 两组胜出情况的时候,应该是AB组更难判断,因为他们势均力敌,各有一半胜率。所以我们在考虑上他们的一个胜利的概率:
改良:考虑一个均值
HAB:=−21log221−21log221=1
HCD:=−1001log21001−10099log210099≈0.07
这样看上去的话,更符合熵的一个定义。
经过上面例子的思考,我们给出一个熵的定义:
H(P):=E(Pf).......f是信息量
H(P):=i=1∑mPif(Pi)=i=1∑mPi(−log2Pi)=−i=1∑mPilog2Pi
相对熵/KL散度 - 交叉熵
这个是衡量两个模型的差异度的。
我们直接上定义:这个是基于P的相对熵
DKL(P∣∣Q):=xϵX∑Px[ fQq(x)−fPP(x) ]=xϵX∑Px[−log2q(x)−log2p(x)]=xϵX∑Px(−fQq(x)) − xϵX∑Px(−fPp(x))
所以我们知道Q相对于P的相对熵是 H(P,Q)-H§,这就是 交叉熵-P的熵
所以我们为了使两个模型更为相近,我们要尽量让 H(P,Q)-H§ 趋紧0,根据吉布斯不等式,我们知道H(P,Q)是大于H§的,所以我们让H(P,Q)尽量的小就可以了。
然后比如我们在做机器学习的时候,我们就可以把交叉熵作为我们的一个损失函数。
H(P,Q)=xϵX∑Px(−fQq(x))=i=1∑nxi(−log2yi)=−xϵX∑n(xilog2yi+(1−xi) log2(1−yi))
这就跟最大似然的结果一样了。