论文:Visualizing the Loss Landscape of Neural Nets
论文: https://arxiv.org/abs/1712.09913
代码:https://github.com/tomgoldstein/loss-landscape
Trick:
马里兰大学出品,神经网络可视化研究,干货颇多
要点记录:
1:高能预警:ResNet-56有无skip connnections的loss surfaces。可以看出右侧有skip连接的resnet网络,loss surface更加的平滑,更容易训练。
2:skip connection 更倾向于 flag minimizers。这也能解释,为啥深层网络都需要skip connections 。
注:flag minimizers 具体解释可参考:ICLR-2017投稿的一篇文章
ON LARGE-BATCH TRAINING FOR DEEP LEARNING: GENERALIZATION GAP AND SHARP MINIMA
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:
图a中0点处是small_batchsize的loss, 1点处是large_batchsize的loss,此时是weight_decay=0
图d中0点处是small_batchsize的loss, 1点处是large_batchsize的loss,此时是weight_decay不为0。
flat minima是和weight_decay有关的,打脸了ICLR2017那篇文章
2:
图c中:weight_dacay=0时,small_batchsize的weight数值相对偏大
图f中:weight_dacay不为0时,large_batchsize的weight数值相对偏大
c中small_batch的权重数值在-0.2-0.2之间,分布分散
c中large_batch的权重数值在-0.1-0.1之间,分布集中在0附近
f中small_batch的权重数值在-0.01-0.01之间,分布分散
f中large_batch的权重数值在-0.01-0.01之间,分布分散
f中small_batch和large_batch的权重数值差异没那么大
<1>small_batch的权重数值分布分散
<2>WD=0时的权重数值相对较大
所以,你get到这个地方的技巧了吗?
如果端侧部署:记得减少、甚至关掉wd,然后减小batch_size。这样模型权重数值相对会大很多,不太会产生精度溢出现象,量化的时候,精度会保持的很好。
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:通常small_batchsize效果更好
2:wd开启时,small_batchsize同样epoch会迭代更多步数,所以权重衰减的更猛,数值更小
3:权重数值越小,对于扰动越敏感
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:small_batchsize的test_error 和 test_acc 要好于 large_batchsize
2:small_batchsize具有更宽的等高线:众所周知 large_batch的loss下降快
3:开启weight_decay以后,test_error 和 test_acc 要好于 关闭weight_decay
-----------------------------------------------------------------------------------------------------------------
要点记录:
1:再次可视化强调skip操作的好处
-----------------------------------------------------------------------------------------------------------------
Figure5:第一行有shortcut,第二行没有shortcut,强调的是网络的深度
Figure6: 第一行有shortcut,第二行没有shortcut,强调的是网络的宽度
要点记录:
1:无论是figure5,还是6,第二行都要好于第一行,即 skip的有效性
2:figure5中:加深网络,loss明显下降,说明网络加深的有效性
3:figure6中:加宽网络,loss明显下降,说明网络加宽的有效性
4:加宽网络的提升要优于加深网络:先考虑加宽2-4倍,效果不行,再考虑加深网络