有效地计算任意神经网络输出?

时间:2017-03-20 16:20:48

标签: neural-network artificial-intelligence

我正在学习神经网络,它们是我遇到过的最重要的东西。

我的问题是:如何计算具有任意拓扑的神经网络的输出?是否有一些算法或经验法则可供使用?

例如,我知道前馈网络具有直接的矩阵表示,但是具有环路或输出连接到输入的网络呢?那些是否有矩阵形式?或者是产生输出以进行某种图遍历的唯一方法吗?

示例:

enter image description here

1 个答案:

答案 0 :(得分:3)

  1. 让我们看看你的神经网络结构图片, 附在你的问题上。
    人工神经网络连接不像它看起来那样是常见的有向图。 此处隐含了其他限制,例如按层分布的不同类型的节点 有输入节点,隐藏节点和输出节点。 简单来说,输入节点(神经元值)被认为是只读的,并且无法进行修改。这就是为什么节点9和4之间的连接没有意义,因为输入4本身​​,因为它的信号不会进一步传播。
    对于节点8和11之间的连接也是如此。 您可以看一下here,神秘网络的基础知识以简单的方式解释。

  2. 谈论带有循环的网络,我们假设经常性的网络。 假设我们在下面的图片中显示recursive neural networkrecursive neural network 我们如何计算输出?
    我们可以尝试应用与前馈网络相同的计算规则。 formula
    formula,此处 f - 激活功能 但是,等一下,我们不需要知道 formulaformula 值? 从技术上讲,这不是递归。
    您可以将其读作“formula节点的下一个值取决于formula节点的当前值”。
    所描绘的网络的动态可以通过“展开”(如下所示)来可视化。 enter image description here 因此,可以将循环网络视为深度网络,每个时间步长具有单个层,并且跨时间步长共享权重。在这里,我们将步骤0隐藏层视为步骤1的输入 回到我们的案例,第一步计算的公式应该看起来像formula
    同样,第二步可以计算为 formula

  3. 为了简化,formulaformula的值可以通过零初始化(尽管实际上初始状态被训练为模型参数)。展开用于training(从技术上讲,我们只是用一系列前馈隐藏层替换循环网络。)

    总而言之,经常性网络仍然具有矩阵表示和操作,尽管它看起来并不明显和直截了当。