Softmax

一. 求导

二. 其他

  • 1. softmax和cross-entropy的关系

 torch.nn.CrossEntropyLoss = torch.nn.LogSoftmax + torch.nn.NLLLoss

  • 2. soft target/label好处

包含更高的熵,增强泛化能力,防止过拟合。

Hinton:When the soft targets have high entropy, they provide much more information per-training case than hard targets and much less variance in the gradient between training cases, so the small model can often be trained on much less data than the original cumbersome model and using a much higher learning rate.

  • 信息量:
    hard target 包含的信息量(信息熵)很低,
    soft target包含的信息量大,拥有不同类之间关系的信息(比如同时分类驴和马的时候,尽管某张图片是马,但是soft target就不会像hard target 那样只有马的index处的值为1,其余为0,而是在驴的部分也会有概率。)
  • 软化:
    例子([0.001, 0.149, 0.85]—–>soften—–>[[0.1, 0.3, 0.6]])中的红色0.001这部分,在cross entropy的loss function中对于权重的更新贡献微乎其微,这样就起不到作用。把soft target软化(整体除以一个数值后再softmax),就可以达到右侧绿色的0.1这个数值。
  • 3. softmax缺点
    • 多分类如果类别过多则纬度过多导致计算复杂(可用层级softmax优化),并且过大的话分母有可能溢出。

三. 参考

0

RNN & LSTM & GRU

一. RNN

  • 优点
    • 能够处理变长的序列,因为循环的隐藏状态,其每次的激活取决于前一次的激活状态
    • 记录前面序列的信息
  • 缺点
  • 解决办法
    • gradient clipping
    • more sophisticated activation function

二.LSTM

三. GRU

四. LSTM vs GRU

  • 相似:
    1. 它们共有的最主要的特征是从t时刻到t+1时刻的更新,这是传统的循环单元RNN所没有的,传统的循环单元一直用一个新的值来替换激励或者一个单元的内容。这个值是由输入和先前的隐藏状态计算得来的。
      • a)在一个很长序列步(a long series of steps)的输入流中,每个单元很容易记得现有的一些特定的特征。任何重要的特征,要么由LSTM的遗忘门决定要么由GRU的更新门更新,它不会被重写,只是去维护更新
      • b)可能更重要的是,这个额外的单元有效的创造了跨越多个时间步的快捷路径,这些路径很容易使错误反向传播,不至于迅速消失(门单元将近饱和为1),这是因为我们穿过了多个,有界非线性单元。结果减少了由于梯度消失带来的困难。
  • 不同点:
    • 对memory 的控制
      • LSTM: 用output gate 控制(h=o*tanh(c)),传输给下一个unit(final=h=o*tanh(c));
      • GRU:直接传递给下一个unit,不做任何控制,直接拿h(t)来用(final=h=’c’)。
    • input gate 和reset gate 作用位置不同
      • LSTM: 计算new memory ĉ(t)时不对上一时刻的信息做任何控制
      • GRU: 计算candidate activation ĥ(t)时利用reset gate 对上一时刻的信息进行控制,但计算activation h(t)没有用reset gate控制。
    • GRU内部少了一个”门控“,参数比LSTM少,收敛速度更快

五.参考

0