单层神经网络
1943年,心理学家McCulloch和数学家Pitts共同发表了神经网络的开山之作A Logical Calculus of the Ideas Immanent in Nervours Activity ^1^,提出了神经网络的第一个数学模型------MP模型。该模型也成为了人工神经网络的基础。
神经元
生物神经元有树突、轴突和细胞核等,人工神经元对其进行模拟,每个人工神经元模型包含3个输入、1个输出和两个计算功能:
计算公式如下:
z = S g n ( a 1 w 1 + a 2 w 2 + a 3 w 3 ) z = Sgn(a_1w_1+a_2w_2+a_3w_3) z=Sgn(a1w1+a2w2+a3w3)
- z z z为输出
- a 1 , a 2 , a 3 a_1, a_2, a_3 a1,a2,a3为输入
- w 1 , w 2 , w 3 w_1, w_2, w_3 w1,w2,w3为权重
- SUM 为求和运算
- S g n Sgn Sgn为取符号函数
如果函数和权重已知,那么就可以通过神经元模型得到相应的结果。但这样的模型是固化的,无法学习。
1949年,心理学家Hebb提出了著名的Hebb定律。他认为人脑神经细胞间连接的强度是可变的,当两个细胞同时兴奋时,它们之间的连接强度就会增加:
Δ w i j = η z i a j \Delta w_{ij} =\eta z_ia_j Δwij=ηziaj
- Δ w i j \Delta w_{ij} Δwij为节点 i i i到节点 j j j间连接权重的增量;
- η \eta η为学习率;
- z i z_i zi为节点 i i i的输出;
- a i a_i ai为节点 j j j的输入;
尽管神经元模型和Hebb定律早已提出,但是由于计算能力的限制,直到1957年,第一个神经网络才真正诞生。
感知机
1957年,Frank Rosenblatt提出感知机(Perceptron)理论^2^,并搭建出了首个可以学习的由两个神经元组成的神经网络:
z 1 = S g n ( a 1 w 1 , 1 + a 2 w 1 , 2 + a 3 w 1 , 3 ) z 2 = S g n ( a 1 w 2 , 1 + a 2 w 2 , 2 + a 3 w 2 , 3 ) z_1 = Sgn(a_1w_{1,1}+a_2w_{1,2}+a_3w_{1,3}) \\ z_2 = Sgn(a_1w_{2,1}+a_2w_{2,2}+a_3w_{2,3}) z1=Sgn(a1w1,1+a2w1,2+a3w1,3)z2=Sgn(a1w2,1+a2w2,2+a3w2,3)
示意图如下:
感知机也成为单层神经网络。其计算方式也可以进一步转化为矩阵乘法的形式:
- 3个输入可以组成一个输入矩阵:
a = [ a 1 , a 2 , a 3 ] T \bm{a} = [a_1, a_2, a_3]^T a=[a1,a2,a3]T - 2个输出可以组成一个输出矩阵:
z = [ z 1 , z 2 ] T \bm{z}=[z_1,z_2]^T z=[z1,z2]T - 权重为一个两行三列的矩阵:
W = [ w 1 , 1 , w 1 , 2 , w 1 , 3 w 2 , 1 , w 2 , 2 , w 2 , 3 ] \bm{W}=\begin{bmatrix} w_{1,1}, w_{1,2},w_{1,3} \\ w_{2,1}, w_{2,2}, w_{2,3} \end{bmatrix} W=[w1,1,w1,2,w1,3w2,1,w2,2,w2,3]
感知机只能完成线性分类任务,甚至连简单的XOR(异或)问题都无法解决^3^。这也导致神经网络的相关研究一度陷入冰河期。
-
McCulloch, Warren S. and Walter Pitts. "A logical calculus of the ideas immanent in nervous activity." Bulletin of Mathematical Biology 52 (1990): 99-115. ↩︎
-
Mulmuley, Ketan. "Computational geometry - an introduction through randomized algorithms." (1993). ↩︎
-
Rosenblatt, Frank. "The perceptron: a probabilistic model for information storage and organization in the brain." Psychological review 65 6 (1958): 386-408 . ↩︎