《神经网络与PyTorch实战》——1.1.3 人工神经元
1.1.3 人工神经元
在AlphaGo等软件使用的人工神经网络中,计算机使用人工神经元来模拟人的神经元。人的神经元是这样的一种运算:假设人工神经元有个输入,每个输入()都是一个实数,那么人工神经元的输出可以由个权值和1个非线性函数确定,确定的方法为
图1-4表示了这样的输入/输出关系。
在这样的人工神经元中,将每个输入乘以权重,就相当于人的神经元中树突的功能;将各输入加起来再做非线性变换,就相当于人的神经元中胞体的功能;将非线性变换的结果输出出去,就相当于轴突的功能。
下面来看一个人工神经元的例子。某个神经元有个输入,它的权值分别为、、,并且非线性函数为函数输入值和0的最大值。这个人工神经元输入和输出之间的关系是
值得一提的是,这个神经元可以完成逻辑运算中的“与”(and)运算。与运算是一种二元运算,它的输入和输出都是取自二元集合中的元素。当两个输入满足时,与运算的输出为1;在其他情况下,与运算的输出为0。我们可以列出所有可能的输入,通过逐一验证所有可能的输出来证明这个神经元实现了与运算(见表1-1)。
表1-1 与运算中输入和输出之间的关系
实际上,在非线性函数固定的情况下,选择不同的权重,神经元可以完成不同的运算。例如,在刚才的例子中,即使保持函数和输入范围为不变,只要将权重改为、、,神经元就变成下面的函数:
再进一步,如果输入范围不仅限于,这个神经元采用不同的权重后,还可以表示其他很多函数,例如等。
但是,仅仅通过改变权重,并不能实现所有的运算关系。一个不能实现的例子是“或”(or)运算。或运算是一个定义在上的二元运算,它在的情况下输出0,在其他情况下输出1,即
可以证明,不存在权重,使得神经元的输入和输出关系为或运算。用反证法证明:反设权重为时输入/输出关系为或运算,则权重应满足①;②。由②可得
,进而,,这与①矛盾。得证。
通过刚才的例子,我们了解到一个人工神经元可以表示多种输入/输出关系,但是不能表示所有可能的输入/输出关系,而实际的问题(比如围棋)远远比这样的形式复杂得多。这时候,就需要同时使用多个神经元,将它们连成网络。
- 点赞
- 收藏
- 关注作者
评论(0)