响应式网站在线,南方建筑人才网,给公司做网站数据分析,阿里巴巴手工活外发加工网softmax函数–softmax layer
softmax用于多分类过程中#xff0c;它将多个神经元的输出#xff0c;映射到#xff08;0,1#xff09;区间内#xff0c;可以看成概率来理解#xff0c;从而来进行多分类#xff01;
假设我们有一个数组z(z1,z2,...zm),则其softmax函数定…softmax函数–softmax layer
softmax用于多分类过程中它将多个神经元的输出映射到0,1区间内可以看成概率来理解从而来进行多分类
假设我们有一个数组z(z1,z2,...zm)z=(z_1,z_2,...z_m),则其softmax函数定义如下
σi(z)exp(zi)∑mj1exp(zj),i1,2..,m\sigma_i(z)=\frac{exp(z_i)}{\sum_{j=1}^mexp(z_j)} ,i=1,2..,m也就是softmax是个函数映射将z(z1,z2,...zm)z=(z_1,z_2,...z_m)映射到(σ1,σ2,...σm)(\sigma_1,\sigma_2,...\sigma_m). 其中∑σi1.\sum\sigma_i=1.如下图可以更清楚地表明。 在logistic回归中假设ziwTixbiz_i=w_i^Tx+b_i是第i个类别的线性预测结果带入softmax中就可以得到oiσi(z)o_i=\sigma_i(z)可以解释成观察得到的数据x属于类别i的概率或者称为似然Likehood。
logistic regression
Logistic Regression 的目标函数是根据最大似然原则来建立的假设数据x所对应的类别为 y则根据x我们刚才的计算最大似然就是要最大化oyo_y的值 通常是使用 negative log-likelihood 而不是likelihood也就是说最小化−log(oy)-log(o_y)的值这两者结果在数学上是等价的。即min−log(oy)max oymin -log(o_y) max~o_y 后面这个操作就是 caffe 文档里说的 Multinomial Logistic Loss具体写出来是这个样子
l(y,o)−log(oy)l(y,o)=-log(o_y)从上面可以看出计算似然损失其实是和label一起的。这也是情理之中的既然我们知道label是某一个自然我们我希望对应的预测概率尽可能大一点。这就归结于上面的log损失。softmax logistic loss
softmax logistic loss就是将softmax与上述的log损失结合到一起只要把oyo_y的定义展开即可。
l^(y,z)−log(ezy∑mj1ezj)\hat{l}(y,z)=-log(\frac{e^{z_y}}{\sum_{j=1}^{m}e^{z_j}})其实label(这里指y)的作用就是指定了softmax的序号也就是告诉是哪一些最小化。反向传播
反向传播要求根据loss更新weights,需要计算loss对于weight的偏导数。 我们参考了网上的一个例子,来简单介绍一下如何计算偏导。 a4ez4ez4ez5ez6a5ez5ez4ez5ez6a6ez6ez4ez5ez6a_4=\frac{e^{z4}}{e^{z4}+e^{z5}+e^{z6}},
a_5=\frac{e^{z5}}{e^{z4}+e^{z5}+e^{z6}},
a_6=\frac{e^{z6}}{e^{z4}+e^{z5}+e^{z6}}好了我们的重头戏来了怎么根据求梯度然后利用梯度下降方法更新梯度要使用梯度下降肯定需要一个损失函数这里我们使用交叉熵作为我们的损失函数为什么使用交叉熵损失函数不是这篇文章重点后面有时间会单独写一下为什么要用到交叉熵函数这里我们默认选取它作为损失函数 交叉熵函数形式如下 其中y代表我们的真实值a代表我们softmax求出的值。i代表的是输出结点的标号在上面例子i就可以取值为4,5,6三个结点当然我这里只是为了简单真实应用中可能有很多结点现在看起来是不是感觉复杂了居然还有累和然后还要求导每一个a都是softmax之后的形式
但是实际上不是这样的我们往往在真实中如果只预测一个结果那么在目标中只有一个结点的值为1比如我认为在该状态下我想要输出的是第四个动作第四个结点,那么训练数据的输出就是a4 1,a50,a60哎呀这太好了除了一个为1其它都是0那么所谓的求和符合就是一个幌子我可以去掉啦 交叉熵函数形式如下 这就回到了我们的softmax logistic loss其实发现交叉熵损失与softmax logistic loss在输出只有一个类的时候等价。参数的形式在该例子中总共分为w41,w42,w43,w51,w52,w53,w61,w62,w63.这些那么比如我要求出w41,w42,w43的偏导就需要将Loss函数求偏导传到结点4然后再利用链式法则继续求导即可举个例子此时求w41的偏导为: w51…..w63等参数的偏导同理可以求出那么我们的关键就在于Loss函数对于结点4,5,6的偏导怎么求如下这里分为俩种情况 ji对应例子里就是如下图所示比如我选定了j为4那么就是说我现在求导传到4结点这 这里对应我的例子图如下我这时对的是j不等于i往前传参考文献
Softmax vs. Softmax-Loss: Numerical StabilityCaffe中Loss Layer原理的简单梳理Softmax 函数的特点和作用是什么