1 y- q9 _$ j, C+ q4 r( e , N, e$ d ~' V$ K: ^! F2 `, T4 D. d2 _: H- t) @
人工神经网络(Artificial Neural Network,ANN) 1 L: }. b/ P" y ( l( U7 ]: `3 ] ; ?! [( f' j& q3 V" f% [* ` 神经网络从名字就知道是对人脑的模拟。它的神经元结构,它的构成与作用方式都是在模仿人脑,但是也仅仅是粗糙的模仿,远没有达到完美的地步。和冯·诺依曼机不同,神经网络计算非数字,非精确,高度并行,并且有自学习功能。 9 Q( g/ X9 b, y9 r2 e; ^# m4 o, P2 j) z
' l7 P- }/ C" X
生命科学中,神经细胞一般称作神经元,它是整个神经结构的最基本单位。每个神经细胞就像一条胳膊,其中像手掌的地方含有细胞核,称作细胞体,像手指的称作树突,是信息的输入通路,像手臂的称作轴突,是信息的输出通路;神经元之间错综复杂地连在一起,互相之间传递信号,而传递的信号可以导致神经元电位的变化,一旦电位高出一定值,就会引起神经元的激发,此神经元就会通过轴突传出电信号。 7 m* \+ B% @6 G7 ]# t. V% u6 m" Z. X" n* R
& G( S! {2 s! y/ n- G
而如果要用计算机模仿生物神经,就需要人工的神经网络有三个要素:(1)形式定义人工神经元;(2)给出人工神经元的连接方式,或者说给出网络结构;(3)给出人工神经元之间信号强度的定义。 9 }: {+ i1 B4 t' b& o9 ^% l. c 7 h, X* _+ R1 P E8 p , T3 T8 x5 q% a' U 历史上第一个人工神经网络模型称作M-P模型,非常简单: 6 w7 p" X& n& L, k2 ^% a; U& U* b) t& V3 T* d3 a! R D) N7 X
% C- b, S+ @$ ?( g: c( r7 ?
其中,表示神经元i在t时刻的状态,为1表示激发态,为0表示抑制态;是神经元i和j之间的连接强度;表示神经元i的阈值,超过这个值神经元才能激发。 8 O/ c8 h# ?9 k & z% q N) j% A2 g+ @ 2 ]1 F7 D# X$ k" u 这个模型是最简单的神经元模型。但是功能已经非常强大:此模型的发明人McCulloch和Pitts已经证明,不考虑速度和实现的复杂性,它可以完成当前数字计算机的任何工作。 8 [( d r6 B$ b0 k9 H* K. [1 z$ ^8 J ~+ L( {) j4 n$ } N# K* ]: v3 Y% Z( [4 A
以上这个M-P模型仅仅是一层的网络,如果从对一个平面进行分割的方面来考虑的话,M-P网络只能把一个平面分成个半平面,却不能够选取特定的一部分。而解决的办法就是“多层前向网路”。# h: t8 k% E9 |7 N ]
$ M0 }6 c ^% Y. L, Q! x" n/ k. T" X& i, ?, K- A6 @% _
为了让这种网络有合适的权值,必须给网络一定的激励,让它自己学习,调整。一种方法称作“向后传播算法(Back Propagation,BP)”,其基本思想是考察最后输出解和理想解的差异,调整权值,并把这种调整从输出层开始向后推演,经过中间层,达到输入层。# a& b/ H e$ z0 ~; U, k