【问题标题】:Non-mathematical Description of Neural Networks神经网络的非数学描述
【发布时间】:2010-09-23 16:20:06
【问题描述】:

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

【问题讨论】:

  • 神经网络只是花哨的插值函数。我怀疑你是否可以在不解释什么是插值的情况下获得对神经网络的甚至远程准确的描述。

标签: neural-network


【解决方案1】:

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

【讨论】:

  • 你知道,我已经看到你推荐了几次,所以我把它放在我的愿望清单上。
  • 一旦开始,我就很难放下它。享受吧!
  • 我想要一个非数学、专业程序员的解释。因此,编程参考不是问题。感谢您的建议!
  • 这本书很棒。我也推荐它。
【解决方案2】:

不幸的是,我不知道是否有一个很好的单一“程序员资源”可以为您提供所有概念。我喜欢Neural and Adaptive Systems: Fundamentals through Simulations

“程序员理解”神经网络的最佳方法不是通过检查代码,而是通过问题和正确的结果。所以,如果你不想看数学,我建议你看一个给定的问题。例如,将 XOR 问题作为为什么需要非线性激活函数的示例,查看变量的数量及其可能值以了解为什么神经网络需要具有一定的大小和拓扑才能有效,以及将您的数据拆分为训练/测试方案并进行研究以了解为什么过度拟合是危险的。用数据检查代码。

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

这是否有助于回答您的问题?

【讨论】:

  • 我对 XOR 网络这样的小问题理解得更好。我对网络行为的理解因我自己无法解决的问题而崩溃,反向传播成为我的墙。我可以写,但我不明白它是如何工作的。
  • 我和backprop在同一条船上,我无法理解它,但随着时间的推移,我看到了很多相关的想法,我终于明白了。让我尝试几个解释。
  • 内部节点是特征。因此,首先您要了解哪些输入共同构成一个特征,然后哪些特征会影响输出。问题出在输出上,不知道特征是否不相关,或者特征是否确定不好。
  • 因此,如果它不相关,则意味着其他示例将通过稍后更正输入的权重来进行补偿。但是,如果特征确定不好,那么其他示例将无法补偿,并且特征会发生变化。
  • 强化学习中有一种密切相关的技术,称为值传播。在强化学习中,你试图优化一些奖励,但如果你做了一件好事,你不知道哪个动作导致了你的奖励,所以你必须将奖励分散回来,然后平均下来。
【解决方案3】:

您需要对 Pascal 或 Delphi 有一点了解,但 ThinkQuest 的 this overview 从编程的角度来看非常有帮助。它还解释了一些困难以及为什么数学看起来有点吓人。 (我也不是数学家。)

不久前我对这类事情非常感兴趣(大部分时间仍然如此),并寻找一些我可以很快跟进的演练。

希望至少能有所帮助。

【讨论】:

    【解决方案4】:

    我个人用过:

    C++ 中的实用神经网络食谱

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

    在我看来,作者并没有充分利用 C++ 更强大的功能,在很多情况下它读起来更像是带有类的传统 C。这本书现在也有点过时了。

    但是 - 如果您需要对神经网络中使用的算法和技术进行解释,并以聪明的外行可以理解的方式进行解释,以便您可以离开并亲自尝试这些东西,那么我肯定会给这本书试一试。这里没有太多的凝视,这是我喜欢的。

    它带您了解编写神经网络所需的所有主要内容 - 如何将实际输出与期望的输出进行比较以获得误差信号,然后将此误差信号与反向传播算法结合使用来修改网络链接连接强度,迭代地执行此操作,以便神经网络逐渐“学习”任务。

    【讨论】:

      【解决方案5】:

      我写了一篇几乎就是这个标题的文章。本文介绍了如何将数据表示为神经网络,以及其他机器学习方法,例如支持向量机。

      http://www.heatonresearch.com/content/non-mathematical-introduction-using-neural-networks

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-11
        • 2016-05-25
        • 2019-03-15
        • 2011-08-17
        • 2020-10-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多