但在开始训练之前,还有一点工作要做。
这个深度,所拥有的参数实在太多了,哪怕原始数据有足足12万多条,也很很容易发生过拟合。
所以,为了提升泛化能力,有必要做一下数据增广。
数据增广的方案有许多。
江寒思考了一下,选择了一种新方案。
原始图像是256×256的分辨率。
江寒设计了一个程序,从中随机扣出来224×224大小的区域。
每张原始图像,都有(256-224)^2=1024种不同的扣法,这样一来,就相当于将原始数据增广了1024倍!
接下来,他又将得到的图像,全都水平镜像一次,就得到了等于原始数据2048倍的超大数据集合。
增广完数据,江寒还觉得不够保险,为了进一步提高算法的效能,他决定对网络中用到的超参数,进行一些优化。
以前他也做过人工神经网络超参数的优化,但那时采用的手段,主要是手动修改超参数,然后人工分析、比对。
看修改了某个超参数后,网络的表现是上升了还是下降了,从而找出较为优秀的模型。
不用说,这种做法最大的缺陷,就是效率实在太低。
江寒在这次的比赛中,决定使用一种新技术。
这是他前一阵子,煞费苦心设计出来的方案,代码复杂度令人发指。
好在他的脑子够好用,在消耗了大量心血,吃掉了无数冰岛红极参之后,终于是开发成功了。
功能很简单,就是自动对超参数进行搜索、优化,以找到结构更合理、性能更好的人工神经网络。
江寒为这门技术取名ASSP(Autosearchforsuperparameters)。
当然,其实就是“搜索超参数”的英文直译……
ASSP的原理很简单,就是包装在人工神经网络模板外层的一个“壳”。
通过一个调度函数,在训练神经网络之前,先按照事先确定的规则,微调某些超参数。
每当完成一轮训练,还会按照既定的规则,从各个方面进行评分。
比如,在梯度下降的过程中,模型是否收敛、收敛速度如何?
不能收敛的网络,根本无法训练,也就毫无价值,如果收敛速度过慢,训练起来也会缺少效率。
此外,网络模型在验证集中的表现,泛化能力、识别准确度、网络的稳健性……
最后,将每次训练完成后,人工神经网络的综合得分,从高到低排一下序。
江寒通过最后生成的表格,就可以选取合适的超参数组合了。
为了让这个超参数搜索程序,获得更高的工作效率,需要先指定超参数的搜索范围。
范围太大的话,会导致搜索时间过长,可能会等不及出结果;如果范围太小,又很可能找不到合格的超参数取值。
这个搜索范围,可以看做SFSP的超参数,只能凭经验设定。
好在江寒已经训练过许多次人工神经网络,有着十分充足的经验。
他将ASSP和深度的代码融合之后,连同训练数据、验证数据,全都上传到了地下数据处理中心的服务器里。
差不多两天之后,ASSP就能得到初步的成果。
至于整个网络的训练,那可就有得等了。
原始数据是12万多条,增广到2048倍之后,就是2亿4千5百万余条数据!
数据量实在太庞大了,即使使用了GPU来提速,至少也需要5~7天,才能完成初步的训练。
江寒让程序跑起来之后,就走出了实验室。
打算回到游戏工作室里,休息一下,然后去主持面试。
刚喝了两口水,手机忽然响了起来。
来电是夏如虹的,江寒连忙接了起来,叫了声:“阿姨。”
“你在哪了?”夏如虹声音温婉。
“17楼办公室。”江寒回答。
夏如虹打这个电话,主要是讨论写字机器人的销量和分成。
写字机器人上市的时候,已经接近年底,所以截止2012年12月31日,只卖出了30多万台。
按照当初的约定,江寒将获得3.5%销售额的分成。
机器人的出厂价是每台558元,3.5%就是每台19.53元,30万台……
江寒随便心算了一下,就得出了答案:580多万。
这就比较让人愉快了。
有了这笔钱,星空那边的钱,暂时就不急着动用了。
这样也能避免不少汇兑、税费之类的损失……