《神经网络与PyTorch实战》——1.1.4 人工神经网络
1.1.4 人工神经网络
人工神经网络是由多个神经元组成的网络。在神经网络中,某些神经元的输出会作为另外一些神经元的输入。
我们来看一个例子。图1-5是一个由两个神经元组成的神经网络。
第1个神经元就是上节提到的与运算神经元,它可以将输入转化为输出。第2个神经元有3个输入,前2个输入直接取自第1个神经元的输入,第3个输入是第1个神经元的输出。第2个神经元可以将输入转化为输出。这两个神经元组成的神经网络可以将输入转化为输出
仿照之前对与运算的分析,我们可以列表验证,当输入时,输入和输出如表1-2所示。这就是1.1.3节提到的或运算。在该节中,我们知道了单个神经元不可能实现或运算,但是现在,我们用两个权重不同的神经元搭成的神经网络实现了或运算。
表1-2 或运算中输入和输出之间的关系
上面的例子告诉我们:多个神经元可以实现单个神经元不能完成的运算。这已经暗示了神经网络有可能实现各种各样的运算。那么,神经网络是否能模拟所有可能的运算呢?答案是肯定的。
为了体现神经网络强大的表达能力,下面来说明。由非线性函数为的神经元组成的神经网络可以模拟任意闭区间上的连续分段线性函数。下面就来证明这一点。考虑一个任意满足以下性质的函数:①函数只有1个输入,输入范围是闭区间;②函数连续;③;④区间被分划点()划分为许多小区间,在每个小区间()上函数都是线性的,且斜率为。下面就来构造一个神经网络模拟这个输入/输出关系。为了模拟函数,将表示成个只有一个分段点的分段线性函数的线性组合,即(见图1-6):
每一个都可以用一个单输入的神经元来表示,而个这样的神经元的输出都输入到同一个神经元。这样,我们就得到了如图1-7所示的神经网络。
通过上面的分析,我们知道这个神经网络的输入/输出关系与分段线性函数完全相同。虽然图1-7中的神经网络只针对仅有一个输入的情形,但是可以将它扩展到更多的输入,不再赘述。
因此,如果输入和输出直接的关系不是分段线性函数,那么它还能不能用神经网络来模拟呢?答案是肯定的。直观来看,任意一个输入/输出关系都可以用分段线性函数来近似。只要分段点足够多,就可以非常精确地用分段线性函数来近似这个函数。而前面我们已经知道分段线性函数可以通过人工神经网络搭建得到,所以只要人工神经网络中神经元的个数足够多,神经元之间的连接关系足够复杂,我们就可以非常精确地模拟任意的输入/输出关系。这被称为万能近似定理(universal approximation theorem)。
- 点赞
- 收藏
- 关注作者
评论(0)