资源深度学习资料大全:从基础到各种网络模型

来源:本站 浏览

小编:  深度学习是发展迅速的一个计算机科学和数学交叉的领域

  深度学习是发展迅速的一个计算机科学和数学交叉的领域。它是更宽泛的机器学习领域一个相对新的分支。机器学习的目的是教计算机完成基于给定数据的各种任务。本教程是为那些知道一些数学,又懂一些编程语言,并想研究深度学习的人准备的。

  你必须知道编程知识以便开发和测试深度学习模型。我们建议使用 Python 进行机器学习。这里需要用到科学计算的 NumPy / SciPy 库。

  当你满足了这些预备条件时,我们有四个备选建议用来学习深度学习。你可以选择下列选项中的任何一个或几个。星星数量表示困难程度。

  Hugo Larochelle 在 YouTube 上的课程视频(Hugo Larochelles video course)。虽然视频是在 2013 年录制的,但大部分内容仍然很新。视频详细地解释了神经网络背后的数学知识。附带幻灯片和相关材料。★★

  Michael Nielsen 的网络书籍《神经网络和深度学习》(Neural Networks and Deep Learning)是研究神经网络的最容易入门的书籍。它没有涵盖所有重要的主题,但包含直观解释和基本概念的代码实现。★

  有许多软件框架为机器学习和深度学习提供了必要的函数、类和模块。我们建议在研究的早期阶段不要使用这些框架,而是从头开始实现基本算法。并且大多数课程都能足够详细地描述算法背后的数学,因而这些算法可以很容易从头实现。

  Jupyter notebook 软件可以方便地交互编译 Python 代码。软件能很好地与流行的可视化库 matplotlib 集成。我们建议在这样的环境中实现算法。★

  机器学习是基于数据训练计算机的一门艺术和科学。它是计算机科学和数学交叉的相对确定的领域,而深度学习只是它的一个很小的子领域。机器学习的概念和工具对于理解深度学习非常重要。

  Larochelle 的课程,没有单独的通用机器学习的介绍性讲座,但是定义和解释了所有必要的概念。

  大多数流行的机器学习算法都是在 Python 库 Scikit-learn 中实现的。从头开始实现这些算法助于理解机器学习的原理。

  一个交互可视化的教程,介绍了神经网络的基础——显示简单的神经网络如何做线性回归 ★

  Andrej Karpathy 的神经网络黑客教程讲述了如何在 Java 中实现反向传播。★

  训练神经网络并不容易。有时根本不能学习(欠拟合/ underfitting),而有时能准确地学习你给算法的数据,但是算法学到的「知识」不能泛化到新的、没见过的数据(过拟合/ overfitting)。有许多方法来解决这些问题。

  有许多框架提供标准算法,并针对现代硬件的良好性能进行了优化。这些框架中的大多数提供 Python 接口,除了著名的 Torch 是个例外(其需要 Lua)。一旦你知道如何实现基本的学习算法,现在是选择一个建模框架的时候了。

  TensorFlow 是另一个低层级框架。它的架构类似于 Theano。它由谷歌大脑团队维护。

  Lasagna 是一个建立在 Theano 之上的更高级框架。它提供了简单的函数,从而可以用少量代码创建大型网络。

  如果你需要更多关于选择框架的建议,请参见斯坦福大学 CS231n 课程的第 12 讲。★★

  卷积神经网络(「CNN」)是一种特殊的神经网络,它使用了一些妙技来更快、更好地学习。ConvNets 从根本上变革了计算机视觉,并且也被大量应用于语音识别和文本分类任务中。

  图像核函数(Image Kernel)的视觉阐述——展示卷积过滤器(Convolutional Filters,也称为图像核函数)如何转换图像 ★

  每一个重要框架都应用了卷积网络。通常理解用更高级库编写出来的代码更容易。

  检测糖尿病视网膜病变——出自 Kaggle 糖尿病视网膜病变检测竞赛最佳选手的一篇博文。包含一个绝佳的数据增强案例。★★

  使用深度学习进行的露脊鲸面部识别——作者在定位和分类过程中使用了不同的 ConvNets。内附代码及模型。★★

  残差网络(Residual Net)的训练与考察——残差网络在图像分类方面表现不错。来自 Facebook 和 CornellTech 的两位研究人员在 Torch 中采用了这种网络 ★★★

  ConvNets 实践——使用卷积网络方面的许多实用技巧包括:数据增强、迁移学习、卷积运算的快速实现 ★★

  循环神经网络(RNN)是与序列一起使用的。通常用于语句分类(比如情感分析)和语音识别,但也用于文本生成,甚至图像生成。

  循环神经网络的合理有效性——描述了 RNN 如何生成文本、数学论文和 C++ 代码 ★

  自编码器是为无监督学习(例如数据未标记的情况)而设计的神经网络。可用它进行降维、预训练其他神经网络及数据生成等。以下资源还包括自编码器与图形模型的有趣混合体,称为变分自编码器(variational autoencoders),不过其数学基础是下一节的内容。

  大多数的自编码器都很容易实现。我们建议你浏览完整案例前自己先试着实现一下。

  概率图模型(PGM)在统计学与机器学习的交叉领域形成一个独立的分支。一般说来关于 PGM 的书籍和课程有很多。这里我们提出的是:在深度学习中如何应用这些模型。Hugo Larochelle 的课程介绍了几个著名的模型,而《Deep Learning》一书则用了四章(16-19)来阐述该理论,并在最后一章介绍了十几种模型。这些课题都需要大量的数学知识。

  生成模型——变分自编码器、生成对抗网络及其 OpenAI 改进方面的一篇博文。★★★

  神经网络园(The Neural Network Zoo)试图使用一个单一方案组织大量架构。★★

  由特征向量生成大图像——结合运用变分自编码器(variational autoencoders)与生成对抗网络。★★★

  在 TensorFlow 中使用深度学习进行图像修复——生成对抗网络的另一个应用。★★★

  深度学习是一个非常活跃的科学研究领域。要想跟上顶尖的科研进程,就必须阅读新的论文并跟上重要的会议。通常每个新思想都是在的预印本论文上发表。然后其中一些提交给会议并进行同行评议。最好的那些会在会议上被提出并发表在期刊上。如果该作者不发布其模型的代码,许多人会试图实现它们并将其放在 GitHub 上。这得需要 1、2 年的时间,合理解释其思想和实现过程的高品质技术博客、教程和视频才会出现在网络上。

  /r/MachineLearning 是一个非常活跃的 Reddit 板块。所有新的重要论文都会在那里进行讨论。

当前网址:http://www.sx-news.com/keji/2019-02-10/116180.html

免责声明:本文仅代表作者个人观点,与陕西新闻网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

你可能喜欢的: