训练不起来怎么办


Small Batch vs Large Batch

速度上或许我们会认为Large batch会更慢,但GPU的并行运算就导致当batch的数量不是特别多时,时间几乎与batch=1相同;总的时间large更占优势,比如60000个,batch=1和batch=100比较,单次的时间几乎相同,但前者要运行600000次,而后者运行60次,后者运行时间更少;前者的梯度下降会有很多noisy,但最终精确度更好,因为更多noisy就不会卡在一个地方,比如一个梯度为0,另一个梯度就会非0,此时就可以继续走下去,而batch很大时就不会有这种纠错的”noisy“。

Momentum

将动量加上,这样就最大程度上避免了鞍点和极小值点的被卡住,当恰好在临界点时能通过自带动量(惯性)往前继续走,运动方向应是梯度与原先运动方向的矢量和方向。

learning rate adapts dynamically

这里我们可以看到当gt比较和缓(小)时,σt对应也小,(η/σt变大)那对应步伐就要迈大。

这是一个没有论文根据的神奇方法,跟上面类似。

这里的σ是统计数据,所以warm up开始时先探索一番,搜集一些情报,再往下走。

loss

x通过network->y->softmax->y`,此时与y^比较(损失)

softmax将y变成[-1,1]间的数,便于比较

*Minimizing cross-entropy is equivalent to maximizing likelihood.

cross-entropy比mean square error更好,后者容易陷入临界点走不出来。

batch Normalization

这里暂时有点懵,日后补上


Author: John Doe
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source John Doe !
  TOC