我不是数学家。我喜欢一个很好的数学难题,但我全心全意地承认自己的弱点。也就是说,我一直对神经网络感兴趣,虽然我理解它们足以从头开始实现它们,但当我需要理解任何我只能找到数学证明的概念时,我就会碰壁。程序员的神经网络指南在哪里,使用代码而不是公式来解释实际推理?
答案 0 :(得分:9)
另一种选择是非数学,非编程解释。书Blondie24: Playing at the Edge of AI包含了对神经网络的非常好的解释。这是关于由作者开发的玩跳棋AI。没有编程参考,它不是完全,但它很好地解释了算法如何工作而不涉及解决方案的代码。
答案 1 :(得分:3)
不幸的是,我不知道是否有一个好的单一“程序员来源”会给你所有的概念。我喜欢Neural and Adaptive Systems: Fundamentals through Simulations。
让“程序员理解”神经网络的最佳方法不是通过检查代码,而是通过检查问题和正确的结果。所以,如果你不想看数学,我建议你看一下给定的问题。例如,将XOR问题视为您需要非线性激活函数的一个示例,查看变量的数量及其可能的值,以便了解为什么神经网络需要具有特定大小并且toplogy才有效,以及将您的数据分成火车/测试制度,并进行研究,以了解为什么过度拟合是危险的。用数据检查代码。
我还建议不要太挂,但要进一步阅读。一旦您看到它们在循环和建设性神经网络中的泛化,前馈网络中的某些实践就会变得更加清晰。我还建议更广泛:贝叶斯网络,模糊认知地图,SOM,玻尔兹曼机器,模拟退火和强化学习都有直觉。
这会回答您的问题吗?
答案 2 :(得分:0)
您需要在Pascal或Delphi中进行一些理解,但ThinkQuest的this overview在编程方面非常有用。它还解释了一些困难以及数学看起来有点令人生畏的原因。 (我也不是数学家。)
前一段时间我对这种事情很感兴趣(大部分时间仍然是这样),并且寻找一些我可以很快跟进的演练。
希望至少有所帮助。
答案 3 :(得分:0)
我亲自使用过:
C ++中的实用神经网络配方
在我看来,作者没有充分利用C ++的更强大的功能,在许多情况下,它更像传统的C类。这本书现在也有点过时了。
但是 - 如果你需要解释神经网络中使用的算法和技术,以智能外行可以理解的方式解释,这样你就可以自己去试试这些东西,那么我肯定会给这本书一试。这里没有太多的肚脐凝视,这就是我喜欢的。
它将指导您完成编程神经网络所需的所有主要内容 - 如何将实际输出与所需的实际输出进行比较以获取错误信号,然后将此错误信号与反向传播算法结合使用以修改网络链接连接强度,迭代地执行此操作,以便神经网络逐渐“学习”任务。
答案 4 :(得分:0)
我做了一篇几乎正是这个标题的文章。本文描述了如何将数据表示为神经网络,以及其他机器学习方法,如支持向量机。
http://www.heatonresearch.com/content/non-mathematical-introduction-using-neural-networks