机器学习是人工智能下一个比较广泛的分支,涉及了很多交叉的领域如NLP自然语言处理、计算机视觉Computer Vision等等。简单来说,机器学习ML就是通过训练计算机来模拟人类的学习行为,从而进行预测并解决更多的问题。机器学习往往需要大量的时间和耐心,其过程就像一场马拉松,不会直接冲刺到终点,而是在学习中体会到一个不断变化的、多样的领域。

那么机器学习又包含了哪些概念呢?根据难易程度和专注的分支不同,我将它分为以下几类:

· 基础概念

Logistic回归、决策树算法、纳伊夫贝叶斯、支持向量机(SVMs)、分类项目、回归项目、无监督学习

· 进阶概念

提升算法(XGBoost, LightGBM, Catboost)、时间序列、随即森林

· 机器学习技术

验证策略、超参数调整、特征工程、集合学习、叠加和混合

· 推荐系统

矩阵代数、SVD和PCA、处理不同类型的数据、推荐系统、Github

从这些分类中不难看出,机器学习所涵盖的内容五花八门,它的概念从来就不是与其他领域独立开来的。所以要想成为ML的专家,往往需要尽可能多的去探索、研究其他领域的内容,建立一个完整的知识体系;因为很多内容都是相通的,有了一定知识储备后,对于日后的学习也能更好的理解。

当你学习理论时,要问自己,这里发生了什么?我怎样才能真正应用这个?ML领域内的数学容易看起来令人生畏。对于很多的文字内容的理解,我的技巧是借助Rademacher模型。事实证明,人们对于图像的理解往往比对文字的理解更好。我学习时,面对很多标记数据,会先尝试建立一个模型并训练模型,测试其准确性是更差还是相同。不过这个方法不太建议大家在深度学习时尝试,因为神经网络可以过度拟合任何数据集,甚至是随机标记的数据。

关于这部分的训练,你可以通过任何bootcamp或MOOC’S接受相关培训。这些资源在很多平台也有所提供,在这之中,我比较推荐其中一个叫Learnbay的平台。Learnbay是由IBM认证的数据科学培训。在机器学习模块下,你将学习很多我前面提到的基础概念,如,监督学习,线性回归,逻辑回归,决策树。除此之外,你还有机会参与各种实时项目。

在了解了机器学习的基础概念之后,就到了学习方法。在过去的一年半里,我一直专注于机器学习领域computer vision的学习,所以对于机器学习的学习方法,也是有自己的一些见解的。接下来我会将机器学习步骤分成基础、理论学习和实践三步来讲解。

一、学前基础

如果不对其前提条件进行介绍的话,机器学习可能会显得很可怕。对于大部分人来说,虽然这个领域不需要你成为一个专业的数学家或资深的程序员来学习,不过对于这些领域的核心技能还是需要掌握的。好消息是,一旦你拥有了这些基础,剩下的学习就会相当容易。事实上,几乎所有的ML都是关于将统计学和计算机科学的概念应用于数据。关于学前的基础,大致可以分为三类:

线性代数和微积分→原始算法研究需要有线性代数和多变量微积分,尤其是导数,链式和乘积规则的基础。而针对于这部分,很多大学内的高数课程都有涉及到。作为英语中这些数字运算的定义和名称的一种补充,大家也可以去YouTube找很多国外大学的公开课,如Essence of linear algebra - YouTube。

统计学→了解统计学,特别是贝叶斯概率,对许多机器学习算法来说是必不可少的。不管是自然语言处理还是机器学习
,最重要的事情就是把基础知识搞清楚。在这里,我所说的基础知识是指对于概率和线性代数等概念浅层的理解。不一定需要掌握这些科目,但如果一些算法,比如子空间、基础、i.i.d、独立、相关这些术语,要能明白它们的意思,而不是略知皮毛。我遇到过一些人,他们在网上学习了2-3门关于机器学习的课程,并在一些数据集上应用了2、3种算法,从github上复制了一些代码,就认为自己已经学会了机器学习,并准备好解决数据科学问题。尽管现在有一些数据库能为机器学习ML任务提供非常好的API,并用它们来执行ML任务,但是,仅仅使用它们而不了解内在的东西,从长远来看不会对你有帮助。此外统计学、EDA、线性代数等纯数学的知识要需要掌握。这里的概率论和统计学入门Introduction
to Probability - The Science of Uncertainty是我使用时觉得不错的一个资源。它是由美国MIT的几位教授联合撰写的,内容包括运算讲解的都很清楚。

