softmax函数:
softmax的主要功能是将各个类别的打分转换成概率值,打分代表不了概率,打分值可以为负数,而概率值要求位于0到1
所以应用以下公式
i代表类别,例如mnist手写字体,i取值从0到9。
这里还是拿MNIST手写字体为例
x是单个样本特征,W ,b分别是softmax函数的参数,在例子中,x代表输入图片,为一个784维的向量,即784*1的矩阵,W为(784,10)的矩阵,b是一个10维向量;10代表的是类别数,Logit可用如下公式计算:
L o g i t = W T x + b Logit = W^{T}x +b Logit=WTx+b
Logit同样是一个10维向量,可以代表我们上文提到过的“打分”接下来就是用softmax函数换算为概率值
y = s o f t m a x ( L o g i t ) y=softmax(Logit) y=softmax(Logit)
合并:
y = s o f t m a x ( W T x + b ) y=softmax(W^{T}x +b) y=softmax(WTx+b)
交叉熵
了解交叉熵之前,我们先来了解一下什么是信息熵:信息熵代表的是随机变量或整个系统的不确定性,熵越大,随机变量或系统的不确定性就越大。看不懂吧,下面我们通过几个例子来了解信息熵。
例子1、盒子里面有四个球,一个蓝色的, 一个红色的, 一个绿色的, 一个橘色的。现在我从中拿出一个小球,你猜我手中的小球是什么颜色?
以最小的代价猜出答案,简称策略1,如下:
所以预期的猜球次数为:1/4 * 2 + 1/4 * 2 + 1/4 * 2 + 1/4 * 2 = 2
例子2、袋子中1/8的小球是绿色的, 1/8 的是橘色的, 1/4 是红色的, 1/2 是蓝色的
以最小的代价猜出答案,简称策略2,如下:
所以预期的猜题次数为:1/2 * 1 + 1/4 * 2 + 1/8 * 3 + 1/8 * 3= 1.75
例子3、里面的球都是橙色,现在我从中拿出一个,你猜我手中的球是什么颜色?
肯定是橙色,需要猜0次。
上面三个题目表现出这样一种现象:针对特定概率为p的小球,需要猜球的次数为
l
o
g
2
1
p
k
log_{2}\frac{1}{p_{k}}
log2pk1
例如2中的绿色球概率为1/8,则需要猜球次数为
l
o
g
2
8
=
3
log_{2}8=3
log28=3,那么,针对整个整体,预期的猜题次数为:
这就是信息熵,上面三个题目的预期猜球次数都是由这个公式计算而来,第一题的信息熵为2,第二题的信息熵为1.75,最三题的信息熵为0;这时我们再看概念:信息熵代表的是随机变量或整个系统的不确定性,熵越大,随机变量或系统的不确定性就越大所以,每一个系统都会有一个真实的概率分布,也叫真实分布,题目1的真实分布为(1/4,1/4,1/4,1/4),题目2的真实分布为(1/2,1/4,1/8,1/8),而根据真实分布,我们能够找到一个最优策略,以最小的代价消除系统的不确定性,而这个代价大小就是信息熵,记住,信息熵衡量了系统的不确定性,而我们要消除这个不确定性,所要付出的【最小努力】(猜题次数、编码长度等)的大小就是信息熵。
现在我们对于例子2还使用策略1的话,题目2的真实分布为(1/2,1/4,1/8,1/8),我们使用的策略确是建立在分布为(1/4,1/4,1/4,1/4)的情况下,这时,这个分布就为非真实分布。我们就是在使用非最优策略消除系统的不确定性,这时所需要付出的努力的大小我们该如何去衡量呢?下面引入交叉熵的概念。
交叉熵公式为:
图中
P
k
P_{k}
Pk代表真实分布,
q
k
q_{k}
qk代表非真实分布,例如上面所讲的将策略1用于题目2,真实分布
非真实分布
交叉熵为:
所以交叉熵就是用来衡量在给定的真实分布下,使用非真实分布所指定的策略消除系统的不确定性所需要付出的努力的大小
相对熵 = 某个策略的交叉熵 - 信息熵(根据系统真实分布计算而得的信息熵,为最优策略),公式如下:
可以说是交叉熵减去信息熵(最优策略)
学习率
回头再说这个
argmax
https://blog.csdn.net/weixin_38145317/article/details/79650188