《重生学神有系统》第267章 数据增广和集成学习

    经过仔细斟酌,江寒确定了“优胜者”模型。

    随后,他就开始考虑,如何进一步优化这个网络的性能。

    像是网络的主体结构、权重初始化方案、数据正则化的方法、激活函数的选择……

    这类关键因素,在之前的第一轮训练中,就已经确定了下来,无需再做调整。

    但除此之外,可以优化的地方依然不少。

    比如稍微改变一点学习率,少量增加或减少隐藏神经元的个数,微调一下h的大小……

    这些都有可能对网络的性能,产生微妙的影响。

    而且,每一点细微的调整,会产生什么样的效果,不实际训练、测试一番,是无法预估的。

    所以接下来,江寒将“优胜者”代码复制了100份。

    这样一来,这个“优胜者”就拥有了100多个“双胞胎兄弟”,或者说:分身。

    随后,他就采用不同的方案,对这100多份代码,逐一进行了微调。

    等到进行完第二轮训练后,从中再次选出唯一优胜者。

    有点类似“养蛊”。

    策略已经定下了,但江寒并没有马上开启第二轮训练。

    他还打算再做一个比较重要的实验,那就是增广数据。

    kaggle 官方提供了20万条训练数据,理论上说,对于绝大多数机器学习模型,这个数据量已经足够使用了。

    但谁会嫌弃数据太多呢

    能提供的数据越多,神经网络的学习效果就越好,训练得越充足,性能自然也就越强。

    反正一般来说,不会变得更糟。

    所以,何乐而不为

    所谓数据增广,就是在不改变图像类别的前提下,人为地扩充数据。

    这样做,常常可以有效地提高模型的泛化能力。

    常用的数据增广方式,包括水平翻转、旋转、缩放、平移、裁剪、颜色抖动……

    当然,也可以将多种操作组合起来,从而获得更多的数据。

    例如,同时做小角度的旋转和随机尺度变换,再微调一下像素在hsv颜色空间中的饱和度、亮度、色调……

    江寒很快用python编写了一份代码,对训练数据集进行了扩充。

    原本的18万条训练数据,经过各种运算,足足演变出了将近200万条数据。

    这样,第二轮训练终于可以开始了。

    江寒将100个“优胜者”分身依次启动。

    随后,他琢磨了一下,又将刚才排名前15的模型,全都拉了过来。

    包括上次排名第一的“书呆子”、排名第三的“黑马中等生”,以及排位在415名的“其他学生”。

    反正算力够用,索性再给这些准“优秀生”一次机会,看看它们在增广数据集上,又会有怎样的表现。

    当然,在开启第二轮训练之前,第一轮训练出来的权重数据,必须先备份一下……

    将这里的事情全部处理利索,时间已经接近中午11点。

    江寒当下锁门离开。

    先去接夏雨菲放学,再顺便做一顿丰盛的午饭。

    除了正常的两菜一汤,他还额外加了一道“红烧冰岛红极参”,以慰劳自己操劳过度的大脑。

    ……

    下午和晚上,江寒没有出门。

    主要在家看书、找资料,学习各种逆向、破解、黑客知识。

    想要继续领悟《数字混淆技术》,比较依赖数学水平和逆向技术。

    江寒的数学水平已经很不弱了,知识储备不比一般的数学系本科毕业生少,解决问题的能力犹有过之。

    但在逆向和黑客技术上,他距离真正的顶级高手,还有不小的差距。

    所以,江寒就决定抓紧时间,尽快补上这一课。

    学习之余,当然有了闲暇,就远程登录一下服务器,关注一下神经网络的训练情况。

    13日清晨,第二批114个模型,全部训练完成。

    江寒又去了一次车库,翻阅了一下训练记录,并对这114个神经网络模型,加载验证集进行测试。

    “优胜者”的那100个分身,表现都很不错,其中成绩最好的一个,在训练集和验证集上的准确率,都超过了98%。

    说实话,如果不经过特别的训练,一般的人类在这个项目上的表现,差不多也就这样了。

    毕竟kaggle提供的这些数据里,有一些笔迹实在太潦草了。

    比如,有好几个图片,江寒怎么看怎么像7,标签上却硬说是1,这怎么破

    此外,江寒还有一个令人欣喜的发现。

     
猜你喜欢
返回首页返回目录