Python→编程可以说是机器学习一大基础,没有编程就无法学习机器学习。如果说前面的数学知识是基础的话,Python和R就像接下来战斗需要使用到的武器。我个人在学习的时候主要使用R语言,搭配Datacamp学起来真的很方便。针对刚入门的人,我会更推荐Python,操作简单也好上手。关于编程部分,我建议大家花几个月时间同时学习Python代码和不同的机器学习概念。因为在后面你会发现很多情况下你会同时需要它们。而在学习Python代码的同时,大家可以练习使用一些数据科学工具,如Jupyter和Anaconda,主要了解它们的用途以及为什么要使用它们。关于程序语言的学习,网上的资源有很多,coursera和网易公开课都有很多可以选择。除此之外,大家可以尝试ujjwalkarn/DataSciencePython。而对于大部分项目,还需要知道算法设计和分析(课程:Algorithm Design and
Analysis)。一开始我只是直接使用教材的算法,就立刻去操作了,但随着逐渐学习的深入,我也发现如果花点时间去理解所有的东西,结果是很令人满意的。这套课程还提供了很好的讲义,指导学习多层前馈人工神经网络。

二、理论

在有了一定数学基础后后,就可以开始阅读一些教材了,以了解机器学习的理论知识。个人建议从一些关于机器学习的基本介绍性书籍开始,不要直接跳到花哨的书籍。很多人都推荐的西瓜书,在我看来其实不太适合入门学习,难度较大;而且像机器学习这样实践大于理论的领域来说,单单从书本获得的理论知识,往往不能满足于实际生活的应用。而这一部分的理解往往需要具体例子的搭配,一些书本内容涵盖的实例早已过时,所以针对这一部分,给大家推荐几套我在机器学习时使用的课程。

  1. 贪心科技AI课程

贪心学院这套课程,是面向泛AI、AI群体提供专业的系列课程,整套课程将以上提及的内容根据难易程度分为基础和进阶两个阶段,需要付费使用。根据具体所学项目不同,课程的价格在7000到20000之间不等。这套课程吸引我的其中一点就是它涵盖的知识面广。不仅涉及了AI领域内的深度学习、NLP,机器学习,还有很多更细的分支。其中机器学习中的基本算法如分类算法、集成算法、聚类算法、降维算法等,在这套课程内也有大篇幅重点讲解。

课程设置

这套课程是线上课程,这种模式灵活性较高,随时打开就可以上课,比较适合上班族或者学生党利用碎片化时间进行学习。课件和PPT模式类似,左边显示的小标题方便进度查找。由于是近几年新出的课程,和之前提及的书籍教材相比,实例都比较新,也都具有代表性。每节课程中还会配有一定的题目,帮助大家巩固知识点概念。我自己在做这些题目的时候,感受很好的是,这些题目的设定与每小节的课程内容结合的很好,能做到即时的巩固,也能为后面的学习做铺垫。

课程内容

贪心科技这套课程可以说是很全面地涵盖了我上面提到的关于机器学习的各种概念,如随机森林、逻辑回归、线性回归等。通过将机器学习放进人工智能的大框架里学习,能帮助学生更好的理解一些概念,将所学知识串联起来,掌握综合性的技能。


很多有数学背景的人喜欢在学习机器学习ML时跳过线性代数、多元微积分和统计学等内容。但有一件事你绝对不能跳过,那就是Python。虽然还有其他语言可以用于机器学习,如R、Scala等,但Python是目前最流行的ML语言。贪心科技AI课程还为无编程经验者提供了Python基础的内容。除了理论性的内容之外,这套课程还提供了多个机器学习领域代表性案例,如广告点击率预测、情感分析项目、信用卡欺诈预测、零售场景用户分层、意图识别等,供学生参考练习。

