V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
q7695650
V2EX  ›  Python

如何自学人工智能路径规划(附资源,百分百亲身经验)

  •  5
     
  •   q7695650 · 2018-08-15 16:18:02 +08:00 · 3168 次点击
    这是一个创建于 2292 天前的主题,其中的信息可能已经有所发展或是发生改变。

    下面的每个资源都是我亲身学过的,且是网上公开公认最优质的资源。

    下面的每个学习步骤也是我一步步走过来的。希望大家以我为参考,少走弯路。

    请大家不要浪费时间找非常多的资料,只看最精华的!

    综述,机器学习的自学简单来说分为三个步骤

    前期:知识储备包括数学知识,机器学习经典算法知识,编程技术( python )的掌握

    中期:算法的代码实现

    后期:实战水平提升

    机器学习路径规划图

    一、数学基础

    很多人看到数学知识的时候就望而却步,数学是需要的,但是作为入门水平,对数学的要求没有那么的高。假设你上过大学的数学课(忘了也没事),需要的数学知识啃一啃还是基本能理解下来的。

    1.1、数学内容

    线性代数:矩阵 /张量乘法、求逆,奇异值分解 /特征值分解,行列式,范数等

    统计与概率:概率分布,独立性与贝叶斯,最大似然(MLE)和最大后验估计(MAP)等

    优化:线性优化,非线性优化(凸优化 /非凸优化)以及其衍生的如梯度下降、牛顿法等

    微积分:偏微分,链式法则,矩阵求导等

    信息论、数值理论等

    上面的看不太懂没事,不是特别难,学习一下就能理解了。

    1.2、数学资源

    网上有很多人会列举大量大量的课程资源,这是非常不负责任的事,学完那些我头发都得白了。实际上,我们只需要学习其中的一部分就够了。

    1.2.1、吴恩达的斯坦福大学机器学习王牌课程 CS229,课后就有对学生数学知识的要求和补充,这些数学知识是完全符合机器学习要求的,不多也不少。墙裂推荐要看,不过只有英文版的。

    链接: https://pan.baidu.com/s/1NrCAW38C9lXFqPwqTlrVRA 密码:3k3m

    1.2.2、深度学习的三大开山鼻祖之一 Yoshua Bengio 写的深度学习(包含了机器学习)领域的教科书,现在以开源的形式在网上公开。这部书被誉为深度学习的圣经。在这里我们只看这本书的第一部分,也就是数学基础。囊括了机器学习所需的所有必备数学基础,而且是从最基础的说起,也不多,必读的。

    链接: https://pan.baidu.com/s/1GmmbqFewyCuEA7blXNC-7g 密码:6qqm

    1.2.3、跟机器学习算法相结合的数学知识。上面两部分是理论层面的数学,机器学习算法中会对这些数学进行应用。

    链接: https://zhuanlan.zhihu.com/p/25197792,知乎专栏上的一篇好文章,囊括了所有的应用知识点。

    好了,数学方面我只推荐上面三个资源,三个都是必看的。里面很多可能你现在看不太懂,没关系。先大概过一遍,知道自己的数学水平在哪。在看到算法知识的时候,不懂的再回来补就好。后期需要更多的数学资料我会再更新的。

    二、编程技术

    编程语言:python3.5 及以上,python 易学,这个这期先不细讲。

    三、经典算法知识

    算法包括机器学习和深度学习,机器学习是深度学习的基础。所以务必先学机器学习的经典算法,再学深度学习的算法。

    3.1、机器学习

    3.1.1、课程资料

    首推吴恩达的 CS229,经典中的经典,在网易公开课里有视频,翻译,课程讲义,笔记是非常非常完备的。墙裂推荐。这个课程对数学有一定的要求,但我觉得只要你上过大学的数学,然后补一下上面的数学,完全可以直接来看这个 CS229。

    假设你的数学真的很差的话,怎么办?吴恩达在 coursera 上也开了一门跟 CS229 完全匹配的课程,coursera 机器学习课。这门课是 CS229 的翻版,唯一不同的是它对数学基本是没有要求了,如果你对数学真的不懂的话,那就先看这个的教程吧。它跟 CS229 的关系就是同样的广度,但是深度浅很多,不过你学完 coursera 还是要回过头来看 CS229 的。这个也是免费的。

    CS229 课程视频: http://open.163.com/special/opencourse/machinelearning.html

    课程讲义和中文笔记: https://pan.baidu.com/s/1MC_yWjcz_m5YoZFNBcsRSQ 密码:6rw6

    3.1.2、配套书籍:

    机器学习实战,必看。用代码实现了一遍各大经典机器学习算法,必须看,对你理解算法有很大帮助,同时里面也有应用。如果大家看上面纯理论的部分太枯燥了,就可以来看看这本书来知道在现实中机器学习算法是怎么应用的,会很大程度提升你的学习兴趣,当初我可是看了好几遍。

    书籍及课后代码:链接: https://pan.baidu.com/s/15XtFOH18si316076GLKYfg 密码:sawb

    李航《统计学习方法》,配合着看

    链接: https://pan.baidu.com/s/1Mk_O71k-H8GHeaivWbzM-Q 密码:adep,配合着看

    周志华《机器学习》,机器学习的百科全书,配合着看。

    链接: https://pan.baidu.com/s/1lJoQnWToonvBU6cYwjrRKg 密码:7rzl

    3.2、深度学习

    说到深度学习,我们不得不提斯坦福的另一门王牌课程 CS231,李飞飞教授的。这门课的课程,课后习题,堪称完美。必须必须看。整个系列下来,特别是课后的习题要做,做完之后你会发现,哇哦!它的课后习题就是写代码来实现算法的。这个在网易云课堂上有。

    视频地址: http://study.163.com/course/introduction.htm?courseId=1004697005

    课程笔记翻译,知乎专栏: https://zhuanlan.zhihu.com/p/21930884

    墙裂建议要阅读这个知乎专栏,关于怎么学这门课,这个专栏写的很清楚。

    课后作业配套答案: https://blog.csdn.net/bigdatadigest/article/category/7425092

    3.3、学习时间

    到这里了,你的机器学习和深度学习算是入门了。学完上面这些,按一天 6 小时,一周六天的话,起码也得三个月吧。上面是基本功一定要认真学。但是,还找不了工作。因为你还没把这些知识应用到实际当中。

    3.4、实战部分

    3.4.1、实战基础

    这一个阶段,你要开始用 tensorflow (谷歌的深度学习框架)、scikit-learn ( python 的机器学习框架),这两个框架极大程度地集成了各大算法。其实上面在学习 cs231n 的时候你就会用到一部分。

    scikit-learn 的学习: http://sklearn.apachecn.org/cn/0.19.0/

    这是 scikit-learn 的官方文档中文版翻译,有理论有实战,最好的库学习资源,没有之一。认真看,传统的机器学习就是用这个库来实现的。

    Tensorflow 的学习: https://tensorflow.google.cn/api_docs/python/?hl=zh-cn

    官方文档很详尽,还有实战例子,学习 tensorflow 的不二之选

    3.4.2、实战进阶

    仅仅看这两个教程是不够的,你需要更多地去应用这两个库。

    接下来推荐一部神书,机器学习和深度学习的实战教学,非常非常的棒,网上有很多号称实战的书或者例子,我看了基本就是照搬官网的,只有这一本书,是完全按照工业界的流程解决方案进行实战,你不仅能学习到库的应用,还能深入了解工业界的流程解决方案,最好的实战教学书,没有之一。书名是 hands-on-ml-with-sklearn-and-tf

    链接: https://pan.baidu.com/s/1x318qTHGt9oZKQwHkoUvKA 密码:xssj

    3.4.3、实战最终阶段

    kaggle 数据竞赛,如果你已经学到了这一步,恭喜你离梦想越来越近了:对于我们初学者来说,没有机会接触到机器学习真正的应用项目,所以一些比赛平台是我们不错的选择。参加 kaggle 竞赛可以给你的简历增分不少,里面有入门级别到专家级别的实战案例,满足你的各方面需求。如果你能学到这一步了,我相信也不需要再看这个了。

    上述所有资料的合集: https://pan.baidu.com/s/1tPqsSmSMZa6qLyD0ng87IQ 密码:ve75

    补充:

    学到这个水平,应该是能够实习的水平了,还有很多后面再说吧。比如深度学习和机器学习的就业方向,深度学习得看论文,找工作还得对你得编程基础进行加强,具体就是数据结构与算法,我当年在这个上面可是吃了很大的亏。

    这里面关于深度学习和机器学习的就业其实是两个方向,上面的其实也没有说全。一般来说,你得选择一个方向专攻。我建议的是,自学的最好在后期侧重机器学习方向,而不是深度学习。深度学习的岗位实在是太少,要求太高。机器学习还算稍微好点。

    重点:上面的学习路径是主要框架,但是不意味着仅仅学习这些就够了。根据每个人基础的不同,你有可能需要另外的学习资料补充。但是,我希望大家可以按照上面的主框架走,先按上面我推荐的资源学,有需要的再去看别的(我之后也会推荐),上面的我能列出来的都是最经典的,最有效率,而且我亲身学过的。

    后续文章:

    上面每个学习步骤还可以细分开来,这是接下来文章的重点。比如 python 怎么学,cs229 和 cs231 学习过程中会碰到什么困难,kaggle 怎么用,数学还跟不上怎么办?后续都会一一说明。

    欢迎转载,但请注明出处,尊重作者,谢谢大家了!

    公众号:learningthem

    更多干货,会继续分享

    8 条回复    2018-09-20 19:46:20 +08:00
    zhzer
        1
    zhzer  
       2018-08-16 09:27:01 +08:00
    还以为是讲 SLAM 的呢
    确实干货,赞一个
    Carlgao
        2
    Carlgao  
       2018-08-16 10:10:13 +08:00
    感谢楼主分享
    asher2
        3
    asher2  
       2018-08-18 15:03:16 +08:00
    感谢楼主的分享,
    q7695650
        4
    q7695650  
    OP
       2018-08-22 14:39:55 +08:00
    @asher2 客气哈
    q7695650
        5
    q7695650  
    OP
       2018-08-22 14:40:18 +08:00
    @Carlgao 客气哈
    ksharp8
        6
    ksharp8  
       2018-08-24 09:10:49 +08:00
    搜索 a*算法
    DAPTX4869
        7
    DAPTX4869  
       2018-09-07 09:29:13 +08:00
    谢谢分享,上班打酱油的时候学习下
    SpiderXiantang
        8
    SpiderXiantang  
       2018-09-20 19:46:20 +08:00
    谢谢楼主
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1282 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 17:59 · PVG 01:59 · LAX 09:59 · JFK 12:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.