入门课程

Machine Learning is Fun! ,这篇文章(中文翻译版)恐怕是全世界最简单的入门资料了。

相关课程

接下来,我们需要比较专业地学习一下机器学习了。

在学习机器学习之前,我们需要学习数据分析,所以,我们得先学一些大数据相关的东西,也就是Data Science相关的内容。下面是两个不错的和数据科学相关的教程以及一个资源列表。
UC Berkeley’s Data 8: The Foundations of Data Science 和电子书 Computational and Inferential Thinking 会讲述数据科学方面非常关键的概念,会教会你在数据中找到数据的关联、预测和相关的推断。

Learn Data Science ,这是GitHub上的一本电子书,主要是一些数据挖掘的算法,比如线性回归、逻辑回归、随机森林、K-Means聚类的数据分析。然后,donnemartin/data-science-ipython-notebooks 这个代码仓库中用TensorFlow 、scikit-learn、Pandas、NumPy、Spark等把这些经典的例子实现了个遍。

Data Science Resources List ,这个网站上有一个非常长的和数据科学相关的资源列表,你可以从中得到很多你想要的东西。之后,有下面几门不错的在线机器学习的课程供你入门,也是非常不错。

吴恩达教授(Andrew Ng)在 Coursera 上的免费机器学习课程 非常棒。我强烈建议从此入手。对于任何拥有计算机或科学学位的人,或是还能记住一点点数学知识的人来说, 都应该非常容易入门。这个斯坦福大学的课程请尽量拿满分。可以在 网易公开课 中找到这一课程。除此之外,吴恩达教授还有一组新的和深度学习相关的课程,现在可以在网易公开课上免费学习——Deep Learning Specialization

Deep Learning by Google ,Google的一个关于深度学习的在线免费课程,其支持中英文。这门课会教授你如何训练和优化基本神经网络、卷积神经网络和长短期记忆网络。你将通过项目和任务接触完整的机器学习系统TensorFlow 。

卡内基梅隆大学汤姆·米切尔(Tom Mitchell )的机器学习 英文原版视频与课件PDF

2013年加利福尼亚理工学院亚瑟·阿布-穆斯塔法(Yaser Abu-Mostafa)的Learning from Data 课程视频及课件PDF,内容更适合进阶。

关于神经网络方面,YouTube 上有一个非常火的课程视频,由宾夕法尼亚大学的雨果·拉罗歇尔(Hugo Larochelle)的教学课程 - Neural networks class - Université de Sherbrooke

除此之外,还有很多的在线大学课程你可以学习。比如:
斯坦福大学的《统计学学习》、《机器学习》、《卷积神经网络》、《深度学习之自然语言处理》等。麻省理工大学的《神经网络介绍 》、《机器学习》、《预测》等。
更多的列表,请参看——Awesome Machine Learning Courses

相关图书

Pattern Recognition and Machine Learning》,这本书是机器学习领域的圣经之作。该书也是众多高校机器学习研究生课程的教科书,Google上有PDF版的下载。这本书很经典,但并不适合入门来看。GitHub上有这本中的 Matlab 实现

下面这两本电子书也是比较经典的,其中讲了很多机器学习的知识,可以当做手册或字典。
Understanding Machine Learning: From Theory to Algorithms》。
The Elements of Statistical Learning - Second Edition》。
Deep Learning: Adaptive Computation and Machine Learning series》 中文翻译为《深度学习》,又叫”花书”。这本书由全球知名的三位专家伊恩·古德费洛(Ian Goodfellow)、友华·本吉奥(Yoshua Bengio)和亚伦·考维尔(Aaron Courville)撰写,是深度学习领域奠基性的经典教材。
全书内容包括3部分:第1部分介绍基本的数学工具和机器学习的概念,它们是深度学习的预备知识;第2部分系统深入地讲解现今已成熟的深度学习方法和技术;第3部分讨论某些具有前瞻性的方向和想法,它们被公认为是深度学习未来的研究重点。这本书的官网为 “deeplearningbook.org”,在GitHub上也有中文翻译 - 《Deep Learning 中文翻》。

Neural Networks and Deep Learning》(中文翻译版),这是一本非常不错的神经网络的入门书,在豆瓣上评分9.5,从理论讲到了代码。虽然有很多数学公式,但是有代码相助,就不难理解了。其中讲了很多如激活函数、代价函数、随机梯度下降、反向传播、过度拟合和规范化、权重初始化、超参数优化、卷积网络的局部感受野、混合层、特征映射的东西。
Introduction to Machine Learning with Python》,算是本不错的入门书,也是本比较易读的英文书。其是以Scikit-Learn框架来讲述的。如果你用过Scikit这个框架,那么你学这本书还是很不错的。
Hands-On Machine Learning with Scikit-Learn and TensorFlow 》,这是一门以TensorFlow 为工具的入门书,其用丰富的例子从实站的角度来让你学习。这本书对于无基础的人也是适合的,对于小白来说虽然略难但是受益匪浅。