这套教材总体来说还是比较简单易懂的。在同样浏览了中、高级课程之后,个人感觉不足的是,进阶课程难度较大。有相关机器学习及数据分析背景的人可能会觉得刚开始的内容过于基础,而进阶部分,尤其是高级,则会有些吃力。

教研团队

课程的核心团队由海内外AI专家组建而成,多位合伙人及主讲老师都是业内资深工程师。其教研人员包括前金融独角兽首席科学家、美国google科学家、ALBERT第一作者、美国微软AI总监等专家;多位合伙人及主讲老师都是业内资深工程师,并多次在ICML、AAAI、IJCAI、ICDM等会议发表数十篇论文,被数百次引用。我在上这节课的时候的导师就是亚马逊的工程师,李文哲老师。他对于每一个问题的讲解都十分细致,尤其是遇到运算问题,都会一步步手写出具体公式。除此之外,他还经常会举一反三,举出同样类型的例子,加深我们的记忆。课后的助教对教学也都十分认真负责,每次我提出的问题都会及时解答,就算现在已经结课了,我们也会经常沟通一下最近遇到的问题。

课后

课后的练习根据难易程度和知识点的不同有所区分,如身高体重预测、A股股价预测、客户是否开设定期银行账户预测、成绩是否及格预测、判断新闻真实性等项目,每一个练习的都是不同的知识点,学生可以在jupyter上自己进行代码的编写,还能得到助教一对一的反馈,及时纠正错误。

除了课程中提供的练习和案例,这套课程课后还配有github使用权限和专门的系统进行学习、练习。我在进行ML学习时,就经常会从github上找各种大神的代码和他们新开发的新奇的程序,如随机文章生成器等,这些内容完全可以拿来当成是实践项目进行练习。有时候遇到棘手的问题,我也会上去发帖求助。总之github对于人工智能领域的学生和职场人都是一个不可多得的好资源。

  1. 哈佛数据科学data science课程

这套课程也是网上教学,一个大课程下分成很多的小部分,在coursera、edx等学习网站上可以找到。课程主要介绍分析数据和建立模型的各种方法,在上课过程中还可以锻炼与人沟通和工作的能力。在整个课程中,我们使用R语言,并同时学习R、统计概念和数据分析的技术。举例来说,我暑假上的这节CS501的课涵盖了很多数据调查的关键技巧,如数据处理、清理、采样、管理、探索性分析、回归和分类、预测和数据通信并通过应用先进的统计学、建模和编程技能,得出预测性的见解。

总的来说,这三个月的学习很有趣,但在这过程中,我也发现了自己基础的不足。作为一个统计专业并且有一些编程基础的学生,我本以为自己对于数据的处理和建模应该是能信手拈来的。可这套课程的难度远超出我的想象。因为之前的学习比较基于理论,接触实例不多,所以在接触像这类对实例进行深入分析并利用一系列连续和离散数学工具的练习的项目就会有些应付不过来。这套课程为理解、预测和决策提供了一个定量框架,几乎涉及生活的方方面面,从交通信号灯的计时,到疾病传播的控制,从资源管理,到体育领域等等。可以肯定的是,上完这套课,你也会跟我一样,有一种柳暗花明后充实的感觉,并且技能也会得到很大程度的提升。

除了这些课程,哈佛还提供了相应线上的证书项目,一共四节课,总时长约为2年。这个项目旨在教授学生如何通过应用先进的统计学、建模和编程技能,得出预测性的见解,获得机器学习和计算技术的深入知识,并为从产品设计到金融等一系列行业发掘出重要的问题和情报。

