返回第267章 数据增广和集成学习(第1/3页)  重生学神有系统首页

关灯 护眼     字体:

上一章 目录 下一页

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

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

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

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

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

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

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

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

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

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

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

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

    有点类似“养蛊”。

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

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

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

    但谁会嫌弃数据太多呢?

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

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

    所以,何乐而不为?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    江寒当下锁门离开。

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

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

    ……

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

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

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

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


『加入书签,方便阅读』

上一章 目录 下一页