第15章 一点“微小”的改动(求追读)
“自适应矩估计优化?”,江铭心中念着这个陌生的算法名称,总觉得隐隐有一丝熟悉之感。
既然如此,兑换出来看看吧!
“接受。”
伴随着江铭的低语,系统面板上的积分从105掉到了50。
随之而来的是一种顿悟之感从江铭心底油然而生,整个自适应矩估计优化法,如同烙印一般刻在了他的头脑里。
他抬手便飞速地在编程软件里敲下一行公式。
θk=θk−1−η/((v^1/2)+ϵ)*mk
然后...就没有然后了。
“等等,55积分,就只有一行公式,系统,你是认真的吗?!”
【系统出品,必属精品,一经购买,概不退换。】
好吧,江铭无奈了,点击运行按钮。
师姐的程序重新运行起来。
...
“哈~”,林欣然打了个哈欠,伸了一下懒腰,终于看完一集综艺,午休摸鱼实在太舒服了点。
欢乐的时光就是这么短暂,算算时间,自己历时两天半的神经网络训练应该快跑完了。
神经网络模型的训练时间几乎都是以天为单位计的,林欣然的这个任务还属于较小规模的。
大型任务的训练时间甚至要进行数月之久。
林欣然登上服务器,准备看一下训练结果。
此时她的屏幕上应当出现一条震荡下降的损失曲线。
“啊啊啊啊啊!”,就在她点开损失记录图的时候,立刻发出了尖锐的尖叫。
“为什么,为什么我的程序重新开始了啊!”
显示在屏幕上的,是一个只画了一点点开头的图像。
林欣然如临大敌,她从怀中拿出一副犀牛角的项链,默默戴在了脖子上...
整整五分钟,林欣然才渐渐冷静下来,接受了自己实验被重启了的结局。
她猜测大概率是因为自己实验代码又挂了,被刚好登上实验平台的小师弟好心地重启了。
不过...自己实验都挂了这么多回了,怎么可能不长一点教训呢?
“哼哼,我现在可是每训练一个循环都会把神经网络参数保存一遍,区区BUG伤害不到我!”
林欣然正准备手动停掉实验,载入最后一次保存的参数继续训练,手却停在了原地。
这损失曲线的图像不太对劲!
“为什么损失下降的这么平稳啊?”,林欣然默默念叨。
这个实验她半个月里做了不下十次了,无论是怎么调整超参数还是微调神经网络结构,能尝试的都尝试了,训练的收敛性一直不好。
画出的损失曲线她也再熟悉不过了,虽然不同的超参数或者网络结构画出的结果不同,但是都大同小异。
大都是训练100个循环后,损失值在0.3附近震荡。
然而这一次,仅仅跑了20个循环,损失值已经到0.25了,而且仍然在平稳下降中...
林欣然面露疑惑,自己也没做什么大改动啊,怎么会结果如此不同?
她不信邪地查看源代码,看到的结果却令她倒吸一口凉气!
自己的代码怎么一转眼变成这样了?
放眼望去,她的代码结构严密,逻辑清晰,浑然一体如同一台精密的机器。
“难道这个代码...是师弟改写的?”,林欣然抬头看向江铭工位的方向。
毕竟,就算是闹鬼也不可能有这么高文化水平的鬼吧!
师弟太厉害了,刚来实验室一个小时,江铭已经被她视作救星。
江铭则完全沉浸在自己的世界中,全然没有注意到林欣然崇拜的目光。
林欣然一点点翻看师弟写的代码,虽然写代码不行,但是阅读代码逻辑她还是没问题的。
这些代码虽然写得更加严密,但的确可以看出是出自她的程序,逻辑和功能是相同的。
林欣然感叹,幸好江铭只是帮她把代码改写了一下,不是从头推倒重写。
不然她这个师姐的脸面该往哪里放呀!
但是...为什么相同的逻辑,师弟的改写的代码会跑的这么好,损失下降的这么平稳啊!
“不对,一定有逻辑有区别的地方。”,林欣然俯身在电脑前面,眼睛一行行地扫过江铭改过的代码,几乎要钻到电脑里了。
还好江铭的代码足够清晰,每一个功能都单独写成了小的模块单元,不然一般人还真难以在短时间内看完。
林欣然一边阅读,一边和自己印象中的代码逻辑对照,还真找出不少区别。
江铭好心地为她的代码加了很多边界条件和异常处理,至少这个代码应该不会总挂了。
但是这些区别...
她知道代码稳定性的增加远远不至于让训练结果出现损失曲线图像所显示出的那样天翻地覆的变化。
林欣然把江铭的代码前前后后盘了四遍,才终于确认师弟代码与自己所写的最大区别就在参数优化的一行公式上!
问题是这公式是哪里来的?
林欣然立刻打开学术网站,检索近期有关参数优化的论文,却一无所获。
总不能,是师弟自己发明的吧...
....
“参数优化就像在一片高维世界的山脉中寻找最深的山谷,随机梯度下降就是跟随山的走势一步一步向下探索。”
徐建华正在金陵大学研讨会上做信息学的成果综述汇报。
往年这种活一般轮不上他,望着台下数十位其他学院的高级教授,徐建华只觉得自己有些格格不入。
也不知道是因为郑宁和自己不对付的事情人尽皆知,还是因为自己收下江铭做学生拉了太多仇恨,徐建华总觉得这次研讨会台下的气氛不太对。
“呵...徐教授,你说的这个随机梯度下降法我明白了,但这明显只对凸的问题有效啊,你怎么证明在机器学习领域里你的问题都是凸优化呢?”,一位数学系的老教师站起质疑道。
“就好比说这个山如果有很多深浅不一的小山谷,你这个算法进到第一个山谷就出不来了,我说的对吧,徐教授。”
这位教授的问题的确一针见血,他最后的徐教授三个字念的很重,充满了不屑和轻蔑。
徐建华沉吟了一会儿,微笑着解释道:“感谢张教授的提问,的确在三维的世界中会出现这种情况,但在更高维的空间中往往不会出现这种问题。”
“还是用山脉的例子,如果加上时间作为第四个纬度,那么这个山在几亿年前可能是一片平地,不断被河流和风化的侵蚀,逐渐出现一个个山谷。”
“那么最深的那个山谷一定是侵蚀速度最快的,其他山谷的速度没它快,因此三维的小山谷仍然可以顺着第四个纬度滑向最深的那个山谷去。”
“更何况,参数优化所面临的问题是几百维的参数空间,几乎是不可能遇到一个在几百维都刚好处于山谷的情况。”
徐建华的解答赢得了台下的掌声,他微笑着缓步走下讲台,脸色却逐渐阴沉。
这些教授真是越来越不好对付了,故意提问题刁难他。
谁都知道,信息学所处的数学基础并不足够扎实,但是这是工科!
工科所处的现实世界里,只要解决99%的问题就行,哪有数学所研究的问题那样完美的证明?
难道现实世界里会存在数学所研究的完美的球体吗?
轻叹了一口气,徐建华拿出手机,却看到数十个未接来电。
短信也有好几个,都是自己的学生林欣然发来的。
林欣然就是如此,一点点事都要大呼小叫和他汇报,之前甚至还说实验室闹鬼要他处理呢。
他无奈点开短信,一条条翻看,脸上忽然露出惊讶的神色。
“啊啊啊啊啊!我的亲亲导师,江铭改我实验代码!”
“哈哈哈哈哈哈,天呐老师,学霸师弟的代码写得太好了!”
“卧槽,我的江救星好像在参数优化那里做出了了不得的创新,小徐你快来看看吧。”
才过了半小时,自己就从亲亲导师变成小徐了,徐建华满脸黑线的起身。
这破研讨会不参加也罢,自己回实验室看看江铭又给他搞了什么大新闻去。