虽然与Andrew Ng的课程相比,这个项目对机器学习强调内容较少,但你会得到更多关于从数据收集到分析的整个数据科学工作流程的练习。像我之前提及的,对于机器学习极其相关领域要尽可能多的掌握、了解。所以相对于系统性地学习,这套课程能帮助你拥有一个整体的框架概念,并拓展很多数据科学领域的知识。不足的是,这套教材目前只有英文资源,且难度较高。

  1. 吴恩达机器学习(Andrew ng)

这套教材也是很多人推荐的,它是2017年推出的,内容较新,可以免费使用,Coursera上线之后我也慕名有去体验过。我个人在学习时使用的是斯坦福大学的版本,不是Coursera的。这两个版本相比较之下,Coursera的课程内容比斯坦福的CS229更简单,对于数学基础的要求也更低。Coursera版本的课程几乎没有涉及很多概率分布、线性优化、平滑处理等机器学习相关的数学知识;反之,吴恩达通过各种举例代入的讲解,让机器学习这门课程变得更加通俗易懂,虽然梯度、矩阵等的内容显得十分复杂,但是后期用python都可以代入得出结果,这样简单实用的设置,也受到了很多入门者的喜爱。不过这也是这套课程受争议的地方,很多人认为对于数学知识讲解过于浅显,不足以打好机器学习的基础。

吴恩达本人是斯坦福大学计算机科学系和电气工程系的客座教授,他也是在线教育平台Coursera的创始人之一。这套教材在网易有中文版资源,课程的形式也是像PPT一样并且附上吴恩达本人的笔记。整体来说内容浅显易懂,处于初级-中级难度。比较适合入门学习。这套还配有课后作业和测试,保证了一定的练习量,但只限于Cousera课程,且编程作业需要在Jupyter上完成。其次,由于是较新的教材,了解并真正使用过的人不一定很多,所以在学习过程中遇到问题时,需要自己查阅资料解决。

这套教材还有一个特点就是其内容设置的是自下而上的偏理论式讲解。这些课程的一个很强的优点是每一个编程练习都有Jupyter中的Python代码模板。在几乎所有的课程中,吴恩达都带来了一些在该领域取得巨大声誉的人,如Geoff Hinton, Yoshua Bengio, Ian Goodfellow, Andrej Karpathy等。他们的讲座对于机器学习非常具有启发性,大家感兴趣的可以去听一听。

这套课程利用Octave从基础开始教学,从某种程度上很利于打好基础。不过这套教材的理论与应用有些脱节,相对于机器学习来说,它更像是一套线性代数或统计学课程。

三、实践经验

一旦完成了以上的两步,就可以开始在现实世界数据上应用这些概念啦。一个没有经验的数据科学家可能会训练一个模型,一旦准确率达到某个高百分比,就把它运送到生产中去,而无视在这样做的时候所做的不正确的假设。所以,知道什么时候模型是过拟合的,什么时候有虚假的相关性,需要有扎实的理论理解和经验。针对这一部分,我个人的建议是尽早开始练习,但要从小项目做起。实施简单的算法,如线性回归、梯度下降、k-means聚类、k-nearest neighbors和naïve Bayes,然后再进行更高级的操作。在使用库之前,试着对每个算法都做一次。只有这样,才能完全理解它们真正的工作方式。

在这里我推荐一个叫Kaggle的平台,这里面的数据集都是真实的,会让你感觉到数据科学是如何在现实世界中使用的。这也是应用和测试你对ML理解的最好方法。Kaggle上还会有各种竞赛,根据其奖励分为不同类型。知识、工作、这些比赛很适合初学者,你也可以在其中找到很多如何获得好成绩的文章和样本解决方案。

