13年的夏天,燕京电力大学本学期已经将近尾声。
大部分学生的课程都已经结束,除了少数还没有考完的科目,平时基本上已经无所事事。
就在大部分学生颓废地在宿舍哀嚎为什么学校还不装空调的时候,有两个人正干劲十足,在为两个月后开始的竞赛做准备。
两人已经畅聊了不少,孟繁岐大概为其梳理清楚了基本的概念和认识。
他一直认为,新人接触AI和人工智能,切忌执着于某个局部和概念,容易得不偿失,看了半天还没看懂。
先对整体的原理用浅显的方式,结合生活中常见的场景和概念去理解为好。
随后则先接触一个可以顺利运行的代码例子,跑起一个测试版来,会大大增强自己的自信心,有很强的成就感。
有了兴趣,有了成就感,有了信心,又大概理解了整体的流程和意义。人自然会自发地去探索代码,尝试去理解每個零部件,每个参数的意义和它会产生的影响。
说不定就会有一些奇思妙想。
如此从上而下,方为正道。而不是苦苦啃了几个月的公式,结果来到电脑前一句代码都不会写,根本无从下手。
前段时间,孟繁岐已经将基于阿里克斯的cuda-convnet框架,实现了一个简易版三层神经网络做十分类任务的玩具级版本。
唐璜借此基本熟悉了本次竞赛的第一个任务内容。
孟繁岐便指使他去仔细看一看IMAGENET官方给的数据存放方式,开发工具和使用的方法。
自己则尝试将自己这段时间以来所准备的算法基于该框架实现,但是不太顺利。
其实阿里克斯自己在主页上也意识到了这个问题,他称自己主页对代码的描述是非常不充分的。
而此时非常不完善的生态也进一步地加剧了这个问题,英伟达的CUDA起步不算太久,不同版本之间的代码又需要改动。
孟繁岐更换了几个代码库的版本,结果显卡GTX-690的驱动似乎有哪里不兼容,部分代码的编译也不顺利。他相信这份代码本身是阿里克斯发布出来的比较成熟的版本,不会有什么问题。只是环境和调试上确实是一件麻烦事。
此时的AI技术不能说是小众,但也没有到这种细节问题都随处可查的地步。孟繁岐浏览了一下相关的技术网站,查看了一些相关讨论。
虽然解决了大部分问题,但终究还是剩下了一些。
“没办法了,只能写邮件给阿里克斯求助一下。”孟繁岐倒不是很担心阿里克斯愿不愿意回复的问题,只要自己表明来意,说清楚自己希望以深度神经网络参赛IMAGENET-2013,阿里克斯是一定愿意伸出自己的援手的。
众所周知,AI三巨头是辛顿,立昆(Lecun)和本吉奥(Bengio)三人。2018年的图灵奖由这三人共同获得,以表彰他们多年来的坚持和贡献。
新时代的AI起飞靠得核心技术是深度神经网络,但在60和80年代的两次热潮之余,神经网络其实并没有得到足够的重视。
阿里克斯是辛顿的学生,2012年两人和师门其他人一起以AlexNet参赛IMAGENET-2012的时候,是唯一一个使用神经网络的团队。
孟繁岐很清楚,辛顿和阿里克斯渴望神经网络被发扬光大,他们也已经在2012年以碾压的姿态击败了其他竞争者。
此时的他们还没有完全开始日后非常忙碌的事业,正处于“万国来朝”的喜悦之中。非常乐意为非盈利性质的同好提供技术上的支持。
阿里克斯主页上开源的这套cuda-convnet其实就是日后TF和Pytorch的缩影。
贾扬清博士后来开发的Caffe是许多AI开发者的初恋,很多内容也是基于cuda-convnet。贾博士本人也与阿里克斯交流甚多,从阿里克斯那里得到了很多的帮助和支持。
时隔多年,贾博士仍曾感怀阿里克斯和cuda-convnet,说明阿里克斯在AI技术方面,确实是一个热情好客的人。
虽然决定写邮件叨扰,但其中内容却不是那么容易写的。程序员是一种对提问质量有较高要求的群体,尤其是阿里克斯这样走在时代前沿的顶级大脑,这样的人对愚蠢和傲慢的容忍程度是很低的。
因为开源(Open-Source)是这个世界的一大特色,AI的飞速崛起很大程度上依赖这种无私分享的氛围。去年夺冠击败一众一流大学和科技公司的AlexNet,其所有代码很快就已经可以被随便一个人直接下载到自己的电脑上。
没有任何的壁垒和门槛,最核心的内容就这么免费摆放在你的面前。在这样的情况下,如果再问出愚蠢的问题,是显得有些侮辱人的。
那些不愿思考、或者在发问前不做他们该做的事的人。那些人是时间杀手——他们只想索取,从不付出,消耗我们可用在更有趣的问题,或更值得回答的人身上的时间。
“拿来。”“给我。”他们的问题听起来就是这个意思。
阿里克斯为许多人提供帮助使用的是自己私人的时间,第一次直接接触业界的风云人物,孟繁岐可不想显得很不礼貌,像个傻子。况且,草率的问题其实也只能得到草率的答案。
如果一个人不能详尽,清晰而有逻辑地把自己的问题描述清楚,想必他也是没有什么可能得到自己想要的回答的。大多数人在求助的时候总是专注于描述自己的感受,但实际上并没有人在乎。
以求图求出处举例。“啊啊啊啊!!!急急急!!我要爆了!!”和“日漫,有彩页,是个短篇,一共三个角色,画风有点像XX和XX。”
这两种描述哪个更有可能得到可靠的回答,想必不需要过多的解释。
还有一个很经典的起手式,是“在吗?”。如果看到这样的问题,快跑,头也不要回,后面准没好事。
打开邮箱,孟繁岐详尽地描述了自己的相关硬件型号,驱动版本,环境和库的版本,具体出错位置,报错的日志,自己已经做过的搜索和尝试过的办法以及它们的结果。
点击发送。
“现在加州时间应该是凌晨吧,天还没亮。”孟繁岐算了算时差,自己得到回复最早也是明天了。
此时最要紧的事情是先基于阿里克斯的框架做修改把15年的名震天下的ResNet实现出来,等问题解决后进行调试。
不仅是代码和实验结果,他还需要尽早基于新的深度神经网络把对抗生成算法的实验完成。
孟繁岐很清楚,几个月后赛事结果公布的时候,自己基于后世kaiming残差思想的DreamNet一定会引起很大的轰动,得到相当大的关注度。
而到那时,孟繁岐则要借助这个难得的机会,将对抗生成算法一举推出。
先用基于残差的DreamNet吊足所有人的胃口,在所有人都渴望知道DreamNet技术细节的时候,公布基于DreamNet的对抗生成网络的具体技术细节和实验结果。
得不到的才更想要,不是吗?