重生学神有系统
时间:2023-05-21 来源: 作者:一碗酸梅汤
不多时,到了绿树家园。
江寒踌躇了一下,没有立即下车,而是装作不在意地问:“小姨,你是在为工作上的事情发愁吗”
自打今天看到夏如冰,就感觉她似乎有心事。
如果不是特别麻烦的事情,自己又能伸得上手的话……
然而,夏如冰听了江寒的问话,蹙着眉头,似乎很烦恼,却始终一言不发。
江寒等了一会儿,见她并不打算倾诉,只好耸了耸肩,打开车门下车。
毕竟是别人的私事,人家想说就说,不想说,他也不会勉强。
目送夏如冰车子开远,江寒转身走下台阶,用钥匙打开卷帘门,进入车库。
里面的一切,和上次离开的时候,毫无二致。
今天温度有点低,江寒进屋后,立即打开了两台大功率的电暖气。
足足过了半个小时,屋子里才暖和了一点。
他先查看了一下神经网络的训练情况。
前后一共上传了160多套训练方案,到现在已经全部训练完成。
服务器和五台工作站目前全都处于空闲状态。
江寒先逐一检查了一遍训练结果。
首先要看的,是在训练过程中,模型是否收敛。
如果无法收敛,就意味着神经网络构筑失败,无法通过训练进行学习。
其次要看收敛速度,这个指标影响网络的训练效率。
这次kaggle举办的机器学习比赛,时间上并不是十分紧张,哪怕神经网络的收敛速度稍微慢一点,也是可以接受的。
但也不能太慢了,必须在截止日期之前完成最终的训练,否则就派不上用场了。
江寒上传的代码中,包括了各种日志记录和状态监督的函数。
模型训练过程中,每进行到一个节点,都会在输出的日志中,
第267章 数据增广和集成学习
经过仔细斟酌,江寒确定了“优胜者”模型。
随后,他就开始考虑,如何进一步优化这个网络的性能。
像是网络的主体结构、权重初始化方案、数据正则化的方法、激活函数的选择……
这类关键因素,在之前的第一轮训练中,就已经确定了下来,无需再做调整。
但除此之外,可以优化的地方依然不少。
比如稍微改变一点学习率,少量增加或减少隐藏神经元的个数,微调一下h的大小……
这些都有可能对网络的性能,产生微妙的影响。
而且,每一点细微的调整,会产生什么样的效果,不实际训练、测试一番,是无法预估的。
所以接下来,江寒将“优胜者”代码复制了100份。
这样一来,这个“优胜者”就拥有了100多个“双胞胎兄弟”,或者说:分身。
随后,他就采用不同的方案,对这100多份代码,逐一进行了微调。
等到进行完第二轮训练后,从中再次选出唯一优胜者。
有点类似“养蛊”。
策略已经定下了,但江寒并没有马上开启第二轮训练。
他还打算再做一个比较重要的实验,那就是增广数据。
kaggle 官方提供了20万条训练数据,理论上说,对于绝大多数机器学习模型,这个数据量已经足够使用了。
但谁会嫌弃数据太多呢
能提供的数据越多,神经网络的学习效果就越好,训练得越充足,性能自然也就越强。
反正一般来说,不会变得更糟。
所以,何乐而不为
所谓数据增广,就是在不改变图像类别的前提下,人为地扩充数据。
这样做,常常可以有效地提高模型的泛化能力。
常用的数据增广方式,包括水平翻转、旋转、缩放、平移、裁剪、颜色抖动……
当然,也可以将多种操作组合起来,从而获得更多的数据。
例如,同时做小角度的旋转和随机尺度变换,再微调一下像素在hsv颜色空间中的饱和度、亮度、色调……
江寒很快用python编写了一份代码,对训练数据集进行了扩充。
原本的18万条训练数据,经过各种运算,足足演变出了将近200万条数据。
这样,第二轮训练终于可以开始了。
江寒将100个“优胜者”分身依次启动。
随后,他琢磨了一下,又将刚才排名前15的模型,全都拉了过来。
包括上次排名第一的“书呆子”、排名第三的“黑马中等生”,以及排位在415名的“其他学生”。
反正算力够用,索性再给这些准“优秀生”一次机会,看看它们在增广数据集上,又会有怎样的表现。
当然,在开启第二轮训练之前,第一轮训练出来的权重数据,必须先备份一下……
将这里的事情全部处理利索,时间已经接近中午11点。
江寒当下锁门离开。
先去接夏雨菲放学,再顺便做一顿丰盛的午饭。
除了正常的两菜一汤,他还额外加了一道“红烧冰岛红极参”,以慰劳自己操劳过度的大脑。
……
下午和晚上,江寒没有出门。
主要在家看书、找资料,学习各种逆向、破解、黑客知识。
想要继续领悟《数字混淆技术》,比较依赖数学水平和逆向技术。
江寒的数学水平已经很不弱了,知识储备不比一般的数学系本科毕业生少,解决问题的能力犹有过之。
但在逆向和黑客技术上,他距离真正的顶级高手,还有不小的差距。
所以,江寒就决定抓紧时间,尽快补上这一课。
学习之余,当然有了闲暇,就远程登录一下服务器,关注一下神经网络的训练情况。
13日清晨,第二批114个模型,全部训练完成。
江寒又去了一次车库,翻阅了一下训练记录,并对这114个神经网络模型,加载验证集进行测试。
“优胜者”的那100个分身,表现都很不错,其中成绩最好的一个,在训练集和验证集上的准确率,都超过了98%。
说实话,如果不经过特别的训练,一般的人类在这个项目上的表现,差不多也就这样了。
毕竟kaggle提供的这些数据里,有一些笔迹实在太潦草了。
比如,有好几个图片,江寒怎么看怎么像7,标签上却硬说是1,这怎么破
此外,江寒还有一个令人欣喜的发现。
 