如何系统学习机器学习?相关推荐

  1. 吴恩达登录知乎,亲自回答如何系统学习机器学习

    如何系统地学习机器学习?知乎里有很多回答,近日,吴恩达老师亲自在知乎回答了这个问题: 作者:吴恩达 链接:https://www.zhihu.com/question/266291909/answer ...

  2. 吴恩达入驻知乎首答:如何系统学习机器学习?

    最近在知乎圆桌里看到吴恩达的回答,[如何系统学习机器学习?] 颇为惊喜,仿佛看到了知乎刚成立时的样子,请各个行业大佬来分享专业知识. 该回答目前已经有三千多赞,评论区也相当火爆,一片膜拜之声. 吴恩达 ...

  3. 吴恩达入驻知乎,涨粉秒过万!知乎首答:如何系统学习机器学习

    文 | 卖萌酱 大家好,我是卖萌酱. 昨天在知乎timeline上刷到一个问题: 虽然卖萌酱已经不需要系统学习机器学习了,但无意间发现最高赞的id竟然叫"吴恩达"?? 好家伙,看了 ...

  4. 系统学习机器学习之增强学习(五)--马尔可夫决策过程策略TD求解(SARSA)

    转自:https://www.cnblogs.com/pinard/p/9529828.html 1.时间差分法(temporal difference) 蒙特卡洛方法,需要所有的采样序列都是经历完整 ...

  5. 系统学习机器学习之神经网络(七) --CPN

    原文:http://blog.csdn.net/u014070279/article/details/47299987 1987年,美国学者Robert Hecht-Nielsen提出了对偶传播神经网 ...

  6. 我是吴恩达:人在美国,刚上知乎,先答个「如何系统学习机器学习」

    杨净 发自 凹非寺 量子位 | 公众号 QbitAI 知乎新用户吴恩达,第一件事儿竟是回答如何系统学习机器学习. 嗯,果然随时都自带老师属性. 结果短短不到12个小时,就已经收获了两千多个赞同,关注者 ...

  7. 系统学习机器学习之增强学习(二)--马尔可夫决策过程

    参考: http://blog.csdn.net/zz_1215/article/details/44138823 http://www.cnblogs.com/jerrylead/archive/2 ...

  8. 系统学习机器学习之系统认识

    机器学习(MachineLearning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能, ...

  9. 系统学习机器学习之监督学习

    监督学习是从标记的训练数据来推断一个功能的机器学习任务.训练数据包括一套训练示例.在监督学习中,每个实例都是由一个输入对象(通常为矢量)和一个期望的输出值(也称为监督信号)组成.监督学习算法是分析该训 ...

最新文章

  1. echarts图表第一个案例
  2. nginx 学习笔记(6) nginx配置文件中的度量单位
  3. keycode对应主要键的关系
  4. 产品质量不过关怎么办?一招帮你大幅提高生产质量
  5. 将PPT内容导出为JPG图片
  6. ArcGIS支持的常用数据类型
  7. 女程序员也会有35岁的危机焦虑吗?
  8. thinkphp无法加载控制器:Admin
  9. smartsvn 忽略文件夹_Smart SVN-使用Smart SVN 管理项目代码文件(在windows上)
  10. 利用图神经网络进行的知识图谱补全综述
  11. python制作二维码生成器3.0
  12. Java 选择视频文件对话窗口
  13. (18) 基于时空多图卷积网络的网约车需求预测
  14. lesson1-breeds
  15. 【动态规划】HDU 1081 XMU 1031 To the Max
  16. linux 读取png图片大小,读取 png 图片的宽高信息
  17. 真是太开心了居然看见google yahoo收录的身影-原创天地
  18. 韦东山 嵌入式Linux应用开发基础知识 上【gcc makefile 输入设备
  19. MyBatis的关联映射之 一对一(嵌套查询/嵌套结果)
  20. 汇编语言 求数组中的最小偶数

热门文章

  1. verilog always语法_Verilog初级教程(20)Verilog中的`ifdef 条件编译语句
  2. 容器安全最佳实践入门
  3. 百度超级链新专利曝光,降低隐私数据权限管理难度
  4. 50个常用元器件图片_50个最常用的英语短语(一),值得收藏!
  5. java单例模式几种实现方式
  6. c#基础,单线程,跨线程访问和线程带参数
  7. OC学习7——类别、扩展和协议
  8. 在WIN7系统的笔记本上建立WIFI热点
  9. javascript array sort()
  10. 记录一下ui设计中的网站配色