(转)这是转型AI的励志故事,从非科班到拿下阿里云栖一等奖!

这是转型AI的励志故事,从非科班到拿下阿里云栖一等奖,他经历的坑足够你学习100天!

2017-11-17 程序人生

作者 | 智亮
编辑 | 胡永波

深度学习正在从实验室下沉到技术一线。“年薪百万”的人才需求背后,是各用人团队找不出可用之才的窘境,同时也说明广大有志于AI的人才没能迅速掌握深度学习。背后的原因,恐怕是深度学习的实用性太过超前,创造出深度学习的这批大牛还没来得及培养接班梯队便已扑向技术一线,而立足于一线工作技术人才在学习过程中往往又要重新去趟坑。

如何处理这一环节上的反复,是当前AI人才培养难题上的一大关键。11 月份《程序员》杂志的“AI工程师职业指南”特地请来AI各领域技术一线的专家,希望他们能把成功经验和学习方法详细而走心地分享给有志于此的技术人才,让大家在做规划时,可以用上更为合理的学习路径。

其中,智亮老师的一篇《实战路径:程序员的机器学习进阶方法》,是根据他痛苦的转型经历来告诉大家——一个非科班出身的程序员是如何一步一步踏上深度学习这条不归路,并开发出一款荣获阿里云栖大会API Solution一等奖的植物识别App。

在这过程中,如何选择入门课程?如何选择深度学习框架及编程语言?如何上手数据?如何配置一台能运行深度学习的电脑并跑出你的第一个模型?以下为智亮的正文分享,你可以清晰地看到他趟过的每一个坑,希望借他的肩,让你勇敢前行。文末彩蛋

▽▽▽

我自己痛苦转型的经历,说出来可以供大家参考一下。

我也是非科班出身,但因为工作,一直需要接触计算机视觉的一些传统算法。后来,看到ImageNet竞赛的结果,我意识到了深度学习在视觉领域的巨大优势,遂决定开始转型深度学习和神经网络,走上了这条学习的不归路(笑)。

转型,其实很容易,需要做到的只有一件事:学习。
转型,其实很困难,因为必须做到一件事:坚持学习。

最难的不是下定决心,而是贯彻到底。所以,在开始之前不妨先问问自己这样几个问题:

“我真的已经想清楚,要踏足这个行业吗?”
“我能够付出比其他人更多的辛苦汗水,在这条路上坚定地走下去吗?”
“在遭受了痛苦甚至打击之后,我对机器学习的热爱,仍然能够维持我继续前进吗?”

我个人的经历是这样:一开始接触时,每周一、三、五固定3天时间,每晚花两个小时去学习、看视频、翻书,周六周日则用来完成课程附带的编程作业,大概也是每天两小时左右。在这种强度下坚持了三个月,我才算是完成了入门的第一步。

所以,其实真正重要的,不是“我该学什么”,或者“我该怎么学”;而是“我是不是真的有足够的决心”,以及“我是不是能坚持到底”。

上手的课程

定好决心后,我们就能看看:在学机器学习的时候,我们到底在学什么?作为“不明真相的广大群众”,从哪里入手好呢? 在这之前,你所要用到的数学知识,只有以下这三点:

  1. 懂得矩阵运算的基本计算方法,能够手动计算[3×4]×[4×3]的矩阵,并明白为什么会得到一个[3×3]的矩阵。
  2. 懂得导数的基本含义,明白为什么可以利用导数来计算梯度,并实现迭代优化。
  3. 能够计算基本的先验及后验概率。

只要大学考试不是完全靠抄答案,稍微翻翻书,你就能把这点知识找回来,可能半天都用不上。

然后就可以入门了,对于所有零基础的同学,我都建议不要只看书,要找到合适的学习视频。这样可以效率翻倍。找一个好点的教学视频,其中课程设置与课中测验及时而又合理,重点清晰、作业方便,都能让你更为积极地投入到机器学习的学习之中,让你扎实而快速地掌握机器学习的必备基础知识。

学习完成后,你能了解到机器学习的一些基本名词和概念,并具备一定的算法层面的编码能力。打好理论和实践的基础,你就可以进行下一阶段的学习了。

编程语言与深度学习框架的选择

当然,作为开发者,想要去实现一个模型,绕不开的问题便是:应该选择什么语言?应该选择什么框架?