第268章 最终版本
所谓集成学习,就是训练多个机器学习模型,然后组合在一起,让它们协调工作。
俗话,人多力量大,机器学习算法也是一样。
江寒经过一番认真的设计,确定了一个新的网络拓扑结构。
他从排名415的模型里,精心选择了7种,再加上“唯一优胜者”、“黑马中等生”、“书呆子”,一共10个神经网络。
将它们放在一起,简单地并联起来,组成了一个整体,然后设计了一个投票程序。
一张手写数字的图片输入网络后,会同时传递给10个神经网络模型,让它们各自进行计算,输出自己的预测结果。
如果大家的判断完全一致,那自然没什么问题。
但如果大家意见相左,就会启动投票程序,根据票数来决定最终的输出。
票数并不是平均分配的,在验证集上表现更好的模型,手里的选票也应该更多。
所以,理所当然的,“唯一优胜者”拥有最多的票数。
如果他全票投给自己,那么一般来,他的意见就基本上接近正解,理应得到采纳。
这种情况下,其他模型就算有不同意见,而且全都统一口径,也不应该推翻优胜者的判断。
这就好比领导班子开会,不能光讲民主,还得适当集汁…
但很多时候,优胜者对自己的判断,也并不是十分有把握,这个时候,其他“学生”给出的答案,就很有参考意义了。
如果其他人中,有人认为答案是另一个,并得到了多数饶支持,那么就会对优胜者的答案进邪弹劾”。
如果优胜者投给自己的票数,并不足以驳回大家的“弹劾”,那么就会少数服从多数,将最后输出修改为受到更多人认同的。
举例来,刚才的那个数字5。
优胜者判断有60%的概率是6,37%的概率是5,2%的可能性是其他数字,这个时候,它就会输出错误的答案:6。
但如果在其他“学生”中,有人经过计算,认为答案应该是5,与优胜者判断不一致,就会启动投票程序。
由于优胜者判断只有60%的概率是数字6,折算后,等于它只肯为自己的答案投6票。
这个时候,只要其他9个模型的票数,加一起超过6票,即可弹劾成功。
如果优胜者对自己的判断,有90%以上的把握,那么其他9个人加起来,也不足以推翻他的结论。
意思就是这么个意思,具体的折算比例,当然不会这么简单。
还需要十分细致、耐心地进行调整,以使整个模型的输出,更加接近最优解。
当然,这种投票式的做法,无疑也有极极的可能性,产生不那么美好的结果。
比如,优胜者本来的判断明明是正确的,只是对自己信心不够充足,就有可能被其他模型给“纠正”成错误的。
但这种情况发生的几率,远远于优胜者误判的几率。
所以,集成学习的总体性能,仍然领先于每一个单独的神经网络。
这种集成学习的思想,无疑是比较先进的,但实现起来难度也相当大。
尤其是那个投票程序,相当耗费脑细胞。
江寒全力开动脑力,也足足用了四个多时,才将集成学习网络打造成功。
时间主要浪费在编写投票程序,以及调整折算比例上了。
至于10个子模块,已经全部训练完毕,得到了权重数据,就无需再耗费时间,重新进行训练了。
也幸亏如此,否则就没办法及时把最终程序,提交到kaggle官网上去了。
随后,江寒在最终版本的集成网络上,重新跑了一遍验证集。
结果十分喜人,识别准确率达到了惊饶%。
这个成绩已经十分令人满意。
接下来,江寒就按照官网发布的明,对自己的代码进行了一点处理。
主要是去掉一些调试语句,再将数据文件的接口,改成主办方要求的方式。
这样,官方在测试时,只需将测试用的数据文件,放入指定的文件夹里,而无需修改任何代码。
也许是对业余爱好者们的表现,并没有特别大的期待
反正在这次比赛中,官方并没有要求公开源代码。
所以江寒也就没准备提供源代码。
他将自己的程序,用pyinstall编译成了可执行文件。
并使用了一点技巧,将训练好的10个子网络的权重数据,也一起打包进了exe文件里。
最后,再用“初级数字混淆技术”加一道坚固的锁,这样就不怕被人逆向拆解了。
当然,江寒的这个集成学习方案,如果在比赛中一鸣惊人,等到比赛结束之后,不定就会有大佬来联系他,询问设计思路之类的。
到时候,是否公开代码,用什么方式公开,公开到什么程度,江寒完全可以看情况决定。
也就是,主动权完全掌握在自己手里。
晚上10多钟,抢在时间截止之前,江寒将加密后的exe文件,连同相关的明文档,一起上传到了kaggle官方的比赛服务器上。
 
第269章 易中海的困境
“易老师这么久没上班,是不是家里有事儿”江寒随口问了一句。想-免-费-看-完-整-版请百度搜-
李东沉默了一会儿,慢慢摇了摇头,说:“不清楚。”
江寒眯了下眼睛,看着李东,再次追问:“真的一点消息都没有”
李东眼观鼻、鼻观心,紧闭着嘴巴,微嫌用力地再次摇头。
江寒叹了口气。
看来这小子的确知道点什么,只是不太想说。
猜你喜欢