导读:致想入坑深度学习的你

导读:致想入坑深度学习的你

从混了几年到遇见深度学习

2011 年暑假,湿热的武汉校园里,华科电子系里的前 15 名同学正在厮杀 13 个保外的名额,虽然单论裸成绩和加上加分后的成绩的话,我不会掉队,但是,在当时的十几个人中,大部分人仍然会觉得这个有很大的变数。到什么地步呢?举一个例子,拥有计算机网络这个证书到底是按照往年一样加 1 分?还是按照当年新规加 0.5 分?大家在辅导员面前多次争执。第一名和第十名的加权分差好像都没有超过 0.5 分的,所以这一点区别有多大,大家可以想象一下。

为此,每晚回宿舍都会有最新消息传回来,我很苦恼,所以在 8 月份的时候,赶上了中科院物理所夏令营的晚班车。

十几天的夏令营很爽,匆匆参观了几十个研究所,高端到紫金山天文台、正负电子对撞机等,听北航物理系专业的同学整天说:优秀的人才必须先留本校,所有有很多想出来的人考试故意放水等。然后,在参观后来就读的半导体所时,淋了一场大雨,当时以为北京每年还是会下很多次雨的。

那个时候我曾经有另一个选择,即自动化所刘成林老师组。来北京之前邮件联系过,后来在刘老师办公室也聊了很久,只可惜夏令营回去之后,保外的竞争仍然由于额外增加专业考试的存在而没有结束,以至于误了自动化所的面试。后来被问面试结果如何时,实在无脸答问。

没想到的是,保外最终以所有人的胜利结束了,折腾了几个月后,跟着系里以前的师兄,选择了中科院半导体研究所,毕竟自己是微电子专业,这也算是本行了吧。

然后到了实验室做毕设,师兄拼凑了一台 512 M 内存的电脑,开始用 Xilinx 和 Matlab 做毕业设计,写 Verilog 代码,以前没有学拍照,照片也没保存下来,就只有下图为证了。

enter image description here

每天的业余生活就是打球打球打球,然后混到了硕士毕业。

刚入研究所的第一年有高温假,几乎所有同学都回家度过了那两个星期的高温假,我跟另一个哥们儿留下来学习。把数字图像处理和 C++ Prime 认真看了一遍,算是入门了。直到 2015 年毕业,陆陆续续意识到深度学习的兴起,在外听百度 IDL 的一些人的演讲,也没有正儿八经的做过深度学习的项目。硕士论文写了 130 多页,从图像降噪到分割,从 Guided Filter 到去雾算法,到 Level Set、Grab Cut,全部都是传统的图像算法。毕业后还有好几个人问之前发的一篇改进 Guided Filter 的文章,不得不感叹,何凯明真不是一般人。

毕业后进入 360 图像组,我们组和颜水成老师手下的一批学生一起组建成了最开始的 360 AI 研究院,开始从自动驾驶、辅助驾驶做到美颜相关的项目,才算是真正入了行业前沿。在 360 的日子是很苦涩的,两年住的地方都离公司不超过 50 米,但是环境不是 5 户的隔断、就是 7 平米的小卧室,从生活上来说,毫无质量可言。

但是,加班的生活使我淡定了很多,没有学校里那么浮躁了,颜老师偶尔递过来给大家喝的鸡汤,也还受用,熏陶了一段时间之后,因为寻求更合适的生活而离开了。

如果读书的时候,我更加努力,遇到更对的方向和优秀的人,那么今天一定会更好,相信学习完这套课程内容后,你不会后悔。

我眼中的深度学习

现在应该有一部分读者并不懂图像算法,只了解深层神经网络的调参,我觉得这是错误的。遇到真正有挑战的问题,需要用传统方法辅助解决的时候,一定会黔驴技穷。所以,建议大家趁早夯实自己的图像基础和传统机器学习算法基础。

这些年大大小小做了不少项目,对于深度学习这个工具多少有了一些体会。本系列课程主要面向的对象是想快速入行的朋友。

