昆明网站建设时间,网站怎么做后期维护,建设银行沈阳分行网站,网络推广策划书众所周知#xff0c;softmaxcross entropy是在线性模型、神经网络等模型中解决分类问题的通用方案#xff0c;但是为什么选择这种方案呢#xff1f;它相对于其他方案有什么优势#xff1f;笔者一直也困惑不解#xff0c;最近浏览了一些资料#xff0c;有一些小小心得softmaxcross entropy是在线性模型、神经网络等模型中解决分类问题的通用方案但是为什么选择这种方案呢它相对于其他方案有什么优势笔者一直也困惑不解最近浏览了一些资料有一些小小心得希望大家指正~损失函数交叉熵Cross Entropy我们可以从三个角度来理解cross entropy的物理意义从实例上直观理解我们首先来看Cross Entropy 的公式假设存在两个分布 和 为样本的真实分布 为模型预测出的样本分布则在给定的样本集 上交叉熵的计算方式为通常情况下在线性模型、神经网络等模型中关于样本的真实分布可以用one-hot的编码来表示比如男、女分别可以用[0,1]和[1,0]来表示同样的C种类别的样本可以用长度为C的向量来表示且一个样本的表示向量中有且仅有一个维度为1其余为0。那会造成什么后果呢我们来看一个例子假设一个样本的真实label为 预测的分布为 则交叉熵为如果预测分布为 ,则交叉熵为可以看出其实 只与label中1所对应下标的预测值有关且该预测值越大 越小。只要label中1所对应下标的预测值越接近1则损失函数越小这在直观上就是符合我们对于损失函数的预期。交叉熵为什么比均方误差好作为回归问题的常见损失函数均方误差公式为 好像也可以用来计算分类问题的损失函数那它为什么不适合分类问题呢我们再来看一个例子假设一个样本的真实label为[0,0,0,1,0]预测的分布为 ,预测分布 ,此时 ,也就是说对于 而言即使与label中1所对应下标的预测值是正确的其他项预测值的分布也会影响损失的大小这不符合我们对于分类问题损失函数的预期。 似然估计的视角我们知道对于一个多分类问题给定样本 ,它的似然函数可以表示为其中 是模型预测的概率 是对应类的label 为类别的个数那么其负对数似然估计则为 , 对应于 对应于 其实交叉熵就是对应于该样本的负对数似然估计。KL散度视角KL散度又被称为相对熵可以用来衡量两个分布之间的距离想了解KL散度可以参考如何理解K-L散度。需要了解的是KL散度越小两个分布越相近。这么看KL散度是不是很符合我们对于两个分布损失函数的定义呢?KL散度的公式为其中 为 的熵注意这里的 是样本的真实分布所以 为常数因此KL散度与交叉熵事实上是等价的所以交叉熵也可以用来衡量两个分布之间的距离符合我们对于损失函数的期待。softmaxcross entropy到底学到了什么我们知道在回归问题中的最常用的损失函数是均方误差 那么在反向传播时, ,即均方误差在反向传播时传递的是预测值与label值的偏差这显然是一个符合我们预期的、非常直觉的结果。假定分类问题的最后一个隐藏层和输出层如下图所示 为最后一个隐藏层的C个类别, 为输出层则有 因此softmaxcross entropy在反向传播时传递的同样是预测值与label值的偏差即 如果对于证明不感兴趣的那么这篇文章就可以到此结束了~以下均为证明过程。图中 我们用 表示分母 则 。注意这里的 与所有的 都相关因此需要用链式法则求导。下面求 的求导分为两种情况当 时, 当 时代入上式得 注意这里 为所有label的和应该等于1。