有哪些学习人工神经网络的好资源? [关闭]
Posted
技术标签:
【中文标题】有哪些学习人工神经网络的好资源? [关闭]【英文标题】:What are some good resources for learning about Artificial Neural Networks? [closed] 【发布时间】:2010-10-03 11:57:18 【问题描述】:我对人工神经网络非常感兴趣,但我正在寻找一个起点。
那里有什么资源,什么是好的开始项目?
【问题讨论】:
我假设,人工神经网络?您对哪个领域感兴趣(您会将其应用于:手写、分类、逻辑)? 我猜,逻辑:我在想一个迷宫中的机器人或类似的东西并尝试不同的算法,但这样做的方式是由网络决定哪个是最好的,等等。 Geoffrey Hinton 在 coursera 上有一门非常棒的关于神经网络的课程。它从基础开始,以最先进的方法结束,甚至更多。 我向初学者推荐课程 Machine Learning by Andrew Ng,然后再学习 Geoffrey Hinton 的课程,该课程涉及更高级的神经网络和理论方面。 【参考方案1】:首先,放弃任何认为人工神经网络与大脑有任何关系的观念,只是为了与生物神经元网络有短暂的相似性。学习生物学不会帮助你有效地应用神经网络;学习线性代数、微积分和概率论。您至少应该让自己熟悉函数的基本微分、链式法则、偏导数(梯度、雅可比和 Hessian)的概念,并了解矩阵乘法和对角化。
实际上,您在训练网络时所做的是优化大型多维函数(最小化网络中每个权重的误差度量),因此对非线性数值优化技术的研究可能会证明是有益的.这是一个广泛研究的问题,在神经网络之外拥有大量文献,并且网络上有大量关于数值优化的讲义。一开始,大多数人使用简单的gradient descent,但这比像
这样更细微的方法要慢得多,效率也低得多一旦您掌握了基本概念,您就可以开始在隐藏层中尝试不同的“挤压”功能,添加各种正则化和各种调整以加快学习速度。有关“最佳实践”的完整列表,请参阅 this paper。
关于该主题的最佳书籍之一是 Chris Bishop 的Neural Networks for Pattern Recognition。在这个阶段它已经相当老了,但仍然是一个很好的资源,你经常可以在网上找到用过的副本,价格约为 30 美元。他的新书Pattern Recognition and Machine Learning 中的神经网络章节也相当全面。对于一个特别好的以实现为中心的教程,see this one on CodeProject.com 实现了一种称为卷积网络的巧妙网络,它以这样一种方式限制连接性,使其非常擅长学习对视觉模式进行分类。
支持向量机和其他内核方法变得非常流行,因为您可以在不知道自己在做什么的情况下应用它们,并且通常会得到可接受的结果。另一方面,神经网络是巨大的优化问题,需要仔细调整,尽管它们仍然适用于许多问题,尤其是计算机视觉等领域的大规模问题。
【讨论】:
好点。神经元只是来自逻辑回归的逻辑单元。然后创建多相多元回归单元并称为神经网络,因为它“看起来像”神经网络。它不是由大脑等启发的。 说学习实际的神经科学对这一领域的研究没有帮助是不正确的。 Jeff Hawkins 和他的研究试图在他的 HTM 工作中融入更多关于神经生物学的知识。 HTM 的工作非常好。最后,如果您打算尝试研究模拟实际生物学示例的新网络拓扑和交互技术,学习神经生物学可能会很有用。如果您只想简单地使用其他人已经研究过的东西,而不是自己进行研究,那么是的,研究神经科学可能毫无意义。【参考方案2】:我强烈推荐 Anoop Madhusudanan 在Code Project 上的这个优秀系列。
他以一种易于理解的方式向您介绍了基本原理,并向您展示了如何使用他的 brainnet
库来创建自己的库。
【讨论】:
哇,酷。您也可以从我的博客中阅读它,amazedsaint.blogspot.com/2008/01/…【参考方案3】:这里有一些神经网络编程的例子。 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
就我而言,我参观了有关它的课程并阅读了一些文献。
【讨论】:
Geocities 几天前下线了,但在 web.archive.org/web/20071025010456/http://www.geocities.com/… 有一个存档版本(至少现在是……)【参考方案4】:如今,神经网络有点破旧。 支持向量机和内核方法比反向传播更适合更多类别的问题。神经网络和遗传算法激发了对现代机器学习知之甚少但还不是最先进技术的人们的想象力。
如果您想了解更多关于 AI 和机器学习的信息,我建议您阅读 Peter Norvig 的 Artificial Intelligence: A Modern Approach。这是对人工智能和许多现代技术的广泛调查。它还回顾了历史和较早的技术,让您更全面地了解 AI 和机器学习的基础知识。
不过,神经网络非常简单。特别是如果您使用遗传算法来确定权重,而不是适当的反向传播。
【讨论】:
神经网络不仅仅包含反向传播;还有大量其他网络——联想记忆、Kohonen SOFM、基于自适应共振的网络等等……MLP 和反向传播是最受欢迎的网络,但不是性能最高的…… “现在神经网络有点破旧了”——好吧,不再是了。用于训练多层 NN 和 ad hoc 架构 NN 的“深度学习”技术似乎是目前 ML 中最热门的事物之一。只是众多例子中的一个,googleresearch.blogspot.co.uk/2015/03/…【参考方案5】:我赞同 dwf 对 Chris Bishop 的 Neural Networks for Pattern Recognition 的推荐。虽然,它可能不是入门文本。 Norvig 或在线教程(在 Matlab 中有代码!)可能是一个更温和的介绍。
一个好的入门项目是 OCR(光学字符识别)。您可以扫描文本页面并通过网络输入每个字符以执行分类。 (当然,您必须先训练网络!)。
【讨论】:
【参考方案6】:Raul Rojas' book 是一个很好的开始(它也是免费的)。还有,Haykin's book 3rd edition虽然篇幅很大,但是解释的很好。
【讨论】:
【参考方案7】:我可以推荐从哪里开始。我买了 Kevin Gurney 的 An Introduction to Neural Networks,它在亚马逊上有很好的评价,并声称是“对认知和计算机科学中最重要的主题之一的高度易懂的介绍”。就个人而言,我不会推荐这本书作为开始。我只能理解其中的 10%,但也许只有我一个人(英语不是我的母语)。我将研究此线程中的其他选项。
【讨论】:
【参考方案8】:http://www.ai-junkie.com/ann/evolved/nnt1.html是对多层感知器的清晰介绍,虽然没有描述反向传播算法
你也可以看看 generation5.org,它提供了很多关于人工智能的文章和一些关于神经网络的好文章
【讨论】:
【参考方案9】:如果你不介意花钱,The Handbook of Brain Theory and Neural Networks 非常好。它包含 287 篇文章,涵盖了许多学科的研究。它以介绍和理论开始,然后重点介绍文章路径,以最好地涵盖您的兴趣。
对于第一个项目,Kohonen maps 对categorization 很感兴趣:在你的音乐收藏中找到隐藏的关系build a smart robot,或者解决Netflix prize。
【讨论】:
【参考方案10】:我认为一个好的起点总是Wikipedia。在那里,您还可以找到一些有用的链接,这些链接指向使用神经网络的文档和项目。
【讨论】:
【参考方案11】:在我学习期间使用的两本书:
入门课程:An introduction to Neural Computing by Igor Aleksander and Helen Morton.
进阶课程:Neurocomputing by Robert Hecht-Nielsen
【讨论】:
【参考方案12】:我发现 Fausett 的 Fundamentals of Neural Networks 是一本简单易懂的入门教科书。
【讨论】:
【参考方案13】:我发现教科书“计算智能”非常有用。
【讨论】:
【参考方案14】:Programming Collective Intelligence 在搜索和排名算法的背景下讨论了这个问题。此外,在可用的代码here(第 4 章)中,书中讨论的概念在 Python 示例中进行了说明。
【讨论】:
【参考方案15】:我同意其他人的观点,他们说学习生物学不是一个好的起点……因为生物学中有很多不相关的信息。您不需要了解神经元如何工作来重新创建其功能 - 您只需要模拟它的动作。我推荐 Ray Kurzweil 的“How To Create A Mind”——它涉及与计算模型相关的生物学方面,(通过组合多个输入并在达到阈值时触发来创建模拟神经元)但忽略了不相关的东西,例如神经元实际上是如何将 thouse 输入加在一起的。 (例如,您只需使用 + 和不等式来与阈值进行比较)
我还应该指出,这本书并不是真正关于“创造思维”——它只关注层次模式识别/新皮质。我相信自 1980 年代以来就一直在谈论一般主题,因此有很多旧书可能包含相同信息的略微过时的形式。例如,我阅读过旧文档,其中指出视觉系统是一个多层模式识别器。他认为这适用于整个新皮质。此外,对他的“预测”持保留态度——他的硬件估计可能非常准确,但我认为他低估了简单任务的复杂程度(例如:驾驶汽车)。诚然,他已经看到了很多进步(并且是其中的一部分),但我仍然认为他过于乐观了。与人类能够做到的 99.9+% 的时间相比,人工智能汽车能够在 90% 的时间内成功行驶一英里之间存在很大差异。我不认为任何人工智能会真正驱动我至少 20 年......(我不计算需要在实际赛道上“训练”的宝马赛道车,因为它们并没有真正发挥同样的作用游戏)
如果您已经对什么是 AI 以及如何对其建模有一个基本概念,那么您最好跳到技术含量更高的领域。
【讨论】:
【参考方案16】:如果您想快速了解一些神经网络概念在真实模拟器上的应用,可以在http://grey.colorado.edu/CompCogNeuro/index.php/CCNBook/Main 找到一本很棒的在线书籍(现为 wiki),名为“计算认知神经科学”
这本书在学校被用作教科书,带您了解许多不同的大脑区域,从单个神经元一直到高级执行功能。
此外,每个部分都增加了已经为您准备好的家庭作业“项目”。只需下载,按照步骤操作,并模拟本章讨论的所有内容。他们使用的软件 Emergent 有点笨拙,但非常强大:我相信它是 10 多年工作的产物。
上个学期我在本科班上学过,非常棒。一步一步地引导你完成所有事情
【讨论】:
以上是关于有哪些学习人工神经网络的好资源? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章