良心推荐:机器学习入门资料汇总及学习建议(2018版)

原文链接: https://mp.weixin.qq.com/s/5BqOEbpzqH1wO2yB0Qfs_w#rd

本文转载自:机器学习初学者

作者           :黄海广

机器学习初学者公众号自从2018年10月开设以来,发表了不少机器学习入门的宝贵资料,受到广大机器学习爱好者的好评,本文对2018年本站发过的文章进行分类和汇总,以便初学者更好地学习。(作者:黄海广)

良心推荐:机器学习入门资料汇总及学习建议(2018版)_第1张图片

机器学习入门,初学者遇到的问题非常多,但最大的问题就是:

资料太多!!!看不完!!!不知道如何取舍!!!

我曾经写了一篇初学者入门的文章:这篇文章给初学者指明了学习的方向,受到广大初学者好评。

在此基础上,结合本站已经发过的文章,整理出一个机器学习的入门路线,本路线适合本科、硕士以及刚接触机器学习的博士

入门以后,遇到问题能上网搜索解决了,也知道接下来应该学什么。

 一、机器学习的数学基础

正规的机器学习数学基础主要有:

数学分析(微积分),线性代数,概率论,统计,应用统计,数值分析,常微分方程,偏微分方程,数值偏微分方程,运筹学,离散数学,随机过程,随机偏微分方程,抽象代数,实变函数,泛函分析,复变函数,数学建模,拓扑,微分几何,渐近分析......

以上内容可能引起初学者不适。

其实大部分人学习机器学习的目的,只要会用机器学习算法及工具,解决一些问题,了解算法的基本原理即可,并不需要学得那么深入。没有几个人能像博士一样扎实地学好数学基础,只是希望快速入门机器学习,那么只需要掌握必要的几个基础点就好了。机器学习的数学最主要是高等数学线性代数概率论与数理统计三门课程,这三门课程应该是本科必修的。本站整理了一个简易的数学入门文章。

本站推荐文章:

  • 如果真的忘了基础公式,那就看下上面这篇文章:,可以把这篇文章提供下载数学资料看一遍,不需要全看懂,但是基础的公式要大致明白,能从资料中查找公式,里面有两个公式总结材料: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

  • 台湾大学林轩田老师的《机器学习基石》、《机器学习技法》课程习题解答。本站实现了课程教材的绝大部分习题,并作了详细的笔记,在github予以分享。

    github地址:https://github.com/Doraemonzzz/Learning-from-data

  • 台大李宏毅教授的深度学习讲义。

  • 吴恩达机器学习的作业python实现。

  • 吴恩达《深度学习》测试题翻译和解答,面试笔试必备。

 三、学好编程语言

机器学习理论上需要精通Python、Java、R、MATLAB、C++等编程语言。

如果只是入门,仅推荐Python这门编程语言。

机器学习主要的代码工具为PythonPython学习到底要学到什么程度?个人感觉:入门最重要,至少要学到碰到问题能查百度的程度。

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深度学习》电子书及中文注释代码下载。

  • TensorFlow、Keras和Pytorch是目前深度学习的主要框架,也是入门深度学习必须掌握的三大框架,但是官方文档相对内容较多,初学者往往无从下手。本人从github里搜到三个非常不错的学习资源,并对资源目录进行翻译,强烈建议初学者下载学习,这些资源包含了大量的代码示例(含数据集),个人认为,只要把以上资源运行一次,不懂的地方查官方文档,很快就能理解和运用这三大框架。

  • python基础简易入门

  • python绘图基础

  • 在平时工作中,好多程序员都在为变量的命名纠结不已,随便命名怕以后看不懂,想好好命名可是自己的英文水平又不好,在这个命名上可能需要花费大量的时间,会耽误到开发的效率,这个神器可以摆脱变量命名纠结!

  • SQL语法简易入门资料。

  • 本文测试成功了Ubuntu18.04环境下配置深度学习环境(GPU:1080ti),包括:CUDA9.0+CUDNN7.4+TensorFlow1.8+Pytorch0.4的安装和测试,并提供相关软件下载。

 四、论文相关和大师之作