但作为入门,最为理所当然的建议则是Python,原因也非常简单:Python最好学。而框架方面,从使用者的维度去划分,当前数量非常之多的机器学习框架,则可大体上分为两大阵营。

学术友好型: Theano、Torch与Caffe
工业友好型: Tensorflow、MXNet与Caffe

我推荐首选Tensorflow作为你的第一个开发框架。最主要的因素是它人气高。遇到任何问题,你都可以找到一群志同道合的伙伴们去咨询,或是一起研究。对于初学者而言,其重要程度不言而喻。

实战上手的数据

上过课程、学好语言、装好框架之后,自然就要通过亲手编程,来把自己的模型实现出来。

但在深度学习领域,没有数据的模型就是无源之水,毫无价值。而目前流行的监督学习,要求必须有足够的带标注数据来作为训练数据。那么,从哪里能得到这样的数据以进行学习呢?答案就是公开数据集。

以CV领域为例,常见的公开数据集就包括以下这些。

MNIST
CIFAR
ImageNet和MS COCO

所以当我们进入实际工作的阶段,就要根据具体的需要从中选择适合自己的数据集,以作为benchmark或是pretrain数据集。

实战阶段的学习用机配置

接下来,我们就需要一台机器来把框架搭建起来,以编写和运行我们的helloAI。然而,我在很多地方都看到小伙伴们在问:

我需要什么样的配置能学机器学习?
我需要买块GTX1080/TITAN/Tesla吗?
我应该装几块显卡?一块?两块?还是四块?

而答案也往往倾向于:

“必须得有GPU啊,至少1080,没有四路Titan你都不好意思跟人打招呼!”

其实,并不完全是这样。

如果仅仅是入门时期的学习,我建议先不用专门购买带GPU的机器;而是先用你现有的机器,使用CPU版本,去学习框架和一些基础。等到你对基础已经掌握得比较扎实,那么自然就会形成跑一些更复杂的模型和更“真实”的数据的想法,这时候再考虑买一块GPU,以缩短训练时间。综合来看,双1070的确是最适合入门学习的选择——如果买不起双1080/双TITAN的话(笑)。

最后,也是最初

在经历过如此漫长、痛苦但也充满乐趣的学习和实践之后,你应该可以算是机器学习的一个业内人士了。但这并不意味这条道路已经走到了尽头,恰恰相反,在完成这一切之后,你才刚刚踏出了机器学习从业生涯的第一步。

这个时候,我们可以回过头来重新问问自己前面那几个问题:

“我真的已经想清楚,要踏足这个行业吗?”
“我能够付出比其他人更多的辛苦汗水,在这条路上坚定地走下去吗?”
“在遭受了痛苦甚至打击之后,我对机器学习的热爱,仍然能够维持我继续前进吗?”

这条路,我在走,很多人在走,那么,你来吗?

△△△

正文到此就结束了,这里,我想说一点题外话。

我是AI科技大本营的技术主笔波波,一直很喜欢智亮老师的分享,非常走心,他从一位非科班的技术一路走到今天,也拿过阿里云栖大会的一等奖,他太知道其中的不易与艰辛了。跟智亮老师几经约稿,其在百忙之中终于抽空成文,将宝贵经验倾囊相授,实属不易。

他是真心希望能将自身的实践经验转化成对大家真正有用有料的知识,因此他接受了邀请,在CSDN学院开设《人工智能工程师直通车》实训班课程。

不禁想为这堂课多说几句,这是一个120天的学习计划,目标是:能让你从AI小白直接晋级为具备一年经验的人工智能工程师。

智亮老师全程也都将专注于趟坑实践,当然,需要掌握的知识和系统图谱也都会交织在里面,这样才能真正做内容消化。课程提供了GPU云实验平台,这样便于你进行案例实操。一定要实操,才能出效果!

在加入这个计划前。不妨问问自己:

如果我渴望学习AI技术,想要系统性学习,而且有坚持的毅力,那么来吧, 4个月的携手实战,相信你收获不一样的自己,人工智能工程师。

在你的学成之日,希望届时我们来自AI产业界的各大就业机会,推荐人中,有你的名字。

猜你喜欢

转载自blog.csdn.net/wowotuo/article/details/78565084