没一轮epoch 都会分batch , 每次batch 都不一样— shuffle
batch 给training 带来了什么帮助?
如 batch = 20 和 batch_size =1
前者看完20个资料后更新参数
后者每看完一笔参数后,就更新参数。 只看一笔参数就更新参数的话,noise 更多,参数更新更加曲曲折折。
针对这个看起来:
然而,当考虑到 并行运行时, larger batch 不一定运行的时间更长.
当使用gpu 并行计算时,时间可能会变短。
但是,batch 也不能非常大, 太大的话 ,计算时间会增加很多
问题: batch_size 越大,正确率越低在这里插入图片描述
small batch 正确率更高
使用small batch 时,训练更不容易陷入局部最优。
testing 时 small_batch 的结果更好
从物理角度,有动量的话,不会停留在鞍点处
往梯度反方向前进
m 是过去所有 gradient 的加权总和
momvent 比纯粹gd 多往前走一点