这节主要介绍softmax,将其与squared error作对比,体现softmax优越性。


squared error的问题

squared error用来做分类器,通常是使用logistic输出神经元的输出与目标值做差取平方。
具体的,输入是z⃗ ,输出是y⃗ =ez⃗ 1+ez⃗ ,目标值为t⃗ 。所有向量的维度等于类别数。其中y⃗ =sigmoid(z⃗ )
这里面强制使得y⃗ 位于0到1之间,并认为其为相应类别的概率。这个概率假设存在一个明显的问题是,很容易所有类别的概率加和不为1,而这是不符合直觉的。
然后有y⃗ z⃗ =y⃗ .(1y⃗ ),其在y⃗ 接近于0和1的时候导数接近于0。在损失函数为squared error情况下,e=(t⃗ y⃗ )T(t⃗ y⃗ )eyi=2(t⃗ y⃗ ),这个导数最大1,并不能平衡z⃗ y⃗ 导数趋近于0的部分。假设t=1, y=0.0001,那么虽然误差很大,但是梯度值很小,模型变化不大,这也不是我们想要的。
下面会介绍,上诉两个问题都可以被softmax解决。
Hinton Neural Networks课程笔记4c:softmax输出神经元

Softmax

Hinton Neural Networks课程笔记4c:softmax输出神经元
softmax的定义如上,使用ezi表示相应类别的能量,然后使用归一化强制使得概率和为1。通过这个定义,可以看出softmax可以输出任意概率分布。
y⃗ z⃗ 的导数和logistic神经元一样为yi(1yi)
然后用最大似然的方法,最大化概率乘积,等价于最大化概率log加和,等价于最小化概率log加和的负数。最终的损失函数叫cross-entropy, C=t⃗ logy⃗ 。这个损失函数的一个优点就是放大了y很小部分的梯度,而且是1/y倒数的放大比率。所以当y很小的时候,Cyi=1/yi很大,梯度不会趋近于0。同时这种放大也是符合直觉的,因为1e61e12之间的差值可能小于1e6,但是差异却很大。
Hinton Neural Networks课程笔记4c:softmax输出神经元

相关文章:

  • 2021-08-18
  • 2021-04-01
  • 2022-01-19
  • 2022-01-08
  • 2021-10-22
  • 2022-01-28
  • 2021-06-14
  • 2021-11-29
猜你喜欢
  • 2021-07-27
  • 2021-09-04
  • 2021-10-26
  • 2021-10-06
  • 2021-11-28
  • 2021-05-29
  • 2021-09-24
相关资源
相似解决方案