网络机器人吧社区

机器学习入门很难?骗你的!

StuQ 2019-02-20 07:27:51

作者|刘若泽
编辑|Judy

今天的内容来自知乎。

“互联网+”已经发展的差不多了,应有尽有,空间不大,下个浪潮会不会是“AI+”?那么作为一个普通程序员,如何提前向人工智能(AI)靠拢?

本人是一名普通程序员,也刚转入AI领域,因此结合自身经验,想回答这个问题。

本文的目的是给出一个简单的,平滑的,易于实现的学习方法,帮助 “普通” 程序员踏入AI领域这个门。这里,我对普通程序员的定义是:拥有大学本科知识,平时工作较忙,自己能获取的数据有限。因此,本文更像是一篇 “from the scratch” 的AI入门教程。

什么是AI ?

AI,也就是人工智能。曾经,符号与逻辑被认为是人工智能实现的关键,而如今则是基于统计的机器学习占据了主导地位。最近火热的深度学习正是机器学习中的一个子项。目前可以说,学习AI主要的是学习机器学习

但是,人工智能并不等同于机器学习,这点在进入这个领域时一定要认识清楚。

关于AI领域的发展历史介绍推荐看周老师写的《机器学习简介》。

下面一个问题是:

AI的门好跨么 ?

其实很不好跨。我们以机器学习为例。在学习过程中,你会面对大量复杂的公式,在实际项目中会面对数据的缺乏,以及艰辛的调参等。如果仅仅是因为觉得这个方向未来会“火”的话,那么这些困难会容易让人放弃。

 普通程序员要学习如此困难的学科,是否就是没有门路的?

答案是否定的。只要制定合适的学习方法即可。

学习方法

学习方法的设定简单说就是回答以下几个问题:

我要学的是什么?我怎样学习?我如何去学习?

这三个问题概括说就是:学习目标,学习方针与学习计划。

学习目标比较清楚,就能踏入AI领域这个门。这个目标不大,因此实现起来也较为容易。

“如果目标过大,那就为了你日后放弃它时找到了足够的理由”。

学习方针可以总结为 “兴趣为先,践学结合”。简单说就是先培养兴趣,然后学习中把实践穿插进来,螺旋式提高。这种方式学习效果好,而且不容易让人放弃。

有了学习方针以后,就可以制定学习计划,也称为学习路线,下面就是学习路线的介绍。

学习路线

我推荐的学习路线是这样的,如下图:


这个学习路线是这样设计的:首先了解这个领域,建立起全面的视野,培养起充足的兴趣,然后开始学习机器学习的基础,这里选择一门由浅入深的课程来学习,课程最好有足够的实验能够进行实战。

基础打下后,对机器学习已经有了充足的了解,可以用机器学习来解决一个实际的问题。这时还是可以把机器学习方法当作一个黑盒子来处理的。实战经验积累以后,可以考虑继续进行学习。这时候有两个选择,深度学习或者继续机器学习。

深度学习是目前最火热的机器学习方向,其中一些方法已经跟传统的机器学习不太一样,因此可以单独学习。除了深度学习以外,机器学习还包括统计学习,集成学习等实用方法。如果条件足够,可以同时学习两者,一些规律对两者是共通的。

学习完后,你已经具备了较强的知识储备,可以进入较难的实战。这时候有两个选择,工业界的可以选择看开源项目,以改代码为目的来读代码;学术界的可以看特定领域的论文,为解决问题而想发论文。无论哪者,都需要知识过硬,以及较强的编码能力,因此很能考察和锻炼水平。经过这个阶段以后,可以说是踏入AI领域的门了。“师傅领进门,修行在个人”。之后的路就要自己走了。下面是关于每个阶段的具体介绍:

领域了解 

在学习任何一门知识之前,首先第一步就是了解这个知识是什么?它能做什么事?它的价值在什么地方?

如果不理解这些的话,那么学习本身就是一个没有方向的舟,不知道驶向何处,也极易有沉船的风险。比如你要知道机器学习是什么,能做什么,它与深度学习以及人工智能的关系?了解这些问题后,你才能培养出兴趣,兴趣是最好的引路人,学习的动力与持久力才能让你应付接下来的若干个阶段。

