零基础自学人工智能路径规划,附资源,亲身经验

下面的每个资源都是我亲身学过的,且是网上公开公认最优质的资源。
下面的每个学习步骤也是我一步步走过来的。
希望大家以我为参考,少走弯路。
请大家不要浪费时间找非常多的资料,只看最精华的!

综述,机器学习的自学简单来说分为三个步骤
前期:知识储备包括数学知识,机器学习经典算法知识,编程技术(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竞赛可以给你的简历增分不少,里面有入门级别到专家级别的实战案例,满足你的各方面需求。之后再细说。

补充:
学到这个水平,应该是能够实习的水平了,还有很多后面再说吧。比如深度学习和机器学习的就业方向,深度学习得看论文,找工作还得对你得编程基础进行加强,具体就是数据结构与算法,我当年在这个上面可是吃了很大的亏。
这里面关于深度学习和机器学习的就业其实是两个方向,上面的其实也没有说全。一般来说,你得选择一个方向专攻。我建议的是,自学的最好在后期侧重机器学习方向,而不是深度学习。深度学习的岗位实在是太少,要求太高。机器学习还算稍微好点。

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

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

原文地址:http://blog.51cto.com/13881998/2154350

时间: 2024-10-10 08:59:39

零基础自学人工智能路径规划,附资源,亲身经验的相关文章

零基础自学人工智能,看这些资料就够了(300G资料免费送)

为什么有今天这篇?首先,标题不要太相信,哈哈哈. 本公众号之前已经就人工智能学习的路径.学习方法.经典学习视频等做过完整说明.但是鉴于每个人的基础不同,可能需要额外的学习资料进行辅助.特此,向大家免费发送近300G的人工智能从基础到实战的全系列视频,有需要的可以领取.注意:视频很多,按需观看. 教程说明:本套教程属于人工智能.机器学习.深度学习.自然语言处理方向的教程,涵盖python基础.python高级教程.大数据.数据分析.数据挖掘.高等数学.概率论统计.算法结构.量化交易.Kaggle.

python零基础自学——前篇自白

首先声明,本人就是个菜鸟,小白一个,在这里记录我自学python时的点点滴滴,用于我的经验积累以及复习.当然,若有零基础自学的人看见,交流学习经验那就最好不过了. python其实对零基础的小白来说就再适合不过了,为什么这么说,个人对编程的理解就是高.大.上.总感觉都是些BT才可以玩这个的. 我自己创业,开公司有过好的时候,但最后都倒闭了,积累如此阅历,却回首发现,自己没有一项术语自己的专业既能.所以就想学习编程.跟专业朋友交流以后,都推荐我学习python.原因有以下几点: 一:简单. 因为是

PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念

PowerShell_零基础自学课程_5_自定义PowerShell环境及Powershell中的基本概念 据我个人所知,windows下的cmd shell除了能够通过修改系统参数来对其中的环境变量进行改变外,其环境的可自定义性相对来说很困难,而在Linux环境中,可以通过修改/etc目录下的某些配置文件来达到配置shell环境的目的.也许这也是某些人诟病cmd shell功能不强的原因之一. 而目前这种状况在windows powershell中得到了改善,可以说PS中提供的自定义环境的功能

讨教大学:零基础自学编程,选JAVA,Python还是PHP?

越来越多非科班出身的人也义无反顾的投身到了IT互联网行业,加入了码农大军.但是对于非科班自学编程的朋友们来说,考虑的第一个问题一定是:我该从哪一个语言开始学起?在这里小编就为大家介绍一下零基础自学几大主流语言的优劣势. 首先从这几大语言的难度谈起,不同语言门槛和难度不同,Python<PHP<JavaScript<Java<C++.也就是说,Python是最好入门的一种语言,兼具易学性和趣味性,学几天就可以做出一些有意思的小功能出来.这也给了初学者学下去的信心和兴趣,不至于啃书几天

零基础自学前端 D3.js 初体验03 柱状图+排序

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>d3</title> </head> <script src="https://d3js.org/d3.v4.min.js"></script> <body> <button type="button"

小猿圈web前端开发讲师:零基础自学html5开发方法

web前端开发目前市场使用率随着需求逐年递增.越来越多的年轻人转行进入了web前端开发领取.html5强大的功能是有目共睹的,本属自身独特的优势让这一技术越来越受欢迎,相比于原生APP,html5已经逐渐在用户体验生无限接近,再加上低廉的开发成本和强大的适配功能,早已经可以俘获开发商和开发者的芳心,本文小猿圈web前端开发讲师介绍零基础如何自学html5开发? 小猿圈web前端开发讲师:零基础自学html5开发方法: 1.拒绝插件,遇到交互效果就选择扒插件,这是一种非常不可取的方法,在这种情况之

月薪12k的零基础自学前端必备手册

随着互联网的深入发展,前端开发工程师一跃成为市场上非常抢手的人才.很多同学,包括以前做UI的.Java的.或者对于IT完全零基础的同学都想学习前端.下图是网上流传甚广的一张前端学习思维导图,很多初学者表示看到这些密密麻麻的知识点就已经晕了.确实,前端是一门涵盖面很广的学科.但是想学前端的你也不用慌张,内容虽多但有迹可循,只要循序渐进就不怕学不好前端! 那么对于零基础的一个学员该怎么学习前端呢? 工具篇 工欲善其事,必先利其器,所以在开始之前选择一个合适好用的编辑器是很重要的,工具不再多,在于好用

零基础自学Python 3开发网络爬虫(二): 用到的数据结构简介以及爬虫Ver1.0 alpha

上一回, 我学会了 用伪代码写出爬虫的主要框架; 用Python的urllib.request库抓取指定url的页面; 用Python的urllib.parse库对普通字符串转符合url的字符串. 这一回, 开始用Python将伪代码中的所有部分实现. 由于文章的标题就是"零基础", 因此会先把用到的两种数据结构队列和集合介绍一下. 而对于"正则表达式"部分, 限于篇幅不能介绍, 但给出我比较喜欢的几个参考资料. Python的队列 在爬虫程序中, 用到了广度优先搜

零基础学习Java技术规划

Java编程是一个技术活,没有专业知识,那是行不通的.这也决定了程序员的不可替代性,不是你随便招一个人就可以立马开工. 很多人在转行跨界去接触一个自己从来不懂的行业时往往内心充满了恐惧,也许会高估了这个行业的难度,当然Java编程行业的难度还是有的,不是谁都能随随便便成功. 作为一个零基础的小白,我们该如何高效率的学习Java技术呢?我们老师给我们提出了以下三点: ? 第一:目标明确 因为是转行过来的,明确目标很重要.比如我们已经选定了要学习Java,就要一鼓作气,不能做墙头草,随风倒,看到网上