学好英语,熟读经典论文,并且读最新的机器学习论文,如顶级会议论文等,掌握最新的技术方向,要经常看技术类博客和文章,也要会写论文。

英文不好的话,输入论文名称,通常能查到该论文的中文内容的博客和文章,这样稍微轻松点。

本站推荐文章:

  • 徐亦达教授在github公布了他的历年机器学习相关课件、视频,黄海广博士协助徐亦达老师对课件目录进行翻译和整理,并提供下载。

  • 这是华校专老师多年以来学习总结的笔记,经整理之后开源于世。内容分为:数学基础、统计学习、深度学习、自然语言处理、计算机视觉、工具这几个方面。

  •  本文将介绍学位论文的页面布局,标题格式,文档生成列表,插入公式,页眉页脚,生成目录、表格和图片的交叉引用、插入参考文献、英语翻译校对等内容和技巧,学习内容偏多,同学们可以先收藏下来,慢慢学习。

  • Zotero作为一款协助科研工作者收集、管理以及引用研究资源的免费软件,如今已被广泛使用。此篇使用说明主要分享引用研究资源功能,其中研究资源可以包括期刊、书籍等各类文献和网页、图片等。

 五、参加实际项目

如果有大厂的实习机会,尽量去,能学到不少东西。没有实习机会,可以尝试参加下kaggle比赛,不一定要取得多少名次,可以搜搜历次比赛,下载数据,下载别人的公开代码,复现下。国内也有类似的比赛,如天池,DF等。

通常,在2-3个比赛能达到top1%的成绩,代码能力基本没有问题了。

但是,不建议在比赛中花太多时间,比赛大部分时间是用于特征工程,在实际工作中并不一定能用上,只要能解决问题就行了,其他时间用于学习吧。

本站推荐文章:

  • 公布了:BDCI2018面向电信行业存量用户的智能套餐个性化匹配模型数据竞赛top1解决方案和代码。该方案利用已有的用户属性(如个人基本信息、用户画像信息等)、终端属性(如终端品牌等)、业务属性、消费习惯及偏好匹配用户最合适的套餐,对用户进行推送,完成后续个性化服务。 (最终排名1/2546)

  • 公布了:BDCI2018供应链需求预测数据竞赛第一名的解决方案和代码。该方案利用赛题为运用平台积累最近1年多的商品数据预测45天后5周每周(week1~week5)的销量,为供应链提供数据基础,将能够为出海企业建立全球化供应链方案提供关键的技术支持。

  • 整理了一些NLP的入门资料参考,建议初学者看看。

  • 在计算广告和推荐系统中,CTR预估一直是一个核心问题。无论在工业界还是学术界都是一个热点研究问题,近年来也有若干相关的算法竞赛。本文介绍一个基于深度学习的CTR模型包DeepCTR,具有简洁易用、模块化和可扩展的优点。(本文作者:沈伟臣)代码主页:https://github.com/shenweichen/DeepCTR

 六、多和学习者交流

交流的方式有很多种,如参加学术活动、实验室讨论等,但我认为最有效的交流方式还是加入一些学术讨论组织,如微信群,qq群等。“闻道有先后术业有专攻”,不懂很正常,不懂就要问,“三人行,必有我师。”

本站有6个qq群,1/2/3/4群为2000群,5/6群为3000群。

现在5群还有空缺,群号:774999266,欢迎加入(原先的公众号文章公布的qq群已经满了)。

 总结和建议

本文提供的只是初学者的学习路线及资料,入门了以后,你就会知道哪方面的不足,自己也会找资料学习了。

同时建议时间充裕的同学,尽可能打好数学基础,如果基础不扎实,只会用一些工具和框架,相当于某些武术家只会耍套路,外行人觉得很厉害,但实战起来一定是鼻青脸肿。为什么机器学习从业人员学历越高,往往工资越高,通常和掌握的基础知识正相关。

请关注和分享↓↓↓ 

良心推荐:机器学习入门资料汇总及学习建议(2018版)_第2张图片

机器学习初学者

QQ群:774999266

你可能感兴趣的:(良心推荐:机器学习入门资料汇总及学习建议(2018版))