为什么深度学习这么火

6年前的时候,我带着实验室师姐和师妹,参加中科院的一个植物识别比赛。

那个时候,谁也没有深度学习经验,也没有多少机器学习的基础,神经网络玩的也不好,所以我们的思路是什么呢?用一些方法把植物主体提取出来,然后提取各种颜色特征、形状特征、纹理特征输入分类器。到最后,大家积极性并不高,比赛都没有完成。

如果回到今天,这是一个再简单不过的分类问题了。

深度学习之所以这么火,就是因为它的技术成熟了,它能让某些问题得到很轻松、成熟的解决。

从刷脸支付到虐遍人间的 Alpha 狗,都是技术发展的产物,所以它该火,因为它做到了上一代技术做不到的事情。

深度学习是什么,很难学吗

深度学习是什么?我这里只说它的一个方向,深层卷积神经网络,这是图像处理领域所说的深度学习,后面说深度学习就指代这个了。它的本质是神经网络,不是本世纪出来的新技术,只是有了一些新技巧的加入,关于这个问题,我们以后再详细说。

那么深度学习难学吗?

当然难学,不然为什么做这一行的工资那么高、人才这么稀缺。但是,如果你把深度学习只当作一个调参工作来说,它不难学,一个高中生经过 3 个月的培训,足够了。那么,深度学习难在哪里?

对所要解决的问题的理解

传统方法解决问题的思路,是先拎出来一个任务,然后针对这个任务设计图像特征。在这个过程中,我们不可避免的会去简化问题,去针对不同的数据来源、想不同的方案。而深度学习这个黑盒子,淡化了这个过程,每个人尤其是新手,以为丢进去一批数据之后,就能得到想要的结果,而实际上几乎不可能。

要想做好一个项目,需要知道应该准备什么样的数据、准备多少数据,不同来源的数据怎么使用,怎么确定哪些数据是高质量、哪些是低质量的。比如室内的数据和室外的数据,前置摄像头和后置摄像头的数据对于一个任务来说是不是有差异。

需要知道什么时候该简化问题,比如表情识别的时候,不应该输入一整张图做训练。初学者,往往认为分类任务很简单,那是因为他们没有面临真正的问题,当你只是为了识别猫和狗,当然简单。但是当你要识别正脸和非正脸时,就必然要处理模糊边界。实际的业务,需要不断做出调整,远非实验室环境和比赛环境下近乎完美的设定。

前段时间带了一个实习生对此就有了深刻的体验,感兴趣不妨读一读,方便手机阅读做了二维码。

上面只说了一部分,实际上对所要解决的问题的理解,是一个很需要经验的活,只有不断实战才能进步,没有一年半载的锻炼,一般都无法独自承担任务。

对能力的要求

网上曾经有过对从事深度学习相关岗位人的能力要求,我这里做一个简化版,这些技能是必须掌握的。

  • 熟练掌握 C/C++、Python 等编程语言;
  • 熟练掌握 Caffe、TensorFlow 等以及不断新出的开源平台;
  • 熟练阅读行业前沿研究,都是英文 Paper,并经常需要复现结果。
  • 一般必须掌握爬虫、服务端等前后端的基础知识,保证日常项目需要时能独立开工;
  • 了解并熟悉 Cuda 等 GPU 编程技术,了解一些移动端的硬件知识;
  • 了解并熟悉 Android、iOS 等移动端的基础知识,在项目中可能会需要使用。

优秀的人才,上面这些技能基本全部必备,难不难,技术人员对比下自己的水平,想必自有判断。

好了,先说到这儿,以后要说的还多着呢,我是言有三,以后还请多多关照。

福利:为了方便沟通、交流,建立了一个微信群,里面有国内顶尖互联网公司的朋友和遍布各地的学生,欢迎加入。由于已经超过 100 人,加群请添加有三微信:Longlongtogo。

上一篇
下一篇
目录