# 你所知道的深度学习是一种谎言

> 原文： [https://machinelearningmastery.com/deep-learning-for-developers/](https://machinelearningmastery.com/deep-learning-for-developers/)

开始深度学习是一项艰巨的任务。

这是一场斗争，因为深度学习是由 _学者_ 教给 _学者_ 。

**如果您是开发人员（或从业者），那就不同了。**
**你想要的结果。**

实践者学习新技术的方式是通过快速快速实现价值的模型。

这是一种自上而下的学习方法，但这并不是深度学习的方式。

还有另一种方式。一种适用于像你这样的自上而下的实践者的方式。

在这篇文章中，您将了解这种方式。

_（我教这种方法并帮助超过 1,145 名开发人员
开始深入学习 python，[点击了解更多](http://machinelearningmastery.com/deep-learning-with-python/)_ ）

您会相信通过应用深度学习取得成功是可能的。我希望它能激励你迈出实现这一目标的第一步。

让我们开始。

![What You Think You Know About Deep Learning Is A Lie](img/a88ebb815922dc1277b935534416294a.png)

你认为你所知道的深度学习是一种谎言
照片由 [Simon Matzinger](https://www.flickr.com/photos/simonmatzinger/14598379523/) 拍摄，保留一些权利。

## 你想在深度学习中开始......
但你却与众不同

你没有高等数学相关的硕士或博士学位。

你不是机器学习专家。

你是一个有兴趣并且渴望开始使用[深度学习](http://machinelearningmastery.com/what-is-deep-learning/)的专业人士或学生。

### 也许你是开发人员

*   您想知道如何应用深度学习来解决复杂问题。
*   您需要深度学习技能来改善您的工作前景。
*   您希望深度学习成为您进入数据科学家（或类似）职业的杠杆。

### 也许你是一名数据科学家

*   您希望在未来的项目中使用深度学习。
*   您有一个棘手的问题，您认为深度学习可以提供帮助。
*   您需要深度学习技能才能保持跟进行业动态并掌控相关的领域。

### 也许你是学生

*   您需要深度学习技能来改善您的工作前景。
*   你有一个有趣的问题，你认为深度学习是一个很好的选择去解决问题。
*   你想要了解为什么深度学习如此受欢迎。

**其中一个原因适合你吗？**
请在评论中告诉我，我很想听听你的理由吗？

**你有进入深度学习的不同理由吗？**
请在评论中告诉我，我会给你个人建议。

进入深度学习领域的原因是多种多样的。

无论如何，你将和其他人一样被对待。像一个学者。

![Deep Learning Is NOT Just For The Academics](img/a6423d666cd09de47bcf0660509102c6.png)

深度学习不仅仅适用于学者
[Breyten Ernsting](https://www.flickr.com/photos/breyten/6424263261/) 的照片，保留一些权利。

## 深度学习是为了学者......谎言

深度学习是一个学术研究领域。

这个领域已经出现有很长一段时间了。该领域曾用于研究小型人工神经网络。现在的重点是更大的网络和更奇特的网络架构。该领域的突破仍然来自学术界。这个领域很年轻，也是很值得期待的。

这意味着深度学习的大部分信息都是由学者撰写的。它是为其他学者编写的，如研究人员，硕士和博士。学生们。

它不是像我们这样为开发人员编写的。

这就是你看到如下错误建议的原因：

> 你需要博士学位才​​能深入学习。

或者评论如下：

> 在进入深度学习之前，您需要 3 年的高级数学。

垃圾！

这就是为什么开始深度学习是一场如此艰难的斗争。这是一个挑战，开发人员认为他们只能通过回到学校，再过着 3 至 7 年背负债务的生活。

愚蠢至极！

您可以在几分钟内完成深度学习教程。您可以开始构建可用于展示您在该领域不断增加的技能的作品。你可以从今天开始。

## 编程仅适用于计算机科学家（不是）

编程过去很难，很具有理论性。

在有计算机之前，你需要了解很多数学知识才能理解编程。

[可计算性](https://en.wikipedia.org/wiki/Computability)和[完备性​​定理](https://en.wikipedia.org/wiki/G%C3%B6del%27s_completeness_theorem)之类的东西。

在编程的早期阶段，您必须定义自己的数据结构和基本算法。在算法和数据结构并无成果时才是这样，所以这需要很好地理解离散数学。

像[复杂性理论](https://en.wikipedia.org/wiki/Computational_complexity_theory)这样的东西。

这些理论性的知识领域可以帮助您成为更好的程序员和工程师。他们仍然在计算机科学课程中教授。

但是你和我都知道你不需要他们开始编程。如果您在大多数编程工作中工作，您甚至不需要这些相关知识。

**您调用排序例程，**
**您没有从第一原则中派生出新的排序操作。**

我们可以将这个类比扩展到深度学习吗？

您是否需要从第一原理推导出反向传播方程并从零开始实现？相反，我们可以在深度学习 API 上调用 model.fit（）。

## 等等......顶级工程师怎么样？

是的，顶级工程师可以推导出一种新的算法。

事实上，他们经常被雇用来做这件事。这是他们的工作。他们可以做简单的事情和更难的事情。他们可以调用 sort 例程并为业务数据派生一个新的排序方法，该方法太大而无法容纳到内存中。

我的观点是，这些功能不必先出现，它们可以在以后出现。

自顶向下。而不是自下而上。

这是关键。

就像现实世界中的实际编程一样。

## 自上而下的程序员（... _ 获得结果 _）

编程很有趣。

你学习这个功能。你学习了那个 API。您将自己的程序拼接在一起，发现您可以用自己的想法解决问题。

你很早就开始工作，只是随着时间的推移变得更有成效。您可以深入研究理论，以解决更具挑战性的问题。由你决定。

尽早提高工作效率有两个原因：

1.  它让你保持动力，让你保持参与。
2.  它可以让您尽早交付价值，从而提供动力。

**停下来太容易了。**
**放弃太容易了。**

这是强大的动力。你知道自己可以可以写一个程序来解决一个特定的问题。然后有信心实际实现和部署。

在最开始，代码和设计将变得糟糕。很难维护。不适合长期使用。但是随着经验积累，导师的引导和不断学习你的代码能力会变得更好。

这就是大多数 IT 运营的方式。自顶向下。不是自下而上的。

您没有参加计算机语言理论的大学课程来学习 Ruby on Rails，以用于您的下一个 Web 开发项目。您通过一些教程，犯了一些错误并熟悉平台。

重复下一个框架，下一个库。一次又一次。

重复深度学习。

## 深度学习不仅仅适用于学者

您可以从下至上学习深度学习。

这可能需要很多年和更高的学位，但你会对深度学习技术的理论有很多了解。

即使经过所有这些努力，您可能会或可能不知道如何在实践中将它们应用于实际数据。在大学里他们通常不会教授实践或职业技能。

学术教科书，视频课程和期刊论文是一个很好的资源。他们是思想的金矿。在开始深度学习时，它们不是开始的地方。

![Deep Learning Is For Academics, The Lie](img/99ef23d86f8af9e053b6b74255fdab0f.png)

深度学习是为学者，谎言
照片由 [Quinn Dombrowski](https://www.flickr.com/photos/quinndombrowski/7622139752/) ，保留一些权利。

## 专注于通过深度学习提供价值

深入学习商业和其他研究领域的价值在于可靠的预测。

了解如何使用深度学习来模拟问题。

开发（或参考）用于处理预测性建模问题的系统过程。然后再次应用它，一次又一次，直到你真正擅长提供问题的结果。

**善于应用深度学习。**
**我们都喜欢我们擅长的东西。**

如果你能做得很好而且可靠，那么你将拥有市场所需的宝贵技能。

您会发现自己正在深入研究的学术论文中的希腊字母，发送电子邮件或致电作者。所有这些都可以向你提供可以用来在下一个项目中获得更好模型表现的宝贵灵感。

## 是时候通过深度学习获得成功

现在，希望你相信你可以开始并善于应用深度学习。

现在是采取行动的时候了。现在是开始深度学习的时候了。

### 1.选择一个框架

我推荐 [Keras 平台](http://machinelearningmastery.com/introduction-python-deep-learning-library-keras/)。它支持 Python。这意味着您可以利用 scikit-learn 和整个 SciPy 生态系统进行深度学习项目。

这个很重要。

您基本上可以免费获得数据准备，模型评估和超参数优化。

Keras 还提供了从业者友好的 API（即简单直观）。它包含了 [Theano](http://machinelearningmastery.com/introduction-python-deep-learning-library-theano/) 和 [TensorFlow](http://machinelearningmastery.com/introduction-python-deep-learning-library-tensorflow/) 库的功效（以及不必要的复杂性）。它为您提供了前沿框架的速度和效率，而无需使用数十或数百行代码来完成某些工作。

我在 Keras 上有一些[教程，以及一个免费的 14 天迷你课程，请参阅：](http://machinelearningmastery.com/category/deep-learning)

*   [在 Python 迷你课程中应用深度学习](http://machinelearningmastery.com/applied-deep-learning-in-python-mini-course/)

### 2.选择一个流程

保持简单，但选择一个强大的骨架，您可以添加和定制您喜欢的技术和问题类型。

我喜欢在预测性建模项目中使用的一组很好的一般步骤是：

1.  **定义问题**：您试图解决的问题以及解决问题所需的数据和框架。
2.  **准备数据**：转换为应用于数据的内容，以创建最能将预测问题的结构暴露给模型的视图。
3.  **评估算法**：用于建模问题的技术，以及从不良解决方案中过滤好的指标。
4.  **改进结果**：使用什么参数调整甚至整体方法来充分利用正在工作的东西。
5.  **当前结果**：您取得的成果，经验教训以及您可以直接使用的已保存模型或预测集。

有关处理预测性建模问题的过程的更多信息，请参阅：

*   [处理机器学习问题的过程](http://machinelearningmastery.com/process-for-working-through-machine-learning-problems/)

### 3.选择一个问题

你需要练习。很多练习。

如果您对使用图像数据做出预测性建模感兴趣，请查找图像数据的所有标准机器学习问题并按照它们的方式进行操作。

文字数据？视频数据？使用相同的方法。

**了解如何使用您的流程获得结果。**
**然后学习如何获得好成绩。
然后是世界级的结果。**

标准机器学习数据集的好处是你有一个基准分数来比较你的结果。

还不确定你的偏好吗？从 UCI 机器学习库的标准数据集开始使用多层感知机（[这是一个教程](http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/)）。然后在标准物体识别问题上尝试卷积神经网络（[这里是一个教程](http://machinelearningmastery.com/object-recognition-convolutional-neural-networks-keras-deep-learning-library/)）。在简单的时间序列问题上转向 Recurrent Neural Networks（[这是一个教程](http://machinelearningmastery.com/time-series-prediction-lstm-recurrent-neural-networks-python-keras/)）。

然后，去挑战像 Kaggle 那样的机器学习竞赛中使用的更复杂的问题。进一步研究定义自己的问题并从创意共享中收集数据。

您的目标是开发一个完整项目的模型。

当您处理大型且更具挑战性的项目时，此组合将成为您可以利用的资源。它也可以是一种资源，您可以通过深入学习和提供价值的能力来展示您不断增长的技能。

有关开发机器学习组合的更多信息，请参阅帖子：

*   [建立机器学习组合](http://machinelearningmastery.com/build-a-machine-learning-portfolio/)

## 总结

你发现你所知道的深度学习是“_ 学术界深度学习 _”。不是“_ 开发人员深度学习 _”。

您现在知道，有一整套库和教程专为您和像您这样的开发人员而设计。

您发现了一个简单的 3 步流程，您可以将其用作开发人员深度学习的成功，总结如下：

1.  选择一个框架（如 Keras）。
2.  选择一个流程（如上面列出的流程）。
3.  选择一个问题（然后开发一个模型）。

**这改变了你对深度学习的看法吗？**
发表评论让我知道。

您可能希望阅读的更多深度学习帖子包括：

*   [用 Keras 逐步开发 Python 中的第一个神经网络](http://machinelearningmastery.com/tutorial-first-neural-network-python-keras/)
*   [8 深度学习的鼓舞人心的应用](http://machinelearningmastery.com/inspirational-applications-deep-learning/)
*   [多层感知机神经网络速成课](http://machinelearningmastery.com/crash-course-recurrent-neural-networks-deep-learning/)
