# 如何开始机器学习：自学蓝图

> 原文： [https://machinelearningmastery.com/get-started-machine-learning/](https://machinelearningmastery.com/get-started-machine-learning/)

您如何开始机器学习，特别是深度学习？最近在机器学习 sub-reddit 中询问了这个[问题。](http://www.reddit.com/r/MachineLearning/comments/2p9lz0/suggestions_for_a_beginner/)

具体来说，问题的原始海报已经完成了 [Coursera 机器学习课程](https://www.coursera.org/course/ml)，但感觉他们没有足够的背景来开始深度学习。

我写了一篇[冗长的回复](http://www.reddit.com/r/MachineLearning/comments/2p9lz0/suggestions_for_a_beginner/cmv760d)，我认为这可能对一般情况下有帮助的其他人有所帮助。

在这篇文章中，我重申了我的回答，并通过您可以用来开始的链接和引用来详细说明。

你完成了 Coursera 机器学习吗？您是否希望深入了解特定算法（如随机森林或深度学习）或竞赛（如 Kaggle），但感觉您不能因为您缺少背景知识的一些关键要素？

如果这些问题引起共鸣，那么这篇文章就是为你而写的。

[![How To Get Started In Machine Learning](img/4e6ecaae6570a23343756933349d7533.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/12/How-To-Get-Started-In-Machine-Learning.jpg)

如何开始机器学习
摄影： [Sheila Sund](http://www.flickr.com/photos/sheila_sund/8983237721) ，保留一些权利

## 现在开始

深度学习很有意思。它已被证明可以在硬问题上实现最先进的结果，并且有一些库可以将这些方法应用到您的 PC 现成的标准数据集中。

通过处理一些问题，甚至可能尝试复制一些有趣的结果，你可以很快地学到很多东西。

我的默认答案是不要等到学习技术 x。如果深度学习是你想要的工作，那么就开始工作吧。不要等待假想的看门人授予你许可。

同样的论据适用于大数据入门，Kaggle 比赛或机器学习的任何其他方面。

**停止“准备就绪”，而不是“开始工作”在您最感兴趣的区域。**

根本问题是自我限制的信念，这些是关于你自己的信念，阻碍你的进步。我在帖子“什么阻碍了你的机器学习目标？”中详细介绍了这一点。

## 机器学习自学蓝图

通过理解它只是适用于特定类别问题的另一类算法（文本，音频和图像等复杂数据类型，与表格数据不同），可以明智地为深度学习添加上下文。

更广泛的途径可能是深入学习，作为更广泛的机器学习自学的一部分。

鉴于您已经完成了 Coursera 机器学习课程，您将拥有一个清晰的基础来构建。我建议以下内容，为自学和获得结果量身定制（与正式学习和理论相对）。

### 1.学习和实践应用机器学习的过程。

*   学习解决问题的逐步过程（ [KDD](http://machinelearningmastery.com/what-is-data-mining-and-kdd/ "What is Data Mining and KDD") ， [Crisp-DM](http://en.wikipedia.org/wiki/Cross_Industry_Standard_Process_for_Data_Mining) ， [OSEMN](http://www.dataists.com/2010/09/a-taxonomy-of-data-science/) ，等等）。
*   学习一个现成的工具或工具链，让你重复这个过程（如 [WEKA](http://machinelearningmastery.com/how-to-run-your-first-classifier-in-weka/ "How to Run Your First Classifier in Weka") ， [scikit-learn](http://machinelearningmastery.com/a-gentle-introduction-to-scikit-learn-a-python-machine-learning-library/ "A Gentle Introduction to Scikit-Learn: A Python Machine Learning Library") 或 [R](http://machinelearningmastery.com/what-is-r/ "What is R") ）。
*   在适合内存的小型标准数据集上实现该过程（如 [UCI 机器学习库](http://archive.ics.uci.edu/ml/)上的那些）。

这将建立您对工作问题的信心，并解决出现的新问题。您还将开始了解算法和技能的适用位置，找出您擅长的内容以及您需要处理的内容，从而优先考虑您接下来要学习的内容。

也许你决定深入一个领域并成为一名专家，也许你决定做广泛的事情并帮助作为数据科学家的业务。

通过“[处理机器学习问题](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/ "Process for working through Machine Learning Problems")的过程”中的特定步骤链接，了解有关应用机器学习过程的更多信息。

### 2.建立已完成工作的组合。

*   使用上面＃1 中的项目作为已完成工作组合的基础。
*   确保每个项目/结果 100％可重复（使用脚本或逐步说明或其他）。
*   为每个项目创建半正式的工作产品，分享已完成的工作，如何完成以及学习内容（在每个仓库上使用 GitHub README 文件，撰写博客文章，创建 PDF 技术报告，强力点等等）。

这将毫不含糊地证明您可以完成项目。当您利用所学知识并且可以用来向第三方展示您不断增长的技能和能力，如果您开始寻找工作，它将使您有信心接受更大，更有趣的项目。

在“[构建机器学习组合：完成小型项目并展示您的技能](http://machinelearningmastery.com/build-a-machine-learning-portfolio/ "Build a Machine Learning Portfolio: Complete Small Focused Projects and Demonstrate Your Skills")”中了解有关构建机器学习项目组合的更多信息。

### 3.设计和执行小型自学项目。

*   扩展＃2 的半正式工作产品的方法，并使用自学来填补你的空白。
*   深入研究算法（确保学习算法，还有数据准备方法，或者您需要的任何区域）
*   深入研究问题（一个特定的问题实例，例如来自 Kaggle，或研究一类问题）
*   深入研究工具（研究工具并弄清楚如何在您的过程中最好地使用它，深度学习工具可以适用于此处）

这将为您提供系统化的流程，您可以使用它来填补机器学习中针对您个人目标的任何空白。您可以使用它来更好地应用算法（如随机森林），以更好地理解方法的数学（如 SVD）。只有当你需要它时才能得到你需要的东西（而不仅仅是你需要的时候）。

了解更多关于设计和执行自学项目的信息，我称之为“_ 小项目方法 _”，后期“ [4 自学机器学习项目](http://machinelearningmastery.com/self-study-machine-learning-projects/ "4 Self-Study Machine Learning Projects")”描述了这种方法。

**你永远不会知道足够的统计量，数学或编程等等。** 这些并非真正有限的主题。

如果您对机器学习真的很感兴趣，那么您需要做的研究将是终生的，您需要系统和信心来有效地进行研究。