深度学习入门指南
如何开始使用深度学习?
您的起点取决于您已经掌握了什么。
理解深度学习的先决条件是线性代数、微积分和统计学,以及编程和一些机器学习知识。应用深度学习的先决条件仅仅是学会如何部署模型。
就Deeplearning4j而言,您应该熟练掌握Java,并且熟悉像IntelliJ IDE和自动化构建工具Maven这样的工具。
下面是一些资源列表。这些部分大致按照它们将会有用的顺序组织。
免费的机器学习和深度学习在线课程
Andrew Ng的机器学习课程(YouTube)
Geoff Hinton的神经网络课程(YouTube)
Patrick Winston在麻省理工学院的人工智能介绍(对于那些对人工智能调查感兴趣的人)
斯坦福大学Andrej Karpathy的卷积神经网络课程(对于那些对图像识别感兴趣的人)
ML@B:机器学习速成课程:第1部分
ML@B:机器学习速成课程:第2部分
梯度下降,神经网络如何学习,深度学习第2部分
数学
深度学习涉及的数学基本上是线性代数、微积分和概率论,如果您在本科阶段学习过这些,您将能够理解深度学习论文中的大多数思想和符号。
如果您在大学没有学过这些,不要担心。有许多免费资源可用(包括本网站上的一些资源)。
《微积分简易教程》,作者Silvanus P. Thompson
Seeing Theory:概率和统计的可视化介绍
Andrew Ng的线性代数6部分复习
可汗学院的线性代数课程
机器学习的线性代数;Patrick van der Smagt
卡内基梅隆大学的线性代数复习
机器学习数学
沉浸式线性代数
概率速查表
最佳线性代数书籍
马尔科夫链,可视化解释
机器学习的MCMC简介
特征向量、特征值、PCA、协方差和熵
马尔科夫链蒙特卡罗(MCMC)和机器学习
将矩阵重新学习为线性函数
编程
如果您还不知道如何编程,可以从Java开始,但您可能会发现其他编程语言更容易。Python和Ruby资源可以在更快的反馈循环中传达基本思想。《用困难的方式学Python》和《学会编程(Ruby)》是两个很好的起点。
Scratch:来自MIT的可视化编程环境
学习编程(Ruby)
草莓蝉:一个学习基本编码(Javascript)的移动应用
命令行简介
额外的命令行教程
Vim教程和入门指南(Vim是一种可从命令行访问的编辑器。)
计算机科学简介(哈佛大学edX的CS50)
机器基础知识温和介绍
教学C语言
如果您想直接从这里跳入深度学习而不是Java,我们建议使用Theano以及基于它构建的各种Python框架,包括Keras和Lasagne。
Python
用困难的方式学Python
谷歌的Python课程
Udemy:完整的Python 3大师课程
麻省理工学院:计算机科学和Python编程介绍
David Beazley:Python教程
CS231n:Python Numpy教程
Pyret:Python学习环境
Java
一旦您掌握了编程基础,就可以学习Java,这是世界上最广泛使用的编程语言。
世界上大多数大型组织都在巨大的Java代码库上运行。(Java工作机会永远都会有。)大数据堆栈——Hadoop、Spark、Kafka、Lucene、Solr、Cassandra、Flink——大多是为Java的计算环境JVM编写的。
《Think Java》:交互式基于Web的开发环境
用困难的方式学Java
JShell介绍
5分钟了解JShell
Java资源
Java牧场:Java初学者社区
普林斯顿大学的Java编程入门
《Head First Java》
《Java in a Nutshell》
《250步骤中的完全初学者Java编程》
Deeplearning4j
掌握了这些后,我们建议您通过示例来学习Deeplearning4j。
我们对深度学习的大部分了解都包含在学术论文中。您可以在这里找到一些主要的研究团队。
虽然个别课程对所能教授的内容有限,但互联网并不受此限制。大多数数学和编程问题都可以通过谷歌搜索以及搜索Stackoverflow和Math Stackexchange等网站来解决。
参考资料
https://deeplearning4j.konduit.ai/multi-project/tutorials/beginners