2.1 神经元
神经网络是指从人类大脑神经元的研究中获取灵感,通过模拟大脑神经元的功能和网络结构去完成认知任务的一种机器学习算法体系。早在1904年,就有生物学家发现了人脑神经元的组成结构,如图2.2所示。
图2.2 人脑神经元结构
左侧结构看上去比右侧粗大,因为较粗大的左侧结构是细胞核的所在。此外,在左侧结构中有很多枝杈,这些小的枝杈就是树突,而从中间到右侧较纤细的这一条就是轴突。在生物学中,一个神经元通常有多个树突,主要用于接收信息,而轴突只有一个。在轴突的尾端有许多神经末梢,用于向其他神经元传递信息。某个神经元的轴突的末端与其他神经元的某个树突相连接的位置叫作突触。突触就是发生信号传递的位置。
总体来说,生物神经元的工作机制是:当人的感官受到了刺激,会激活相应的大脑神经元细胞;神经元细胞感受到“兴奋”后,会向其他神经元传递化学物质;这些化学物质会引发神经元的电位变化,然后在细胞核处进行电位整合,判断是否超过阈值;若超过阈值,这个神经元就会被激活,继续向其他神经元细胞传递“兴奋”的信号。
深度学习中的神经元模型就是对生物神经元的抽象和模仿,如图2.3所示。该模型是心理学家McCulloch和数学家Pitts参考生物神经元的结构,在1943年发表的抽象神经元模型,简称“MP模型”。在该模型中,输入1、输入2和输入3相当于神经元的树突,中间的权值求和及非线性函数相当于轴突,输出相当于神经元的轴突。在这里要注意,该模型中的箭头都是有方向的,每个箭头都代表一个连接。这些有向箭头意味着,在输入一个数值时会乘以相应连接的权值。这就是神经元模型的加权传递。
图2.3 深度学习中的神经元模型
我们将三个输入、三个权值及输出换成字母。a表示输入,w表示权重。在输入区,a是传递信号的初始值,经过中间的有向箭头进行加权传递,信号会变成a×w。然后,对收到的不同加权信号进行求和运算。最后,进行一次sgn函数(符号函数,函数值大于0时取1,函数值小于或等于0时取0)运算。这个过程相当于神经元进行阈值判断,以决定是否继续传递“兴奋”的信号。输出的信号是z。
在神经元模型中,最后一步判断阈值所使用的sgn函数也称为“激活函数”。从字面意思看,该函数就是用于判断神经元是否被激活的函数。激活函数是深度学习中神经元的重要组成部分,有多种形式,可以满足我们对输出层的不同要求。
接下来,我们将神经元模型中的求和及函数运算当成一个整体,作为神经元的内部计算部分,如图2.4所示。由于神经元的输入、计算和输出都是有向的,可以将单个神经元看作一个节点,神经网络便是由多个神经元节点相互连接而成的。
图2.4 简化后的神经元