110

我对人工神经网络非常感兴趣,但我正在寻找一个起点。

那里有什么资源,什么是好的开始项目?

4

16 回答 16

34

首先,放弃任何认为人工神经网络与大脑有任何关系的观念,只是为了与生物神经元网络有短暂的相似性。学习生物学不会帮助你有效地应用神经网络;学习线性代数、微积分和概率论。您至少应该让自己熟悉函数的基本微分、链式法则、偏导数(梯度、雅可比和 Hessian)的概念,并了解矩阵乘法和对角化。

当你训练一个网络时,你正在做的实际上是优化一个大型的多维函数(最小化你对网络中每个权重的误差度量),因此对非线性数值优化技术的研究可能会证明是有益的。这是一个广泛研究的问题,在神经网络之外拥有大量文献,并且网络上有大量关于数值优化的讲义。首先,大多数人使用简单的梯度下降,但这可能比更细微的方法(如

一旦你有了基本的想法,你就可以开始在你的隐藏层中尝试不同的“挤压”功能,添加各种正则化,以及各种调整以加快学习速度。有关“最佳实践”的完整列表,请参阅本文

关于该主题的最佳书籍之一是 Chris Bishop 的Neural Networks for Pattern Recognition。在这个阶段它已经相当老了,但仍然是一个很好的资源,你经常可以在网上找到用过的副本,价格约为 30 美元。他的新书《模式识别与机器学习》中的神经网络章节也相当全面。要获得一个特别好的以实现为中心的教程,请参阅 CodeProject.com 上的这个教程,它实现了一种称为卷积网络的巧妙网络,它以这样一种方式限制连接性,使其非常擅长学习对视觉模式进行分类。

支持向量机和其他内核方法已经变得非常流行,因为您可以在不知道自己在做什么的情况下应用它们,并且通常会得到可接受的结果。另一方面,神经网络是巨大的优化问题,需要仔细调整,尽管它们仍然适用于许多问题,尤其是计算机视觉等领域的大规模问题。

于 2009-02-01T11:21:01.487 回答
29

我强烈推荐 Anoop Madhusudanan 在Code Project上的这个优秀系列。

他带您了解基础知识,以易于理解的方式了解它们的工作原理,并向您展示如何使用他的brainnet库来创建自己的库。

于 2009-01-26T06:09:44.087 回答
17

以下是神经网络编程的一些示例。 http://www.codeproject.com/KB/recipes/neural_dot_net.aspx

你可以从这里开始阅读:http: //web.archive.org/web/20071025010456/http ://www.geocities.com/CapeCanaveral/Lab/3765/neural.html

就我而言,我参观了有关它的课程并阅读了一些文献。

于 2009-01-26T06:09:06.087 回答
11

如今,神经网络有点破旧。支持向量机核方法比反向传播更适合更多类别的问题。神经网络和遗传算法吸引了那些对现代机器学习知之甚少但不是最先进技术的人的想象力。

如果您想了解更多关于 AI 和机器学习的信息,我建议您阅读 Peter Norvig 的《人工智能:一种现代方法》。这是对人工智能和许多现代技术的广泛调查。它还回顾了历史和旧技术,并将为您提供更完整的 AI 和机器学习基础知识。

不过,神经网络非常简单。特别是如果您使用遗传算法来确定权重,而不是适当的反向传播。

于 2009-01-26T07:02:12.577 回答
5

我第二个dwf对Chris Bishop的Neural Networks for Pattern Recognition的推荐。虽然,它可能不是入门文本。Norvig 或在线教程(在 Matlab 中有代码!)可能是一个更温和的介绍。

一个好的入门项目是 OCR(光学字符识别)。您可以扫描文本页面并通过网络输入每个字符以执行分类。(当然,您必须先训练网络!)。

于 2009-02-06T17:16:03.293 回答
4

Raul Rojas 的书是一个很好的开始(它也是免费的)。此外,Haykin 的书第 3 版,虽然体积很大,但解释得很好。

于 2010-11-14T15:48:20.850 回答
4

我可以建议从哪里开始。我买了 Kevin Gurney的 An Introduction to Neural Networks,它在亚马逊上有很好的评论,并声称是“对认知和计算机科学中最重要的主题之一的高度易懂的介绍”。就个人而言,我不会推荐这本书作为开始。我只能理解其中的 10%,但也许只有我一个人(英语不是我的母语)。我将从这个线程中研究其他选项。

于 2010-11-16T00:59:37.157 回答
3

http://www.ai-junkie.com/ann/evolved/nnt1.html是对多层感知器的清晰介绍,虽然没有描述反向传播算法

你也可以看看generation5.org,它提供了很多关于人工智能的文章,还有一些关于神经网络的好文章

于 2009-12-19T12:52:24.043 回答
2

如果你不介意花钱,The Handbook of Brain Theory and Neural Networks很不错。它包含 287 篇文章,涵盖了许多学科的研究。它从介绍和理论开始,然后重点介绍文章的路径,以最好地涵盖您的兴趣。

对于第一个项目,Kohonen 地图的分类很有趣:在你的音乐收藏中找到隐藏的关系,构建一个智能机器人,或者解决Netflix 的奖项

于 2009-01-26T06:53:01.800 回答
1

我认为一个好的起点总是维基百科。在那里,您还可以找到一些有用的链接,这些链接指向使用神经网络的文档和项目。

于 2009-01-26T06:10:29.063 回答
1

在我学习期间使用的两本书:

入门课程:Igor Aleksander 和 Helen Morton 对神经计算的介绍。

高级课程:Robert Hecht-Nielsen 的神经计算

于 2009-03-02T21:38:41.193 回答
1

我发现 Fausett 的《神经网络基础》是一本简单易懂的入门教科书。

于 2009-03-25T16:37:21.053 回答
1

我发现教科书“计算智能”非常有用。

于 2010-06-17T19:53:35.017 回答
1

Programming Collective Intelligence在搜索和排名算法的背景下讨论了这一点。此外,在此处提供的代码(第 4 章)中,书中讨论的概念在 Python 示例中进行了说明。

于 2010-06-17T20:00:22.093 回答
1

我同意其他人的观点,他们说学习生物学不是一个好的起点……因为生物学中有很多不相关的信息。您不需要了解神经元如何工作来重新创建其功能 - 您只需要模拟它的动作。我推荐 Ray Kurzweil 的“How To Create A Mind”——它涉及与计算模型相关的生物学方面,(通过组合多个输入并在达到阈值时触发来创建模拟神经元)但忽略了不相关的东西,例如神经元实际上是如何将 thouse 输入加在一起的。(例如,您只需使用 + 和不等式与阈值进行比较)

我还应该指出,这本书并不是真正关于“创造思维”——它只关注层次模式识别/新皮质。我相信自 1980 年代以来一直在讨论一般主题,因此有很多旧书可能包含相同信息的略微过时的形式。例如,我阅读过旧文档,其中指出视觉系统是一个多层模式识别器。他认为这适用于整个新皮质。此外,对他的“预测”持保留态度——他的硬件估计可能非常准确,但我认为他低估了简单任务的复杂程度(例如:驾驶汽车)。诚然,他已经看到了很多进步(并且是其中的一部分),但我仍然认为他过于乐观了。与人类能够做到的 99.9+% 相比,人工智能汽车能够在 90% 的时间内成功行驶一英里之间存在很大差异。我不认为任何人工智能会真正驱动我至少 20 年......(我不计算需要在实际赛道上“训练”的宝马赛道车,因为它们并没有真正发挥同样的作用游戏)

If you already have a basic idea of what AI is and how it can be modeled, you may be better off skipping to something more technical.

于 2013-03-08T16:29:04.947 回答
0

如果您想快速了解一些神经网络概念在真实模拟器上的应用,可以在http://grey.colorado.edu/CompCogNeuro/index 找到一本很棒的在线书籍(现为 wiki),名为“计算认知神经科学”。 php/CCNBook/主

这本书在学校被用作教科书,带您了解许多不同的大脑区域,从单个神经元一直到高级执行功能。

此外,每个部分都增加了已经为您准备好的家庭作业“项目”。只需下载,按照步骤操作,并模拟本章讨论的所有内容。他们使用的软件 Emergent 有点笨拙,但非常强大:我相信它是 10 多年工作的产物。

上个学期我在本科班上学过,很棒。一步一步引导你完成所有事情

于 2012-01-07T02:13:26.390 回答