炼丹笔记(一)MNIST

一、从SGDm到Adam

MNIST是每个炼丹术士都要尝试的一颗丹药,众所周知,同一种丹药可能有着不同的数十乃至数百种丹方。在尝试了入门中的入门级丹方:三层FC夹BN并取得了98%纯度的好结果后,我开始尝试二级丹方:CNN。所用丹方为两层CNN接Pooling,后接两层FC,ReLU激活。
在料想之中,FC都已经98纯了,CNN一出,那不是手到擒来?于是我手持SGDm款炼丹铲,向Model中加入了其他所需原料。但没想到的是,甫一测试,结果却没有显著变好(十轮还是在98%左右),而且还有一个奇怪的陡坡——这个陡坡从何而来?难道这就是传说中的动量蓄力冲出LocalMinima?
奇怪的陡坡
这么不雅观的陡坡我自然是很不喜欢,我当下就想到,可能是我的铲子出了问题,是不是换一把铲子结果会好上一些?于是我换上了如今正流行的网红大铲:Adam。可是没想到,结果令我大吃一惊。
Adam
你没有看错,用上Adam之后,不仅准确率低于50%(这个图我确定不是Loss假冒的),而且训练过程还一路走低。这个谜之走势我至今也没有搞懂是为什么。

二、增加轮次对实验结果有帮助吗?

Adam我自然是吓得不敢再用了,只得回到SGDm。为了达到我给自己设定的99%纯度的目标,我试图通过增加炼丹的时间来逼近这一目标,毕竟酒越酿越香,丹越炼越纯嘛。
更改模型后用SGD训了三十轮
结果依然是不尽如人意的。不仅没能达到期望的纯度,还引出了一个新问题:为什么会从这么低的纯度开始收敛?

三、修改模型会对结果有帮助吗?

这一炉丹药无疑是走到头了,我决定微调一下丹方:增加CNN层的核数。李宏毅老师曾经曰过,如果模型本身就有Model-Bias,那结果肯定是train不上去的。既然现在纯度卡在98%上不去,会不会是我的Model本身有问题?
在这里插入图片描述
增加了卷积核后,按理来说模型的解释力应该增强了,但是没有。到这里我已经对CNN是否能使得我的模型过99不抱希望,唯一的想法就是能让我的AC曲线看起来平滑一点。面对这个需求,我就又想起中国人民的老朋友(不是),BN层。于是在FC之间、CNN之间加了两个BN。效果可谓拔群。
在这里插入图片描述
既然BN层效果如此之好,那肯定要多用一点,于是我就给CNN的第二层也加上了BN,但意料之外的是,更多的BN并没有导致更平滑的曲线,虽然最终结果倒也没有变差,但是第一轮训练的结果确实是难看了一点。
在这里插入图片描述

四、重回Adam

无论如何,BN确实是使得图像变得非常平滑。那么这种平滑是否有助于帮助Adam得到一个不那么离谱的结果呢?
在这里插入图片描述
好吧,比起之前那个离谱中的离谱,这回的adam算是不那么离谱了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值