softmax与交叉熵

内容预览

  • 一、期望(Expect)
  • 二、熵(Entropy)
  • 三、相对熵(KL散度)
  • 四、交叉熵(Cross entropy)
  • 五、Softmax
  • 六、One-hot编码

一、期望(Expect)

随机变量的均值: E ( x ) = x 1 ∗ P ( x 1 ) + x 2 ∗ P ( x 2 ) + … + x n ∗ P ( x n ) E(x)=x_1*P(x_1)+x_2*P(x_2)+…+x_n*P(x_n) E(x)=x1P(x1)+x2P(x2)++xnP(xn)
如果变量x满足均匀分布,那么期望=均值

二、熵(Entropy)

信息量: I ( x 0 ) = − l o g ( P ( x 0 ) ) I(x_0)=-log(P(x_0)) I(x0)=log(P(x0))
概率越小,信息量越大

熵:表示所有信息量的期望
熵: H ( x ) = − ∑ i = 1 n P ( x i ) l o g ( P ( x i ) ) H(x)=-\sum_{i=1}^n P(x_i)log(P(x_i)) H(x)=i=1nP(xi)log(P(xi))
log的底一般取2

特例
二项分布 H ( x ) = − ∑ i = 1 n P ( x i ) l o g ( P ( x i ) ) = − P ( x ) l o g ( P ( x ) ) − ( 1 − P ( x ) ) l o g ( 1 − P ( x ) ) H(x)=-\sum_{i=1}^nP(x_i)log(P(x_i))=-P(x)log(P(x))-(1-P(x))log(1-P(x)) H(x)=i=1nP(xi)log(P(xi))=P(x)log(P(x))(1P(x))log(1P(x))

三、相对熵(KL散度)

KL散度:同一随机变量x,有两个单独的概率分布P(x)和Q(x),用KL散度衡量这两个分布之间的差异
D K L ( P ∣ ∣ D ) = ∑ i = 1 n P ( x i ) l o g ( P ( x i ) Q ( x i ) ) D_{KL}(P||D)=\sum_{i=1}^nP(x_i)log(\frac{P(x_i)}{Q(x_i)}) DKL(PD)=i=1nP(xi)log(Q(xi)P(xi))
KL散度越小,表示P和Q的分布约接近。
理解:P可以理解为标签,Q可以理解为预测值。

四、交叉熵(Cross entropy)

对KL散度进行变形
softmax与交叉熵_第1张图片
由上式可以看出前半部分就是熵,P(x)一旦确定就是一个定值,一般不需要优化;后半部分就是交叉熵,所以在做交叉熵损失时,值越小代表预测值越接近真实值。
交叉熵: H ( P , Q ) = − ∑ i = 1 n P ( x i ) l o g ( Q ( x i ) ) H(P,Q)=-\sum_{i=1}^nP(x_i)log({Q(x_i)}) H(P,Q)=i=1nP(xi)log(Q(xi))

五、Softmax

softmax: a j = e Z j ∑ i = 1 k e Z k a_j=\frac{e^{Z_j}}{\sum_{i=1}^ke^{Z_k}} aj=i=1keZkeZj
Z j Z_j Zj表示第j个神经元的输入
a j a_j aj表示第j个神经元的输出
神经元的输出(概率)=每个神经元的输入/所有神经元的输入之和

简单说一下为什么softmax是这种形式,因为概率有两个性质:非负性和总体之和为1。 e x e^x ex让负无穷到正无穷的预测结果x映射为正数,再做归一化处理就将其转化为概率了。

将softmax代入交叉熵
H ( P , Q ) = − ∑ i = 1 n P ( x i ) l o g ( Q ( x i ) ) = − ∑ i = 1 n y i l o g a i = − ∑ i = 1 n y i l o g ( s o f t m a x ) H(P,Q)=-\sum_{i=1}^nP(x_i)log({Q(x_i)})=-\sum_{i=1}^ny_iloga_i=-\sum_{i=1}^ny_ilog(softmax) H(P,Q)=i=1nP(xi)log(Q(xi))=i=1nyilogai=i=1nyilog(softmax)
y i y_i yi代表标签

六、One-hot编码

One-hot编码就是将分类整数值映射到二进制向量
对一个几分类问题,二进制向量长度为几:
black–>0–>[1,0]  black是第0个类,对应到二进制向量第0个位置为1
white–>1–>[0,1]  white是第1个类,对应到二进制向量第1个位置为1
……
对一个分类问题
交叉熵: H = − ∑ i = 1 n y i l o g ( a i ) H=-\sum_{i=1}^ny_ilog(a_i) H=i=1nyilog(ai)
a i a_i ai是预测类别的概率, a i ∈ [ 0 , 1 ] a_i\in[0,1] ai[0,1]
y i y_i yi是0或1;
y=0时,H=0;y=1时,a越大,H越小

不定期更新,如有错误,欢迎指教!!!

你可能感兴趣的:(笔记,机器学习,算法)