什么是学习人工神经网络的好资源?

时间:2009-01-26 06:05:06

标签: neural-network

我对人工神经网络很感兴趣,但我正在寻找一个可以开始的地方。

那里有哪些资源以及什么是良好的启动项目?

16 个答案:

答案 0 :(得分:33)

首先,放弃任何关于人工神经网络与大脑有关但与生物神经元网络相似的概念。学习生物学不会帮助你有效地应用神经网络;学习线性代数,微积分和概率论将会。你至少应该熟悉函数的基本区分,链规则,偏导数(梯度,雅可比和黑森),以及理解矩阵乘法和对角化的概念。

当您训练网络时,您正在做的事情是优化大型多维功能(最小化您对网络中每个权重的误差测量),因此对非线性数值优化技术的研究可能具有指导意义。这是一个广泛研究的问题,在神经网络之外有大量文献,并且网上有大量关于数值优化的讲义。首先,大多数人使用简单的gradient descent,但这比使用

等更细致的方法要慢得多且效果差。

一旦掌握了基本想法,就可以开始在隐藏层中尝试不同的“挤压”功能,添加各种正规化,并进行各种调整以使学习更快。有关“最佳做法”的完整列表,请参阅this paper

关于这个主题的最好的书之一是Chris Bishop的Neural Networks for Pattern Recognition。它在这个阶段相当老,但仍然是一个很好的资源,你经常可以在网上找到大约30美元的二手拷贝。他的新书Pattern Recognition and Machine Learning中的神经网络章节也非常全面。对于一个特别好的以实现为中心的教程,see this one on CodeProject.com实现了一种称为卷积网络的聪明网络,它以一种非常好的方式来学习对视觉模式进行分类,从而限制连接性。

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

答案 1 :(得分:29)

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

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

答案 2 :(得分: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

我本人已经参观了一个关于它的课程,并通过一些文献进行了研究。

答案 3 :(得分:11)

神经网络现在是一种衰退。 支持向量机内核方法更适用于更多类问题,然后是反向传播。神经网络和遗传算法捕捉到了对现代机器学习知之甚少的人的想象力,但它们并不是最先进的。

如果您想了解有关人工智能和机器学习的更多信息,我建议您阅读Peter Norvig的Artificial Intelligence: A Modern Approach。这是对人工智能和许多现代技术的广泛调查。它也涵盖了历史和旧技术,并将为您提供更完整的人工智能和机器学习基础知识。

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

答案 4 :(得分:5)

我第二次 dwf 对Chris Bishop的神经网络模式识别的推荐。虽然,它可能不是起始文本。 Norvig或在线教程(在Matlab中使用代码!)可能是一个更温和的介绍。

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

答案 5 :(得分:4)

Raul Rojas' book是一个非常好的开始(它也是免费的)。此外,Haykin's book 3rd edition虽然数量很大,但却得到了很好的解释。

答案 6 :(得分:4)

我可以推荐不去的地方。我通过Kevin Gurney购买了An Introduction to Neural Networks,这对亚马逊有很好的评价,并声称是“对认知和计算机科学中最重要的主题之一的高度可访问的介绍”。就个人而言,我不会推荐这本书作为开始。我只能理解它的10%,但也许只是我(英语不是我的母语)。我将从这个帖子中寻找其他选项。

答案 7 :(得分:3)

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

你也可以看看generation5.org,它提供了很多关于AI的文章,并且有一些关于神经网络的好文章

答案 8 :(得分:2)

如果你不介意花钱,The Handbook of Brain Theory and Neural Networks非常好。它包含287篇文章,涉及许多学科的研究。它从介绍和理论开始,然后突出文章中的路径,以最好地满足您的兴趣。

对于第一个项目,Kohonen mapscategorization很有意义:在音乐收藏中找到隐藏的关系,build a smart robot或解析Netflix prize

答案 9 :(得分:1)

我认为一个好的起点始终是Wikipedia。在那里,你会发现一些有用的链接,指向使用神经网络的文档和项目。

答案 10 :(得分:1)

答案 11 :(得分:1)

我发现Fausett的Fundamentals of Neural Networks是一本简单易懂的入门教材。

答案 12 :(得分:1)

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

答案 13 :(得分:1)

Programming Collective Intelligence在搜索和排名算法的上下文中对此进行了讨论。此外,在可用代码here(第4章)中,本书中讨论的概念在Python示例中进行了说明。

答案 14 :(得分:1)

我同意其他人的观点,他们认为研究生物学不是一个好的起点......因为生物学中有很多不相关的信息。您不需要了解神经元如何重建其功能 - 您只需要模拟其动作。我推荐Ray Kurzweil的“如何创造一个心灵” - 它涉及与计算模型相关的生物学方面,(通过组合几个输入创建一个类似的神经元并在达到阈值时触发)但忽略了像神经元如何实际添加thouse输入togeather。 (例如,您只需使用+和不等式来比较阈值)

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

如果您已经对AI是什么以及如何对其进行建模有了基本的了解,那么您最好跳过更具技术性的东西。

答案 15 :(得分:0)

如果你想在真实的模拟器上快速了解一些神经网络概念的应用,那么在http://grey.colorado.edu/CompCogNeuro/index.php/CCNBook/Main

上有一本很棒的在线书籍(现在是wiki),叫做“计算认知神经科学”。

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

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

上个学期我在一个本科课上经历了这个课程,这很棒。一步一步地浏览所有内容