Lecture 2 -- Batch & Momentum

1. Small Batch v.s. Large Batch


 

 

2. "Noisy" update is better for training!


  • 如果将所有的数据作为一个Batch丢进网络中,当梯度下降遇到critical point时,由于loss是恒定的,参数就会卡在critical point处;
  • 当把数据分为一个一个的mini-batch丢进网络中时,当其中一个mini-batch更新参数时遇到critical point,由于下一次更新参数时换了一个mini-batch的数据,loss发生了变化,可能在这个mini-batch中,loss这组参数下不是critical point,从而导致参数可以继续更新,loss可以继续下降

 

 

3. Small batch is better on testing data!


有人在不同数据集上做实验发现小的batch反而有更高的testing accuracy

存在一个假说对此做出了解释:使用小的batch会使loss陷入flat minima,而大的batch会使loss陷入sharp minima

训练和测试的loss不同,是因为数据分布不同,或者训练集和测试集是从一个分布中采样出来的,但是采样的数据不同;

假设testing loss只是在training loss的基础上向右发生了平移,那么可以看到,在flat minima处,训练和测试的损失gap很小,而在sharp minima处,训练和测试的损失gap很大!

需要注意的是,这只是其中的一个观点,也不是所有人都相信这个观点~

 

 

4.Momentum -- a method to escape local minima and saddle point


参数更新的方向不仅取决于梯度的反方向,还取决于前一步移动的方向!

从另一个角度也可以理解为:某一次参数的更新和之前所有的梯度相关! 

θnn-1-ηgn-1-ληgn-22ηgn-33ηgn-4-...-λn-1ηg0

有了Momentum,参数就可能越过local minimasaddle point,甚至会向着损失增大的方向移动,去找到下一个更好的local minima!

 

 

5. Concluding Remarks⭐


 

 


END
posted @ 2023-07-20 15:23  Peg_Wu  阅读(15)  评论(0编辑  收藏  举报