反向传播算必须基于神经网络模型吗?

Lani ·
更新时间:2024-09-21
· 946 次阅读

1. 神经元计算模型的三种可能的形式

神经网络模型对应的代数计算式是由固定模式的,每个神经元都采用这样一个计算方式:若干个输入节点的首先线性组合成一个实数输出,然后再进行一个非线性变换,即下面这种形式:
output=f(w1x1+w2x2+...+wnxn)(1)\tag1 output = f(w_1x_1+w_2x_2+...+w_nx_n) output=f(w1​x1​+w2​x2​+...+wn​xn​)(1)
神经元也可以是下面更一般的形式:
output=f(w1x1,w2x2,...,wnxn)(2)\tag2 output = f(w_1x_1,w_2x_2,...,w_nx_n) output=f(w1​x1​,w2​x2​,...,wn​xn​)(2)
事实上,卷积神经网络中 pooling 节点的计算,就不能表示成 (1) 的形式,用到的那个 max 运算应该可以表示成(2)的形式。最后,还有下面更一般的形式:
output=f(x1,x2,...,xn)(3)\tag3 output = f(x_1,x_2,...,x_n) output=f(x1​,x2​,...,xn​)(3)

2. 神经网络模型的哲学意义

(1)、(2)两式所表达的神经原计算形式,还都具备神经网络的模型的基本形式,模型的参数还可以用神经原之间的连接权重来表示。如果神经元计算采用这个(3)所给的表达方式,那么神经元模型的参数则不存在一般的表达形式了,就没规律可循了。

在(1)、(2)中,模型参数全部通过连接的权重体现出来,函数 f(⋅)f(\cdot)f(⋅) 中不存在任何未知参数。在(3)中,连接权重全部为常数1,模型参数全部隐藏在函数 f(⋅)f(\cdot)f(⋅) 中。因此,如果神经元模型采用(3),就无法构建通常意义上的神经网络了。

从哲学角度看,一种通用的计算模型,其本质在于用基本的、简单的计算单元通过特定形式的组合,表示复杂的计算过程。神经网络正是如此,(1)、(2)两种形式的神经元模型恰恰可以扮演这种基本的、简单的计算单元的角色。数学中的泰勒级数、傅立叶级数,都是把复杂的计算过程归结为结构已知的基本运算项的组合。神经元模型如果采用(3)这种形式,则神经元本身的复杂性未知,违背了复杂运算归结为简单元算组合的哲学思想,因此这种想法必须摈弃。

一般而言,(1)、(2)两种形式的神经元计算模型已经足够解决常见的应用问题,我们认为(3)对应的模型超出了神经网络模型的范畴。对于反向传播算法而言,即使神经元计算模型采用了(3)的形式,反向传播的增量式计算方法仍然可行,只是对于(1)、(2)所表达模型而言,计算更简单、更有规律可循——模型的参数可以用通用的方式表示和求解。

如果神经元计算模型允许采用(3)的形式,因为我们完全不了非线性运算 output=f(x1,x2,...,xn)output = f(x_1,x_2,...,x_n)output=f(x1​,x2​,...,xn​) 可能是什么样的一个表达式,结果就会造成,就无法设计出像 Tensorflow 这样的深度学习算法框架。因此,从工程学的角度来看,神经元计算模型采用(1)、(2),是一种比较好的选择。

3. 反向传播必须基于神经网络模型吗?

经过刚才讨论,我们可以得出以下结论:

反向传播算法适合任何多重复合函数模型,神经网络模型是多层复合函数的一种特殊情况。 神经网络模型的优势在于,可以用简单的计算单元组合表达复杂的计算过程。
作者:quicmous



反向传播 模型 网络模型 神经网络模型 神经网络

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章