相关文章

除了上述的那些课程和图书外,下面这些文章也很不错。
YouTube 上的 Google Developers 的 Machine Learning Recipes with Josh Gordon ,这9集视频,每集不到10分钟,从Hello World讲到如何使用TensorFlow ,非常值得一看。
还有 Practical Machine Learning Tutorial with Python Introduction 上面一系列的用Python带着你玩Machine Learning的教程。Medium上的 Machine Learning - 101 ,讲述了好些我们上面提到过的经典算法。
Medium上的 Marchine Learning for Humans
Dr. Jason Brownlee 的博客 ,也非常值得一读,其中好多的 “How-To” ,会让你有很多的收获。Rules of Machine Learning: Best Practices for ML Engineering ,一些机器学习相关的最佳实践。i am trask ,也是一个很不错的博客。
关于Deep Learning中的神经网络,YouTube 上有介绍视频 Neural Networks。麻省理工学院的电子书 Deep Learning
用Python做自然语言处理Natural Language Processing with Python
最后一个是Machine Learning和Deep Learning的相关教程列表,Machine Learning & Deep Learning Tutorials 。下面是一些和神经网络相关的不错的文章。

The Unreasonable Efectiveness of Recurrent Neural Networks ,这是一篇必读的文章 ,告诉你为什么要学RNN,以及展示了最简单的NLP形式。
Neural Networks, Manifolds, and Topology ,这篇文章可以帮助你理解神经网络的一些概念。
Understanding LSTM Networks ,解释了什么是LSTM的内在工作原理。
Attention and Augmented Recurrent Neural Networks ,用了好多图来说明了RNN的attention机制。
Recommending music on Spotify with deep learning ,一个在Spotify的实习生分享的音乐聚类的文章。

相关算法

下面是10个非常经典的机器学习的算法。

对于监督式学习,有如下经典算法。
1. 决策树(Decision Tree ,比如自动化放贷、风控。
2. 朴素贝叶斯分类器(Naive Bayesian classifer),可以用于判断垃圾邮件、对新闻的类别进行分类,比如科技、政治、运动、判断文本表达的感情是积极的还是消极的、人脸识别等。
3. 最小二乘法(Ordinary Least Squares Regression,是一种线性回归。
4. 逻辑回归(Logisitic Regression,一种强大的统计学方法,可以用一个或多个变量来表示一个二项式结果。可以用于信用评分,计算营销活动的成功率,预测某个产品的收入。
5. 支持向量机(Support Vector MachineSVM,可以用于基于图像的性别检测、图像分类等。
6. 集成方法(Ensemble methods,通过构建一组分类器,然后通过它们的预测结果进行加权投票来对新的数据点进行分类。原始的集成方法是贝叶斯平均,但最近的算法包括纠错输出编码、Bagging和Boosting。

对于无监督式的学习,有如下经典算法。
1. 聚类算法(Clustering Algorithms。聚类算法有很多,目标是给数据分类。有5个比较著名的聚类算法你必需要知道:K-MeansMean-ShiftDBSCANEM/GMM、和 Agglomerative Hierarchical
2. 主成分分析(Principal Component AnalysisPCA。PCA的一些应用包括压缩、简化数据便于学习、可视化等。
3. 奇异值分解(Singular Value DecompositionSVD。实际上,PCA是SVD的一个简单应用。在计算机视觉中,第一个人脸识别算法使用PCA和SVD来将面部表示为”特征面”的线性组合,进行降维,然后通过简单的方法将面部匹配到身份。虽然现代方法更复杂,但很多方面仍然依赖于类似的技术。
4. 独立成分分析(Independent Component AnalysisICA。ICA是一种统计技术,主要用于揭示随机变量、测量值或信号集中的隐藏因素。
如果你想了解更全的机器学习的算法列表,你可以看一下Wikipedia上的 List of Machine Learning Algorithms

A Tour of Machine Learning Algorithms ,这篇文章带你概览了一些机器学习算法,其中还有一个”脑图”可以下载,并还有一些How-To 的文章供你参考。对于这些算法,SciKit-Learn有一些文档供你学习。
1. Supervised learning
2.3 Clustering
2.5. Decomposing signals in components (matrix factorization problems) 3. Model selection and evaluation
4.3. Preprocessing data

相关资源