如何开始使用神经网络


32

我是神经网络的新手,但是对理解它们非常感兴趣。但是,开始并不容易。
谁能推荐一本好书或其他任何资源?有必读吗?
我很感谢任何小费。


11
戈夫·欣顿(Goeff Hinton)还将在下周开始通过Coursera在神经网络上教授一门课程:coursera.org/course/neuralnets
Marc Shivers

该课程看起来很有趣,但是从视频和网页上,我想它并不是作为入门课程而设计的。
道格拉斯·扎里

@DouglasZare:我正在完成Hinton的课程,在某些方面,我很高兴我首先参加了Andrew Ng的ML课程。
安德鲁

1
是的,我也接受了。这是一门很棒的课程,没有介绍。
道格拉斯·扎里

博客和有关的神经网络教程初学者learn-neural-networks.com
ФаильГафаров

Answers:


33

神经网络已经存在了一段时间,多年来,它们发生了巨大的变化。如果仅在网络上四处浏览,则可能会给人一种印象,即“神经网络” 是指经过反向传播训练的多层前馈网络。或者,您可能会遇到数十种很少使用的,名称奇特的模型,并得出结论,神经网络更像是动物园,而不是研究项目。或者说它们是新奇的东西。要么...

我可以继续。如果您想要清楚的解释,我会听Geoffrey Hinton的话。他永远存在,并且(因此?)做得很出色,将他研究的所有不同模型编织成一个具有凝聚力,直观(有时甚至是理论)的历史叙述。在他的主页上,有指向他所做的Google Tech Talks和Videolectures.net讲座的链接(有关RBMDeep Learning等)。

从我的角度来看,这是理解神经网络的历史和教学路线图,从它们的诞生到最先进的技术:

  • 感知器
    • 容易明白
    • 严重受限
  • 多层,通过反向传播进行训练
    • 很多资源来学习这些
    • 通常不如SVM好
  • 玻尔兹曼机
    • 从“能量”角度考虑循环网络稳定性的有趣方式
    • 如果您想要一个简单易懂(但不太实际)的带有“能量”的循环网络示例,请查看Hopfield网络
    • 理论上有趣,在实践中没用(训练速度与大陆漂移相同)
  • 受限玻尔兹曼机
    • 有用!
    • 建立在玻尔兹曼机理论的基础上
    • 网络上的一些不错的介绍
  • 深度信仰网络
    • 据我所知,这是一类用于进行半监督学习的多层RBM。
    • 一些资源

1
非常感谢您提供此概述以及许多资源!
克劳迪奥·艾伯丁

2
没问题。在您的神经网络工作中祝您好运。
笨拙的乔·皮特2012年


5

我认为这些都是非常好的书。

  • R. Rojas:神经网络
  • CM Bishop:用于模式识别的神经网络

这些书有一些相似之处:它们都长约500页,并且从1995年开始就已经相当古老了。尽管如此,它们仍然非常有用。这两本书都是从头开始,解释了什么是神经网络。它们提供了清晰的解释,好的示例和好的图表,以帮助理解。他们详细解释了训练神经网络的各种形式和形式的问题,以及它们可以做什么和不能做什么。这两本书非常好地相互补充,因为一本书无法弄清楚,一本书倾向于在另一本书中找到。

Rojas有一节,我特别喜欢,关于在矩阵形式的许多层上实现反向传播。它还有一个关于模糊逻辑的不错的部分,以及一个关于复杂性理论的部分。但是Bishop还有很多其他不错的部分。

我想说,罗哈斯(Rojas)是最容易到达的地方。Bishop的数学能力更高,也许更复杂。在这两本书中,数学都是线性代数和多个变量(偏导数等)的函数演算。没有这些主题的知识,您可能不会发现这两本书都很有启发性。

我建议先阅读Rojas。

显然,这两本书都对算法有很多话要说,但是对于代码中的特定实现都没有说太多。

对我而言,这些书提供了背景知识,使在线课程(例如Coursera上的Hinton's)易于理解。与在线书籍相比,这些书还涵盖了更多的领域,而且更详尽。

希望对您有所帮助,并很高兴回答有关这些书的任何问题。


3
欢迎使用该网站@Old_Mortality。你能说些什么吗?他们有什么好处?它们是否适合具有一定水平的数学和/或编码复杂程度的人员?您会推荐哪个OP读1st?等等
贡-恢复莫妮卡

1
感谢您的建议。我已经在上面编辑了答案。
Old_Mortality '16

3

正如其他人指出的那样,在线上有很多(优质)资源,而我个人已经做了其中一些:

  • Ng在Coursera上的ML课程简介
  • Hintra在Coursera上的神经网络课程
  • 吴的深度学习教程
  • 阅读原始的并行分布式处理中的相关章节

我想提请注意一个事实,即这些说明大多遵循经典的处理方法,其中层(加总和非线性)是基本单位。在大多数库(例如torch-nn和tensorflow)中实现的更流行,更灵活的处理方法,现在使用具有自动求差功能的计算图来实现高度模块化。从概念上讲,它更简单,更解放。我强烈推荐这种治疗的出色斯坦福CS231n开放式课程

对于严格的学习理论治疗,您可能需要咨询Anthony和Bartlett的《神经网络》



0

我创建了一个Web应用程序,可支持您在神经网络领域的学习过程。

https://blueneurons.ch/nn

您可以试用设置(体系结构,激活功能,培训设置),并观察设置如何影响预测。所有数据集都有可以采用的预配置值。也可以创建自己的数据集。

对已实现元素的说明和解释:

用户指南

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.