知识准备 

如果你离校过久,或者觉得基础不牢,最好事先做一下准备复习工作。“工欲善其事,必先利其器”。以下的准备工作不多,但足以应付后面阶段的学习。

数学:

复习以下基本知识。线性代数:矩阵乘法;高数:求导;概率论:条件与后验概率。其他的一些知识可以在后面的学习的过程中按需再补。

英文:

常备一个在线英文词典,例如爱词霸,能够不吃力的看一些英文的资料网页。

FQ:

可以随时随地上Google,这是一个很重要的工具。不是说百度查的不能看,而是很多情况下Google搜出来的资料比百度搜的几十页的资料还管用,尤其是在查英文关键字时。节省时间可是很重要的学习效率提升。

深度学习

深度学习是目前最火热的研究方向。有以下特点:知识更新快,较为零碎,没有系统讲解的书。因此学习的资源也相对零散,下面是一些适合初学者的资源介绍:

推荐:
  • UFLDL: 非常好的DL基础教程,也是Andrew Ng写的。有很详尽的推导,有翻译,且翻译质量很高;

  • Deep learning (paper):2015年Nature上的论文,由三位深度学习界的大牛所写,读完全篇论文,给人高屋建瓴,一览众山小的感觉,强烈推荐。如果只能读一篇论文了解深度学习,我推荐此篇。这篇论文有同名的中文翻译;

  • Neural networks and deep learning:这本书的作者非常擅长以浅显的语言表达深刻的道理,虽然没有翻译,但是阅读并不困难;

  • Recurrent Neural Networks: 结合一个实际案例告诉你RNN是什么,整篇教程学完以后,会让你对RNN如何产生作用的有很清晰的认识,而这个效果,甚至是读几篇相关论文所没有的。

机器学习 

机器学习的第一门课程首推Andrew Ng的机器学习。这门课程有以下特点:难度适中,同时有足够的实战例子,非常适合第一次学习的人。

总结

本文的目的是帮助对AI领域了解不深,但又想进入的同学踏入这个门。这里只说踏入,是因为这个领域的专精实在非常困难,需要数年的积累与努力。在进行领域学习前,充分认识自己的特点,制定合适的学习方法是十分重要的。

首先得对这个领域进行充分了解,培养兴趣。在学习时,保持着循序渐进的学习方针,不要猛进的学习过难资源;结合着学习与实践相辅的策略,不要只读只看,实际动手才有成就感。

能把难的问题讲简单的人才是真正有水平的人。所以,一定要学习优质资源,而不是不分青红皂白的学习。最后,牢记以兴趣来学习。学习的时间很长,过程也很艰难,而只有兴趣才是让你持之以恒,攻克难关的最佳助力。

谨以此文与在学海中乘舟的诸位共勉。我就是一名普通程序员,刚刚转入AI领域,还有很多不足。希望此文可以帮助到大家。

知乎原文链接:https://www.zhihu.com/question/51039416/answer/138535202

看完这篇内容觉得学习机器学习入门很难?

觉得自己机器学习基础非常薄弱?没有在工程实践中使用过机器学习?没有实时数据处理的经验?

正如作者提到的要学就一定要学优质资源,要用学习与实践相辅的策略,自己一个劲光看学习资料是没用的,要动手!将技术真正学到自己的手里!

StuQ经过2个月精心打磨,为你制定最适合的学习方法,推出 60 课时(长达 40 小时)《深度神经网络实战——从 0 到 1 构建深度学习、海量数据实时分析系统》大课,用20 小时讲方法,20 小时讲编程,让理论与实践并行

真正将机器学习、实时数据处理、服务器和客户端开发有机结合在一起,帮助学员将机器学习充分应用到实际开发中,实现技能进阶,让你成为“人工智能先行者”!

送你价值 200 元 ,本课程优惠码【主人来领我吧】,仅限使用 10 次。


点 「 阅读原文 」了解更多课程内容。

Copyright © 网络机器人吧社区@2017