# 初学者

## 我该如开始使用深度学习?

你从哪里开始取决于你已经知道了什么。

真正理解深度学习的先决条件是线性代数、微积分和统计学，以及编程和一些机器学习。应用它的先决条件是学习如何部署模型。

在DL4J的场景中，你应该很了解JAVA并且对类似IntelliJ IDE的工具和自动化构建工具Maven感到舒服。&#x20;

下面你会找到一个资源列表。这些章节大致按它们有用的顺序组织起来。

## 免费的机器和深度学习在线课程

* [吴恩达在YouTube上的机器学习课程](https://www.youtube.com/watch?v=qeHZOdmJvFU)
* [Geoff Hinton 在YouTube上的神经网络课程](https://youtu.be/2fRnHVVLf1Y)
* [Patrick Winston人工智能介绍 @MIT](http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-034-artificial-intelligence-fall-2010/) (面向那些对人工智能的调查感兴趣的人)
* [Andrej Karpathy斯坦福卷积神经网络课程](https://cs231n.github.io/) (面向那些对图片识别感兴趣的人)
* [ML@B: 机器学习速成课程: 第一部分](https://ml.berkeley.edu/blog/2016/11/06/tutorial-1/)
* [ML@B: 机器学习速成课程: 第二部分](https://ml.berkeley.edu/blog/2016/12/24/tutorial-2/)
* [梯度下降，神经网络如何学习，深度学习, 第二部分](https://www.youtube.com/watch?v=IHZwWFHWa-w\&feature=youtu.be)

## 数学

深度学习所涉及的数学基本上是线性代数、微积分和概率，如果你在本科阶段学习了这些，你将能够理解深层学习论文中的大部分思想与符号。如果没有在大学里学习过，就不要害怕。有很多免费的资源（有一些在这个网站上）。

* [看得见的理论: 概率与统计的可视化介绍](http://students.brown.edu/seeing-theory/)
* [吴恩达 6部分线性代数综述](https://www.youtube.com/playlist?list=PLnnr1O8OWc6boN4WHeuisJWmeQHH9D_Vg)
* [Khan Academy的线性代数课程 ](https://www.khanacademy.org/math/linear-algebra)
* [机器学习所涉及的线性代数](https://www.youtube.com/watch?v=ZumgfOei0Ak); Patrick van der Smagt
* [CMU的线性代数综述](https://www.cs.cmu.edu/~zkolter/course/linalg/outline.html)
* [用于机器学习的数学](https://www.umiacs.umd.edu/~hal/courses/2013S_ML/math4ml.pdf)
* [拟真线性代数](http://immersivemath.com/ila/learnmore.html)
* [概率速查表](https://static1.squarespace.com/static/54bf3241e4b0f0d81bf7ff36/t/55e9494fe4b011aed10e48e5/1441352015658/probability_cheatsheet.pdf)
* [最佳线性代数书](https://begriffs.com/posts/2016-07-24-best-linear-algebra-books.html)
* [马尔可夫链，视觉解释](http://setosa.io/ev/markov-chains/)
* [机器学习的MCMC介绍](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.13.7133\&rep=rep1\&type=pdf)
* [特征向量、特征值、主成分分析、协方差和熵](https://skymind.ai/wiki/eigenvector)
* [马尔可夫链蒙特卡洛（MCMC）与机器学习](https://skymind.ai/wiki/markov-chain-monte-carlo)

## 编程

如果你还不知道如何编程，你可以从Java开始，但你可能会发现其他语言更容易。Python和Ruby资源可以在更快的反馈循环中传达基本思想。“学习Python的硬方法”和“学习编程（Ruby）”是两个很好的开始。

* [Java学习的硬方法](https://learnjavathehardway.org/)
* [Python学习的硬方法](http://learnpythonthehardway.org/)
* [Pyret: 一个Python学习环境](https://www.pyret.org/)
* [Scratch: 一个来自MIT的可视化编程环境 ](https://scratch.mit.edu/)
* [学习Ruby编程](https://pine.fm/LearnToProgram/)
* [命令行介绍](https://www.computervillage.org/articles/CommandLine.pdf)
* [附加命令行教程](http://www.learnenough.com/command-line)
* [一个Vim基础教程](https://danielmiessler.com/study/vim/) (Vim 是一种用命令行访问的编辑器。)
* [计算机科学介绍 (CS50 @Harvard edX)](https://www.edx.org/course/introduction-computer-science-harvardx-cs50x)
* [机器原理概论](https://marijnhaverbeke.nl/turtle/)

如果你想不使用JAVA而直接使用深度学习，我们推荐[Theano](http://deeplearning.net/)和各种可以顶替它的Python框架，包括[Keras](https://github.com/fchollet/keras) 和 [Lasagne](https://github.com/Lasagne/Lasagne)。

## Python

* [Learn Python the Hard Way](http://learnpythonthehardway.org/)
* [Google's Python Class](https://developers.google.com/edu/python/)
* [Udemy: Complete Python 3 Masterclass Journey](https://www.udemy.com/complete-python-3-masterclass-journey/)
* [MIT: Introduction to Computer Science and Python Programming](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/)&#x20;
* [David Beazley: Python Tutorials](http://www.dabeaz.com/tutorials.html)
* [CS231n: Python Numpy Tutorial](http://cs231n.github.io/python-numpy-tutorial/)
* [Pyret: A Python Learning Environment](https://www.pyret.org/)

## Java

一旦你有了编程基础，就可以着手Java，这是世界上使用最广泛的编程语言。世界上大多数大型组织都使用巨大的Java代码库。（总是有JAVA的作品）（大数据栈—Hadoop, Spark, Kafka, Lucene, Solr, Cassandra, Flink –在很大程度上是为Java的计算环境JVM编写的。

* [Think Java: 基于Web的交互式开发环境](https://books.trinket.io/thinkjava/)
* [学习 Java 的硬方法](https://learnjavathehardway.org/)
* [Java Ranch: 一个Java 初学者社区](http://javaranch.com/)
* [Java编程介绍 @Princeton](http://introcs.cs.princeton.edu/java/home/)
* [深入浅出学Java](https://www.amazon.com/gp/product/0596009208)
* [Java技术手册](https://www.amazon.com/gp/product/1449370829)
* [Java初学者编程250步](https://www.udemy.com/java-tutorial/)

## Deeplearning4j

带着那些，我们推荐你通过它的 [例子](https://github.com/deeplearning4j/dl4j-examples)来走近DL4J。

快速入门

你也可以下载一个 [智能层免费版](https://docs.skymind.ai/), 它是支持 Python, Java 和 Scala 机器学习和数据科学的工具 。 SKIL是一个可以在prem和云端工作的机器学习后端，可以装载你的软件，提供一个机器学习模型服务器 。

### 其它资源

我们所知道的关于深度学习的大部分内容都包含在学术论文中。你可以在这里找到一些主要的研究小组。 虽然个别课程对他们所能教的东西有限制，但互联网却没有。大多数的数学和编程问题可以通过Google和搜索如 [Stackoverflow](https://stackoverflow.com/) 和 [Math Stackexchange](https://math.stackexchange.com/)。
