面经 | 知乎大 V 和你分享 3 点经验:机器学习除了多刷题,还能做什么?

  • 2020 年 7 月 30 日
  • AI
记得点击蓝字,关注我们呀~

作者:兔子老大,关注机器学习和人工智能。


作者回顾了自己在机器学习和人工智能方面的经历,表述了自己对于行业的认知和理解,并且很贴心地为在校生提出了很棒的建议,分享给大家~

注:本文为作者为AI职通车撰写的独家稿件,未经许可禁止转载。


  写在前面

受AI研习社邀请,有幸通过文字的方式和大家分享一下这些年的一些在机器学习和人工智能方面的学习心得,顺便也是我个人2019的年度总结,希望能帮助到一些同学。一家之言,有其他意见欢迎探讨。


  个人介绍

我本科专业是物联网工程,在大三期间通过和朋友比赛,算是正式加入机器学习这个圈子。接触机器学习后,先后和朋友参加过kaggle,天池和其他平台的比赛,也取得一些成绩。后续参与过数据挖掘,图像生成,对抗样本等研究或项目。当然我个人兴趣的不止这两个领域,对其他领域也要保持有好奇心和了解对应的基础概念。往后的课题会更加与强化学习相关一些。

对于未来的职业计划,依旧和我大学本科时的规划一样,仍然希望是留在算法领域,但会更偏向于工程而不是研究一点。这一年对于自己智力有了一个更准确的评估,再加上很多现实问题,对于读博继续深造并没有太多的打算。当然也可能会出来工作一段时间后再深造,这些并没有一个固定的规划。

关于我对深度学习的理解,我的态度其实很简单,一方面我看好深度学习作为通往人工智能的一项关键技术,这一点看到过往纪念深度学习在多方面取得突破就可以看出深度学习的潜力,但另一方面,深度学习不会成为通往人工智能道路上的银弹。

深度神经网络作为“连接主义”的产物,也应该继续发挥他“连接”的作用。

举个例子,许多时候我们更看重深度神经网络的表示能力而不关心它最后输出的结果。比如word2vec,图像搜索中图像的语义向量,随着对于中间层语义向量的控制更加精确,利用深度学习抽取某一输入的语义向量再交给下游任务使用的应用会越来越多。

而有些时候它又能把其他异构的部件通过编码成向量的方法,让他们在同一空间上进行计算。比如在最近对话系统,问答系统上,开始融入知识图谱,非结构化文档等来让对话的产生有更大的信息量,问答覆盖面更全等。各种text2image或image2text等就是结合了文本和图像,多模态多任务的BERT模型则融入更多的信息进行预训练。而加入强化学习,跳出了连接的部件必须可微分的限制,深度学习可以连接的部件会更多。

可见它虽然不会是一颗银弹,但会是一瓶很好的胶水。


  成长经历和项目经验

让我自己总结我的成长经历的话,那就是“多试”。

大一时其实就已经决定走技术路线了,就是单纯的喜欢,那时并没有想太多什么热点不热点的。人工智能什么的还没有现在火,AlphaGo(吃瓜群众的深度学习爆发点)还没有出生,AlexNet(学术界的深度学习爆发点)发表不久,那一个时段最火热的是web开发和由O2O业务支撑起来的移动开发,我对这两方面并没有说足够大的热情驱使我说一定要什么什么方向。所以那时什么都在试,和同学一起参加过网页比赛,也和同学参加过算法比赛。因为学校的课程的开设也知道移动开发的方式和小部分嵌入式的开发方式。

这里有个插曲,因为早在大一就接触过网页开发了,所以什么界面布局和事件绑定一类的早就清楚是什么回事了,导致移动开发这门课没费什么间就过了(现在的web开发和移动开发都已经不可同日而语了,比如flutter等一系列跨平台技术),多余的时间自然就想折腾一些更有趣的东西,所以后来又一个人折腾过爬虫,分布式,比如Hadoop这些东西 (现在已经主流已经是Spark和Flink这一类的了,没它什么什么事了)。

在学习爬虫的时候,我也像网上写的很多教程一样,尝试去动手爬取妹子图://www.meizitu.com因为有基础,学起来并不难。很快就写出可以后台运行的爬虫的代码,但取而代之的是一个新需求:爬取下来的妹子大部分都不是我喜欢的类型,所以我开始思考可不可以建立某一个图片库,以此为参照然后爬虫就去抓取上面这类型的妹子。在这种需求下,很快搜索引擎就指导我找到机器学习和计算机视觉相关的资料了。

然后就有了后面的故事了。学习机器学习,并被这些算法的神奇之处吸引,决定深入发展。然后和网友打比赛,AlphaGo出生,深度学习正式走进大众视野,各资料开始在网上暴增,因此了解到GAN,学习GAN,开始在网上分享经验,认识更多相关的人和机构,在领域内开始横向发展,了解其他方向,慢慢走上了发论文,做研究,掉头发的不归路。

这个过程遇到的困难有两种,一种是硬件上的困难。比如深度学习都要很大的数据和计算资源,自己没有怎么办?而且那时我的电脑的内存只有4G,很多时候连数据的都读不进来。虽然那时已经有一些云服务器,但没有现在多福利,对于学生党来说都算得上是价格不菲。最后没有办法了,只能两条路,一是在自己的电脑上完成小规模的实验,确定整体逻辑可以跑通,确定万无一失后再迁移到服务器上跑大数据,以节省租用的费用。

