给初学者入门人工智能的路线及资料下载
- 先说说大概需要哪些基础的知识储备
机器学习正规学习路
- 如何学好机器学习?正规路线大概是这样的:
1.学好数学基础
- 数学分析(微积分),线性代数,概率论,统计,应用统计,
- 数值分析,常微分方程,偏微分方程,数值偏微分方程,
- 运筹学,离散数学,随机过程,随机偏微分方程,抽象代数,
- 实变函数,泛函分析,复变函数,数学建模,拓扑,微分几何,渐近分析……
2.学习经典机器学习书和教程
- 经典书籍:Duda的《模式分类》、Mitchell的《机器学习》、李航的《统计学习方法》、周志华的《机器学习》……
- 吴恩达:《机器学习》公开课、《深度学习》公开课。
- 林轩田:《机器学习基石》、《机器学习技法》。
- ……
3.学好编程语言
- 精通Python、Java、R、MATLAB、C++等编程语言。
4.阅读论文
- 学好英语,熟读经典论文,并且读最新的机器学习论文,如顶级会议论文等,掌握最新的技术方向。
5.参加实际项目
- 如大厂实习、参加Kaggle、天池等数据竞赛……
- 按照以上路线学完以后,虽然不一定能成为业界大牛,博士毕业完全没有问题了。
以上方法存在的问题:
- 我们物理系的大部分学习者的学习目的不是为了科研,而是希望把机器学习作为工具来使用。
- 大部分学习者时间有限,学不完这么多资料,不知道如何取舍。
- 有些资料太难,作者假设学习者有一定的基础,对一些步骤进行了省略,好多初学者看了的感觉是这样的:
- 其实大部分人学习机器学习的目的,只要会用机器学习算法及工具,解决一些问题,了解算法的基本原理即可,并不需要学得那么深入。
- 上面的学习路线,第一条就劝退了好多人了。没有几个人能像博士一样扎实地学好数学基础,也没有几个人能读完经典著作和热门教程,只是希望快速入门机器学习。
- 在这种情况下,我只能推荐下 快速的机器学习入门路线 邪派武功不香么?
快速的机器学习入门路线
1.基础知识
- 熟悉基本的数学知识,最主要是高等数学、线性代数、概率论与数理统计三门课程
- 以上内容 微积分和线性代数基本在<高等数学>书里都有, 再看一本<概率论与数理统计>
- 英语好的的同学可以直接看 斯坦福的机器学习数学基础课件(原版英文材料,非常全面,建议英语好的同学直接学习这个材料)
- 本人非常建议打好数学基础,数学基础决定了机器学习水平能够达到的高度 我现在深以为然
。
- 但是,如果学习时间太少,又想入门机器学习,以上数学随便翻翻懂个大概也行吧..
- 参见文章机器学习需要哪些数学基础?, 相关网上公开课资源 见 关于数据科学&机器学习,19个数学和统计学公开课推荐
2.机器学习的教程
- 机器学习入门的最佳教程肯定是吴恩达老师的《机器学习》公开课
- 隆重推荐 网易云课堂的吴恩达课程
- 这里再给一份 吴恩达课程笔记和作业.pdf
- 上面内容应该花 一周时间可以浏览完. 回头反复看,还会有更多收获.
- 这个系列后面还有更多课程,建议由浅入深逐步完成.
- 后面是专门讲神经网络CNN模型的李飞飞cs231n视频课程: 链接: cs231n 李飞飞的CNN图形识别课程 百度网盘 密码: 2fnk
3.学好编程语言
- 由于只是入门,仅需要学好python这门编程语言。花时间在这门语言上,买不了吃亏买不了上当,是未来做研究的大杀器.
- 目前来说机器学习主要的代码工具为python,那python学习到底要学到什么程度?个人感觉:入门最重要,至少要学到碰到问题能查百度的程度。
- 我这里也提供了很多课程,今年新写的一系列python讲义:
- 在 从零开始学习python2020 这里学习 python 的基础知识, 数据处理和作图方法
- 在 从零开始学习 -机器学习 之-=基础篇=- 从Sklearn学起 这里学习 机器学习 之-=基础篇=-
- 在 从零开始学习 - 机器学习 之-=卷积神经网络(CNN)=- 这里学习 机器学习 之-=卷积神经网络(CNN)=-
4. 深度学习主要框架的学习
- 深度学习的主流框架应该是Tensorflow和pytorch, 前台是Keras。教程很多,我也想再写一个相关的入门课件,但是涉及到的基础知识太多(同时改版迭代速度太快). 一直没有成功.
- 《python深度学习》由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,包括计算机视觉、自然语言处理、产生式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。
- 作者在github公布了代码,代码几乎囊括了本书所有知识点。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力
5.阅读论文
1) 学好英语,读一些优秀论文
- 选择性地读一些经典论文,英语真的不好,就输入论文题目搜下百度,很多博客会对经典论文有详细的解释。
- 看论文的关键:复现作者的算法。
- 根据论文,复现成功算法后,通常就能对论文有深刻的理解了。经典论文都是可以复现的,github都有,最新的优秀论文,通常也能搜到代码。
2) 学会整理论文
- 论文基本都可以在https://arxiv.org 上找到,
- 读过的论文分类整理下,推荐下论文管理神器zotero,功能强大,可以在论文上记笔记,并支持不同电脑之间的同步。
6.参加实际项目
- 如果有大厂的实习机会,尽量去,能学到不少东西。
- 没有实习机会,可以尝试参加下kaggle比赛,不一定要取得多少名次,可以搜搜历次比赛,下载数据,下载别人的公开代码,复现下。
- 国内也有类似的比赛,如天池,DF等。
- 通常,在2-3个比赛能达到top1%的成绩,代码能力基本没有问题了。
- 但是,不建议在比赛中花太多时间,比赛大部分时间是用于特征工程,在实际工作中并不一定能用上,只要能解决问题就行了,其他时间用于学习吧。
每日迭代,与君共勉! 以上~ — 俞熹 2020/09/29 11:18