本文转载自:机器学习初学者
作者 :黄海广
资料太多!!!看不完!!!不知道如何取舍!!!
我曾经写了一篇初学者入门的文章:《这篇文章给初学者指明了学习的方向,受到广大初学者好评。
在此基础上,结合本站已经发过的文章,整理出一个机器学习的入门路线,本路线适合本科、硕士以及刚接触机器学习的博士。
入门以后,遇到问题能上网搜索解决了,也知道接下来应该学什么。
一、机器学习的数学基础
数学分析(微积分),线性代数,概率论,统计,应用统计,数值分析,常微分方程,偏微分方程,数值偏微分方程,运筹学,离散数学,随机过程,随机偏微分方程,抽象代数,实变函数,泛函分析,复变函数,数学建模,拓扑,微分几何,渐近分析......
以上内容可能引起初学者不适。
其实大部分人学习机器学习的目的,只要会用机器学习算法及工具,解决一些问题,了解算法的基本原理即可,并不需要学得那么深入。没有几个人能像博士一样扎实地学好数学基础,只是希望快速入门机器学习,那么只需要掌握必要的几个基础点就好了。机器学习的数学最主要是高等数学、线性代数、概率论与数理统计三门课程,这三门课程应该是本科必修的。本站整理了一个简易的数学入门文章。
本站推荐文章:
如果真的忘了基础公式,那就看下上面这篇文章:,可以把这篇文章提供下载数学资料看一遍,不需要全看懂,但是基础的公式要大致明白,能从资料中查找公式,里面有两个公式总结材料:a.机器学习的数学基础.docx(中文版,对高等数学、线性代数、概率论与数理统计三门课的公式做了总结) ,b.斯坦福大学机器学习的数学基础.pdf(原版英文材料,非常全面,建议英语好的同学直接学习这个材料)。
二、经典的机器学习资料和教程
1)吴恩达《机器学习》公开课
原课程地址:coursera.org/course/ml
机器学习入门的最佳教程应该是吴恩达老师的《机器学习》公开课,这门课面向初学者,注重实际应用,并不侧重数学推导。这门课开课较早,但到现在仍然是最火的机器学习公开课,评分非常高,课程配套作业(octave版本)。
学习这个课程注意事项:
第五章Octave教程、第十八章应用实例,这两章可以不用学,有点过时了。
原版的octave作业可以不用做,可以做修改过的python版本作业。
如果和吴恩达老师的《深度学习》公开课一起看,第四、五、六周的内容可以直接学习《深度学习》的相关内容。
这个教程建议在三个月内看完,如果有些地方看不懂,没关系,以后用到的时候再回头看看。
这个课程建议配合课程笔记一起看。本站已经提供了笔记下载
2)
把机器学习的概念做成背托福单词的随身小抄一样方便!分分钟搞定机器学习各种记不住的概念!这篇建议用一周时间看完,注意是略读,有些地方不懂没关系,做下记录,以后用到的时候再查。
3)
《统计学习方法》详细介绍支持向量机、Boosting、最大熵、条件随机场等十个统计学习方法。对数学基础有一定要求,这是经典中的经典,很多国内的网课,互联网企业的面试、笔试题目,或多或少,参考了这本书的内容,对初学者来说,有点难度,但是,如果想通过面试笔试,这本书应该要看懂,试着推导下算法。
本站用python实现了大部分算法,建议试着运行下。
4) 台湾大学林轩田老师的《机器学习基石》、《机器学习技法》课程
台湾大学林轩田老师的《机器学习基石》《机器学习技法》课程由浅入深、内容全面,基本涵盖了机器学习领域的很多方面。其作为机器学习的入门和进阶资料非常适合。
这门课有一个配套教材:《Learning From Data》(LFD),林轩田也是编者之一。这本书的主页为:http://amlbook.com/。豆瓣上关于这本书的评分高达9.4,还是很不错的,值得推荐!可以配套视频一起学习。这本书内容通俗易懂,非常精彩,不是单纯罗列公式,是一本非常适合入门的机器学习书籍。
5) 吴恩达《深度学习》公开课
原课程地址:www.deeplearning.ai
这个视频教程用最简单的方式,把深度学习的主要算法和框架讲得非常清楚,课程附带代码作业和测试题作业,学完以后,深度学习就算入门了。每章的学习建议:
第一章:神经网络与深度学习
部分内容是《机器学习》公开课的第四、第五周的升级版
第二章:改善深层神经网络
这部分内容基本没有和《机器学习》公开课有重合部分。
第三章:结构化机器学习项目
部分内容是机器学习的第六周的升级版。
第四章:卷积神经网络
这部分主要用于图像、目标检测方面的,相当于斯坦福CS231n深度学习与计算机视觉-李飞飞主讲的课程的简化。
第五章:序列模型
这部分主要用于自然语言处理,注意一点:RNN/LSTM结构里的符号,和原始论文有点不一样,我们平时的博客、论文的符号,跟吴恩达老师的课程的符号略有区别。
6) 李宏毅讲义
台大李宏毅教授的深度学习讲义,这是我见过最容易懂的深度学习入门资料,300多页的讲义能系统、通俗易懂地讲清楚深度学习的基本原理,如同机器学习小抄一样生动形象。
建议用几天时间把这个讲义浏览一次,可以基本了解什么是深度学习,深度学习有什么用。
本站整理的推荐文章:
吴恩达老师《机器学习》和《深度学习》课程的视频、笔记、python代码作业的下载。
github地址:https://github.com/fengdu78
机器学习小抄下载。
统计学习方法的python代码实现,本文被机器之心公众号转载过。
github地址:https://github.com/fengdu78/lihang-code
吴恩达机器学习的作业python实现。
吴恩达《深度学习》测试题翻译和解答,面试笔试必备。
三、学好编程语言
如果只是入门,仅推荐Python这门编程语言。
机器学习主要的代码工具为Python,Python学习到底要学到什么程度?个人感觉:入门最重要,至少要学到碰到问题能查百度的程度。
1) Python安装:
关于python安装包,我推荐下载Anaconda,Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,可以很方便地解决多版本Python并存、切换以及各种第三方包安装问题。下载地址:https://www.anaconda.com/download/ 推荐选Anaconda (python 3.7版本)
IDE:推荐使用pycharm,社区版免费,下载地址:https://www.jetbrains.com/
2) python入门的资料推荐
a.《利用python进行数据分析》
这本书含有大量的实践案例,你将学会如何利用各种Python库(包括NumPy、pandas、matplotlib以及IPython等)高效地解决各式各样的数据分析问题。这个是我看的第一本python入门资料,如果把代码都运行一次,基本上就能解决数据分析的大部分问题了。
下载地址:建议购买书,源代码可以上百度搜索。
注意:第二版中文翻译已经有人写了,建议搜索下载。
b.python入门笔记
作者李金,这个是jupyter notebook文件,把python的主要语法演示了一次,值得推荐。
下载地址:https://pan.baidu.com/s/1snmeqlR 密码:hkv8
c.南京大学python视频教程
这个教程非常值得推荐,python主要语法和常用的库基本涵盖了。
视频下载地址:https://yun.baidu.com/s/1cCbERs 密码:7thx
看完这三个资料,python基本入门了,同时可以使用scikit-learn等机器学习库来解决机器学习的问题了。
3) 深度学习主要框架的学习
深度学习的主要框架,最基础的,应该是Tensorflow和Keras。教程很多,可以选择性地学一下,本站推荐简便的入门方法:
a.Tensorflow入门
吴恩达《深度学习》公开课第二门课3.11介绍了Tensorflow的基本用法(p251),这些用法会了以后,基本上能看懂大部分代码了,结合该课程的代码作业,不懂的地方搜百度都能搜到了。
此外有个资源要推荐下:
资源地址:
https://github.com/aymericdamien/TensorFlow-Examples
本资源旨在通过示例轻松深入了解TensorFlow。 为了便于阅读,它包括notebook和带注释的源代码。
它适合想要找到关于TensorFlow的清晰简洁示例的初学者。 除了传统的“原始”TensorFlow实现,您还可以找到最新的TensorFlow API实践(例如layers,estimator,dataset, ......)。
b.Keras入门
《python深度学习》书和配套代码,由Keras之父、现任Google人工智能研究员的弗朗索瓦•肖莱(François Chollet)执笔,详尽介绍了用Python和Keras进行深度学习的探索实践,包括计算机视觉、自然语言处理、产生式模型等应用。书中包含30多个代码示例,步骤讲解详细透彻。
作者在github公布了代码,代码几乎囊括了本书所有知识点。在学习完本书后,读者将具备搭建自己的深度学习环境、建立图像识别模型、生成图像和文字等能力。但是有一个小小的遗憾:代码的解释和注释是全英文的,即使英文水平较好的朋友看起来也很吃力。
本站对全部代码做了中文解释和注释,并下载了代码所需要的一些数据集(尤其是“猫狗大战”数据集),并对其中一些图像进行了本地化,代码全部测试通过。(请按照文件顺序运行,代码前后有部分关联)。
本站认为,这本书和代码是初学者入门深度学习及Keras最好的工具。
c.Pytorch入门
资源地址:
https://github.com/yunjey/pytorch-tutorial
这个资源为深度学习研究人员提供了学习PyTorch的教程代码大多数模型都使用少于30行代码实现。 在开始本教程之前,建议先看完Pytorch官方教程。
本站推荐文章:
《python深度学习》电子书及中文注释代码下载。
python绘图基础
在平时工作中,好多程序员都在为变量的命名纠结不已,随便命名怕以后看不懂,想好好命名可是自己的英文水平又不好,在这个命名上可能需要花费大量的时间,会耽误到开发的效率,这个神器可以摆脱变量命名纠结!
四、论文相关和大师之作
英文不好的话,输入论文名称,通常能查到该论文的中文内容的博客和文章,这样稍微轻松点。
本站推荐文章:
徐亦达教授在github公布了他的历年机器学习相关课件、视频,黄海广博士协助徐亦达老师对课件目录进行翻译和整理,并提供下载。
Zotero作为一款协助科研工作者收集、管理以及引用研究资源的免费软件,如今已被广泛使用。此篇使用说明主要分享引用研究资源功能,其中研究资源可以包括期刊、书籍等各类文献和网页、图片等。
五、参加实际项目
通常,在2-3个比赛能达到top1%的成绩,代码能力基本没有问题了。
但是,不建议在比赛中花太多时间,比赛大部分时间是用于特征工程,在实际工作中并不一定能用上,只要能解决问题就行了,其他时间用于学习吧。
本站推荐文章:
六、多和学习者交流
本站有6个qq群,1/2/3/4群为2000群,5/6群为3000群。
现在5群还有空缺,群号:774999266,欢迎加入(原先的公众号文章公布的qq群已经满了)。
总结和建议
请关注和分享↓↓↓