看起来只是把代码复制粘贴过去就可以了,实际上没有这么简单。一个是CPU和GPU环境上的差异,一个是window和linux上平台的差异,比如路径分隔符的问题。当然技术上这些也不是什么大问题,但早些年不清楚这些事情的时候也吃过一些亏。后来慢慢的就学会着怎么设计一个脚本能在不同的配置下,只需修改小部分值就能运行,对于软件设计宏观上的一些意识,也是这个时候慢慢的开始建立起来。第二个解决硬件资源短缺的方法是加入一个实验室或者去实习,这样你就有GPU用了。

第二种是知识上的困难,这种解决办法很简单也没有其他捷径,只能慢慢啃。不过有一点想提醒一下的是,很多时候的一些事情,论文上的原理表述和代码上的实现有一定的差异,所以还是建议github上的开源代码和论文对比着看。在有开源的情况下我不建议把论文完全精读后再看github,除非你有向他人讲解这篇论文的需求。如果为了实践,在粗读论文若干次后,把握一些点,比如这篇论文主要的contribution在哪,这时就可以看代码了。因为有时候论文写得晦涩的东西在代码层面反而是很清晰的。

回想我本科学习成长的过程中,我最感谢的就是这个时代是互联网的时代,因为似乎只要我主动,总会连接到我本科时似乎不可接触到的人。比如我在比赛期间认识到很多清北的学生,这些以前都是“别人家的孩子”,后来又认识到一些18岁读完大学的学生,天坑专业转行后走向人赢的大哥,在知乎有点小名气后一些来和我交流的创业公司的老板/CTO,甚至个别学术名人……在他们身上看到许多,有学术上的交流,有混社会的一些经验,还有一些在我面前客观的差距,都鞭策着我进步,这些都是我应该感谢的人。

至于一些同学比较纠结的,毕业生是去大公司还是创业公司,老实说这不是一道简单的是非题,客观来说是各有各的好处。大家似乎忘了有一个东西叫实习期,所以答案自然是有机会当然是都去见识一下,喜欢就留下,不喜欢就走,每个人的人生态度不一样,人生追求不同,家庭经济环境也不同,每一个公司甚至具体到部门氛围和文化都不同,没有什么四海皆准的道理。工作又不是爱情,不是一定得从一而终。

  学习建议

学习建议的话这里分开两个阶段,在校阶段和应届找工作阶段。

在校阶段,尤其是大一大二的学生,需要戒骄戒躁。他们需要认清一样东西,就是现在处于什么阶段,是学习阶段,还是谋生阶段。如果谋生阶段,那自然是应该取最为直接简单,便于找工作的方式做,这没什么问题。但如果你处于一个学习阶段,一个有机会让你打好基础的阶段,了解这个领域发展的脉络的机会,这时去学一些浮于表面的知识(比如某些查文档就能上手的框架的使用)就是买椟还珠的。

其次一个地方是,关于要不要“重复造轮子“,网上的争论似乎也很多。这句话不能说错,因为我们每一个人都是站在巨人的肩旁上,学计算机确实不应该从沙子提纯炼硅开始,但仅仅是因为”反正做出来也没有人用“就放弃做轮子了,或者认为做轮子是无用功,那说这话的人心实在是黑。

”造轮子“对于普通学生的意义从来就不是说做出来给别人用,而是在于将你脑袋里的知识进行转化和检验。同时我们并不能因为有新知识就否认旧的知识,旧知识是我们了解这个领域发展的脉络和面对的难点很好的素材。曾经实验室有一个转行来的博士,十分难以理解为什么何凯明的ResNet把y=f(x) 写成了y=f(x)+x就能中了顶会,也不明白为什么ResNet所提出的残差结构在各种神经网络里后来都几乎成为了标配。但如果他但凡有点”旧知识“,就会知道在ResNet前,深度学习的其中一个困难就在于怎么缓解梯度消失的问题,甚至提出了许多不是那么通用,现在看起来有点蠢的方法,自然就能明白何凯明的这次工作的意义了。

但这件事还引出了我另外一个的观点,有的时候一个伟大的工作,往往不在于他的形式有多么复杂,而在于首先一点他能work,其次是别人都卡在临门一脚,但就是想不到的时候你想到了。

对于还年轻的在读学生,我的建议很简单,有的时候人功利一点是没有问题的。但在你还年轻,你的身体还健康,脑子还清醒,最重要的是你的学习能力处于人生的巅峰,你还有机会去更大的世界看看的时候,就不要选择丢西瓜捡芝麻了。

而对于应届的学生,说实话我实在想不出什么针对应届生的项目建议,因为从入学到毕业找工作更多时候像一个厚积薄发的过程,我不觉得应届的时候参与一个项目可以让你有什么质的变化。而且与其参与项目,不如回顾基础,多做一些面试题,比如leetcode,牛客网这种对你找工作更有帮助。

在分享的最后给一些学习资源站点:Bilibili,arxiv,github,AI研习社,知乎,paperweekly,以上站点搜你研究的课题,都会有很多收获。


100000AI人才为你投票,企业扫码报名



点击 阅读原文,参加榜单评选