ml_foundations

机器学习/人工智能教程

近年来人们对机器学习的认识也越来越多,很多人都希望学习相关的知识。但机器学习不是一个容易学习的领域,需要选择适合自己难度的学习资料。这里简单地将学习深度分为三个阶段,建议选择适合自己的难度。三个阶段为:

  • 初级:了解:机器学习是什么?了解机器学习的应用,并对机器学习有较为概念性的了解。适合非机器学习相关专业、希望对机器学习有大概了解的人群,比如产品经理。
  • 中级:应用:怎么实现机器学习?能使用编程语言编写基础的机器学习算法,并对数学原理有初步理解。适合与机器学习相关,但是数理知识不足、或者只需掌握大概原理的人群,比如程序员。
  • 高级:学术:机器学习算法的原理。不止于掌握机器学习算法的原理、编写机器学习算法。适合相关专业的在校生,比如 计算机系本科生、研究生。

初级:了解

先修知识

  1. 首先,英语能力非常重要,你需要起码有高中的英语水平,并且敢于应对英文资料,又不是不能学,又不是学不会。英语的重要性不用多说,就机器学习而言,2011年便开始流行起来,但是目前很多机器学习领域重要的书籍还没有中文翻译。网络上优秀的机器学习资源基本基于英语教学。但是对于英语真的不用怕,一遍看不会可以看多一遍,不认识的单词查词典就是。不用闭卷考试,随时都可以查词典。
  2. 能用 Python 编写简单的程序,相当于学习完 Codecademy 的 Python 教程,预计耗时13小时。笨方法学 Python前40章,耗时也不会很大。英文原版:Learn Python the Hard Way
  3. 非常基础的矩阵知识:可汗学院的课程,从矩阵简介学到矩阵乘法(二),大约耗时1小时。
  4. 选修资料: Command Line,这个就是电影里面那些(可能是)酷酷的人操作电脑的方式,把教程过一遍就可以。

学习资料

  1. 从机器学习谈起
    非常不错的介绍。
  2. Machine Learning Foundations: A Case Study Approach

University of Washington 的课程,两位教授的头衔是 Amazon Professor of Machine Learning。课程教学结构合理,每周课程分为概念、方法介绍和实际应用两个部分,学完基本的的概念和方法、就可以马上应用课程准备好的机器学习库体验一番。对于初学者来说非常有益。

中级:应用

先修知识

英语比之前有长进。

学习资料

A 线路 Machine Learning

这门课程由由百度首席科学家,前 Google Brain 负责人之一 Andrew Ng(吴恩达)教授,不会涉及很深的数学,学习这门课程需要有高中知识预备。课程有中文字幕。

B 线路 Machine Learning Specialization 机器学习专项课程

如果你是从初级:了解学习到此,可以尝试本系列课程。初级:了解里面的 Machine Learning Foundations: A Case Study Approach 就是本系列的第一门课程,是整个系列课程总概,从第二门课程开始,你将要自己编写机器学习算法。不过课程有着非常详细的教程引导,认真学习肯定可以通过课程,内容上会比A 线路的详细。

选修资料

  • 书籍:Programming Collective Intelligence 集体智慧编程

听说是一本不错的书,很多人推荐。

高级:学术

要求

数学要求

复习:

有不会的可以去 MIT OCW 补课。

编程要求

具体课程具体要求不同。通常使用的是 MATLAB 或 Octave,Octave 是一款 和 MATLAB 类似的编程语言,但 Octave 免费开源。教程:MATLABOctave. 当然也有些课程使用 Python。另外一般需要有对算法的基本认识,可以学习王子屯私塾的算法课程: Algorithms, Part IAlgorithms, Part II 或者直接看教材 Algorithms,也可以学习 MIT 的 《算法导论》。

学习资料

A 线路 Learning From Data - Caltech

加州理工学院原版课程,没有因为要适应大众降低难度,不可多得的机器学习入门课程。教授为这门课程建立了一个网站,上面有关于课程的各种资料,还有讨论论坛,学习环境也不可多得。

B 线路 Machine Learning- Stanford

Andrew Ng 早些年在 Stanford 授课的录像,也是校园原版课程。

Neural Networks for Machine Learning - Toronto

学习完上面其中一门,可以考虑学习神经网络,由深度学习的开山鼻祖 Geoffrey Hinton 教授。

其它

学习建议

学习氛围对于学习来说非常的重要。有无一个班级、小组一起学习,最后收获的差别可能会非常的大。在学校的学生他们有小组讨论,做小组 project 等等学习活动,在这些过程中,毫无疑问收获是非常大的。所以建议即使是自学,也尽量加入一个学习小组一起学习,大家都一起学习交流,收获定会更大。

寻找学习资料的技巧

现在大学很多课程都有自己的课程网站,提供学习资料给学生下载,比如作业、习题、lecture notes 等,可以尝试去这些课程网站找找学习资料。比如 Stanford 的 Machine Learning 网站,打开Handouts and Materials, 各种资料应有尽有。

其它相关领域的课程

2 thoughts on “机器学习/人工智能教程

  1. 说实话,上面列基本都是最入门级的课程吧。 建议之间去udacity和coursera上完google和教父G Hinton的深度课,第一课过后理解data driven 和hand code的区别。然后Andrew Ng的课是简单到不能再简单的入门课,看完之后大体对算法分类有一点认知。接下来一周去看李飞飞的CS231n,完事去看stanford NLP。最后吧auto encoder,VAE和GAN搞明白跟上一点点最新的发展,这才算刚刚入门,如果想了解经典的hand code方法,以Bishop的经典PR and ML 为蓝本吧每一章的title技术搞通,会非监督,会Qlearn,会用kernal,能自己决定distribution,这算一只脚踏入ML的世界了。另外,google和facebook的血泪教训,程序员想学机器学习就得放弃掉程序员的思维模式,转变为应用数学的思维方式,先忘掉底层,学通算法在考虑实现,要不然用着真不如一个刚上大学的小实习生顺手。。。

发表评论