里面的一切,和上次离开的时候,毫无二致。
今天温度有点低,江寒进屋后,立即打开了两台大功率的电暖气。
足足过了半个小时,屋子里才暖和了一点。
他先查看了一下神经网络的训练情况。
前后一共上传了160多套训练方案,到现在已经全部训练完成。
服务器和五台工作站目前全都处于空闲状态。
江寒先逐一检查了一遍训练结果。
首先要看的,是在训练过程中,模型是否收敛。
如果无法收敛,就意味着神经网络构筑失败,无法通过训练进行学习。
其次要看收敛速度,这个指标影响网络的训练效率。
这次KAGGLE举办的机器学习比赛,时间上并不是十分紧张,哪怕神经网络的收敛速度稍微慢一点,也是可以接受的。
但也不能太慢了,必须在截止日期之前完成最终的训练,否则就派不上用场了。
江寒上传的代码中,包括了各种日志记录和状态监督的函数。
模型训练过程中,每进行到一个节点,都会在输出的日志中,打上相应的标记。
所以一看日志就能知道,模型是否收敛以及收敛速度如何。
检查十分迅速,江寒只用了10分钟,就淘汰掉了20多种无法收敛的,和50多种收敛过于缓慢的网络设计方案。
其实,这些方案改进一下,还有机会变成可用的,但江寒并没有急着这么做。
可选的方案太多了,这些完全可以先放在一边,等后面实在选不出来合用的,再考虑如何改造一下,“废物利用”。
现在还剩下75种方案。
这些方案都能收敛,且收敛速度基本满足需求。
所以,接下来要比较的,是模型的精准度,也就是对手写数字的识别正确率。
通过观察训练日志,江寒发现,其中大约50种方案,在训练集上表现就很普通,识别正确率不足90%。
这意味着,它们先天禀赋不足,对数据的拟合能力不强,再怎么训练,成就也有限。
第一批一共160种方案,如果比喻成160名学生的话,这50多名学生,就相当于这一届的“学困生”。
将这些方案也排除在考察范围之外,先放在一边。
还剩下22种方案,在训练集上表现较为良好,这至少说明,它们的学习能力没问题。
随后,江寒将验证集加载到这22份代码中,逐一进行测试。
这样就能通过比较,挑选出泛化能力相对较强,对陌生数据适应能力较好的方案。
神经网络训练起来很慢,但用训练好的模型对数据进行分类,是相当快速的。
所以,江寒只用了一个多小时,就将22种方案都测试了一遍,然后按照综合得分排了一下序。
排名前三的方案,在训练集上的识别正确率都不低,都超过了94%的及格线。
而在测试集上的表现,则参差不齐。
江寒仔细思考了一会儿后,先淘汰掉了得分最高的方案。
因为这个方案在训练集上,虽然识别正确率超高,接近了99%,但在测试集上表现最差,只有93%不到的准确率。
这说明模型泛化能力有所不足,产生了非常严重的过拟合。
用比较通俗的话说,这就是一个“书呆子”,只会死读书,不会活学活用。
所以只能先Pass掉。
第三名的模型,在训练集和测试集上表现差不多,都超过了95%,但相对来说,还是不够突出。
而且,泛化能力虽然没问题,可是,学习能力和其他模型相比,似乎稍微差了些。
如果有更多数据支撑,或者更多的训练时间,也许能得到一点改善,但也不十分乐观。
这就好比某些中等生,头脑其实不笨,但学习习惯和方法不够好,也不够努力。
然后在一次测试中,虽然凭借良好的发挥,暂时领先了其他中等生,但毕竟还是比不上那些真正的优秀生。
所以,江寒权衡再三,最后选择了第二个模型。
这个模型在训练集和验证集上,表现都可圈可点,双双达到了97%的理想线。
而且,江寒分析完一些数据后,感觉只要进一步提高训练强度,这个模型应该还有很大的进步空间。
这是一个天赋不错的学生,文理双修,没有短板,但并没怎么用力去学,这才输给了书呆子一筹。
这种学生只要加强训练,成为高材生指日可待,日后的发展不是书呆子可比的。
这是江寒从160套方案中,优中选优,留下来的最后优胜者。
接下来,就该对其进行地狱特训了……