2008-11-23 39 views
13

我不是数学家。我喜欢一个好的数学难题,但我坦然承认我的弱点。也就是说,我一直对神经网络有兴趣,虽然我理解它们足以从头开始实现它们,但是当我需要理解任何只能找到数学证明的概念时,我碰壁了。程序员的神经网络指南在哪里,用代码而不是公式来解释实际推理?神经网络的非数学描述

+1

神经网络是看中只是插值功能。我怀疑你可以得到一个神经网络的远程精确描述而不用解释什么是插值。 – 2011-05-03 20:50:24

回答

8

另一种选择是非数学非编程解释。该书Blondie24: Playing at the Edge of AI包含了神经网络的一个非常好的解释。这是关于作者开发的跳棋AI游戏。这不是完全没有编程参考,但它很好地解释算法如何工作,而无需进入解决方案的代码。

2

不幸的是,我不知道是否有一个很好的单个“程序员源代码”会给你所有的概念。我喜欢Neural and Adaptive Systems: Fundamentals through Simulations

让程序员理解神经网络的最好方法不是通过检查代码,而是通过检查问题和正确的结果。所以,如果你不想看数学,我建议你看看给定的问题。例如,考虑XOR问题作为你为什么需要非线性激活函数的一个例子,看看变量的数量和它们的可能值,以便理解为什么神经网络需要达到一定的大小和toplogy才能有效,以及将您的数据分解为火车/测试制度并进行研究,以了解为什么过度配备是危险的。用数据检查代码。

我也建议不要太挂了,但进一步阅读。一旦你看到它们在经常性和建设性神经网络中的泛化,前馈网络中的某些实践就会变得更加清晰。我还建议扩大范围:贝叶斯网络,模糊认知图,SOM,Boltzman机器,模拟退火和强化学习都有直觉。

这是否回答你的问题?

+0

我对像XOR网络这样的小问题有了更好的理解。我对网络行为的掌握随着我无法解决的问题而崩溃,反向传播成为我的墙。 我可以写它,但我不明白它是如何工作的细节。 – ironfroggy 2008-11-23 15:53:57

+0

我在同一条船上,我无法理解,但随着时间的推移,我看到了很多相关的想法,我终于明白了。让我尝试几个解释。 – 2008-11-23 16:04:13

0

您需要对Pascal或Delphi有所了解,但ThinkQuest的this overview在编程方面非常有帮助。它也解释了一些困难以及数学看起来有点吓人的原因。 (我也不是数学家)

我很早就对这类事情很感兴趣,而且还在寻找一些我可以很快跟进的步骤。

希望至少有一点帮助。

0

我曾亲自使用:

实用的神经网络中的配方C++

http://www.amazon.com/Practical-Neural-Network-Recipes-C/dp/0124790402/ref=pd_bxgy_b_img_b/179-4083507-8029219

在我看来,作者并没有充分利用C++的更强大的功能,在许多情况下,它会读取更多像传统的C类一样。这本书现在也有点过时了。然而,如果你需要解释神经网络中使用的算法和技术,以一种聪明的外行人可以理解的方式来解释,以便你可以自己去尝试这些东西,那么我肯定会给这个试试看。这里没有多少眺望,这正是我喜欢的。

它会带您完成编程神经网络所需的所有主要工作 - 如何比较实际输出和期望值以获得错误信号,然后将此错误信号与反向传播算法结合使用以修改网络链接连接强度,迭代地这样做,以便神经网络逐渐“学习”任务。