7 Z$ @9 d) s7 z7 p: f& F! R (4)终止准则:和模拟退火,遗传算法差不多,常用的有:给定一个迭代步数;设定与估计的最优解的距离小于某个范围时,就终止搜索;当与最优解的距离连续若干步保持不变时,终止搜索; ) f- J M0 A Z8 e4 @6 ^8 ^2 n 4 @* j7 L) X* n0 |' X$ |- t & q8 R5 F9 n' e, d* S. z 禁忌搜索是对人类思维过程本身的一种模拟,它通过对一些局部最优解的禁忌(也可以说是记忆)达到接纳一部分较差解,从而跳出局部搜索的目的。 B3 g3 K9 x$ v1 K. z) @ $ C5 ]' ?. F" ^, t: V& R7 F% |% z' t# m
7 m5 m# ?- n1 Y0 H) N! Z+ ^! m
7 l" F9 ]& v! B+ t- @6 N! i
人工神经网络$ R* a M, f# [6 H4 N( X4 i; \
7 f8 \' K3 _3 x' H2 H
- K7 [$ Z8 R1 Q) A6 Y
! _# h7 ]4 f; v! l' W 人工神经网络(Artificial Neural Network,ANN) 6 X0 H" ?8 k& z" l% n, n9 t$ }: ~; F' p
- V+ O- p/ c2 W. s3 w 神经网络从名字就知道是对人脑的模拟。它的神经元结构,它的构成与作用方式都是在模仿人脑,但是也仅仅是粗糙的模仿,远没有达到完美的地步。和冯·诺依曼机不同,神经网络计算非数字,非精确,高度并行,并且有自学习功能。. c" Y( k* U0 a; @ `! b Y9 H
( R; O' I. a# y1 v4 P+ I( r2 e
生命科学中,神经细胞一般称作神经元,它是整个神经结构的最基本单位。每个神经细胞就像一条胳膊,其中像手掌的地方含有细胞核,称作细胞体,像手指的称作树突,是信息的输入通路,像手臂的称作轴突,是信息的输出通路;神经元之间错综复杂地连在一起,互相之间传递信号,而传递的信号可以导致神经元电位的变化,一旦电位高出一定值,就会引起神经元的激发,此神经元就会通过轴突传出电信号。; W F& w& y. y6 v
; \( d% F* o1 a
7 w( w `$ v: T4 M/ L: y5 r
而如果要用计算机模仿生物神经,就需要人工的神经网络有三个要素:(1)形式定义人工神经元;(2)给出人工神经元的连接方式,或者说给出网络结构;(3)给出人工神经元之间信号强度的定义。 3 l/ U, }' ^% D1 T z3 n1 o, {$ r- i
) }9 \! r0 J2 y' B" P& \3 O l
历史上第一个人工神经网络模型称作M-P模型,非常简单: : q4 d7 K5 q5 N5 X$ n 9 n. Q( T, J$ F2 k4 ?' b, [& K
其中,表示神经元i在t时刻的状态,为1表示激发态,为0表示抑制态;是神经元i和j之间的连接强度;表示神经元i的阈值,超过这个值神经元才能激发。 2 B" ?! v; _# w8 L! J9 j! C " V `* L) a$ W1 h3 R" K 6 N: X6 F6 A6 J; H' W 这个模型是最简单的神经元模型。但是功能已经非常强大:此模型的发明人McCulloch和Pitts已经证明,不考虑速度和实现的复杂性,它可以完成当前数字计算机的任何工作。 & l9 S2 k9 p( M/ i( n 1 [% S8 d: ?" ~4 S, H9 ^3 K# B4 M3 k, l4 `: B& y
以上这个M-P模型仅仅是一层的网络,如果从对一个平面进行分割的方面来考虑的话,M-P网络只能把一个平面分成个半平面,却不能够选取特定的一部分。而解决的办法就是“多层前向网路”。9 K. {* J4 [! D/ W! T
) @6 |6 L9 w" h. R , y+ J& `& I4 }: @) _ 为了让这种网络有合适的权值,必须给网络一定的激励,让它自己学习,调整。一种方法称作“向后传播算法(Back Propagation,BP)”,其基本思想是考察最后输出解和理想解的差异,调整权值,并把这种调整从输出层开始向后推演,经过中间层,达到输入层。 9 N6 j) P2 V1 v+ _9 j 3 V* l* M D! u0 R2 M* m# S ^1 {0 z) B: H( Z
可见,神经网络是通过学习来达到解决问题的目的,学习没有改变单个神经元的结构和工作方式,单个神经元的特性和要解决的问题之间也没有直接联系,这里学习的作用是根据神经元之间激励与抑制的关系,改变它们的作用强度。学习样本中的任何样品的信息都包含在网络的每个权值之中。 8 I3 Q6 f' i8 ~ 9 [7 N8 ^% Z! k! J* T E 0 r" G# J6 c# l% G' I- \ BP算法中有考察输出解和理想解差异的过程,假设差距为w,则调整权值的目的就是为了使得w最小化。这就又包含了前文所说的“最小值”问题。一般的BP算法采用的是局部搜索,比如最速下降法,牛顿法等,当然如果想要得到全局最优解,可以采用模拟退火,遗传算法等。当前向网络采用模拟退火算法作为学习方法的时候,一般成为“波尔兹曼网络”,属于随机性神经网络。 / P8 R; |; P) d2 [3 ?* _ " {$ \7 P/ t7 `3 P . R+ \+ k/ M( P 在学习BP算法学习的过程中,需要已经有一部分确定的值作为理想输出,这就好像中学生在学习的时候,有老师的监督。如果没有了监督,人工神经网络该怎么学习?" u# Z0 v8 V! s/ R5 m
0 B% U& Y8 d4 q, d, |% B& F1 E4 P8 g$ [$ u
就像没有了宏观调控,自由的市场引入了竞争一样,有一种学习方法称作“无监督有竞争的学习”。在输入神经元i的若干个神经元之间开展竞争,竞争之后,只有一个神经元为1,其他均为0,而对于失败的神经元,调整使得向对竞争有利的方向移动,则最终也可能在一次竞争中胜利; 0 O- w" [/ r; a8 I, I( v( e7 o- p/ S4 K& s% p) P
4 i+ I# b0 {% W
人工神经网络还有反馈网络如Hopfield网络,它的神经元的信号传递方向是双向的,并且引入一个能量函数,通过神经元之间不断地相互影响,能量函数值不断下降,最后能给出一个能量比较低的解。这个思想和模拟退火差不多。 1 U7 c. @7 {8 K, r$ k, {0 w; h 6 q: u; b4 K) ?( E: O 9 g$ C5 R1 [+ ^ 人工神经网络应用到算法上时,其正确率和速度与软件的实现联系不大,关键的是它自身的不断学习。这种思想已经和冯·诺依曼模型很不一样。4 u8 s) Q: J" G( l# g+ `( _
0 z/ P4 ]/ {) t4 x3 Z2 W% ]. j0 X5 C# V! }: l0 h0 }/ u
y2 N# R' U$ _* a
9 `1 v5 X6 ~) g- z
总结 2 G9 \; f( P* y# l- h 9 d" ?+ u: y- n, W$ t0 B 1 z" Z( B- F0 M% z& y% D& Y4 h# {4 p
模拟退火,遗传算法,禁忌搜索,神经网络在解决全局最优解的问题上有着独到的优点,并且,它们有一个共同的特点:都是模拟了自然过程。模拟退火思路源于物理学中固体物质的退火过程,遗传算法借鉴了自然界优胜劣汰的进化思想,禁忌搜索模拟了人类有记忆过程的智力过程,神经网络更是直接模拟了人脑。 ) J! c2 ~7 `+ {6 A. t7 i0 j% p 4 q- w( N' O1 p7 |4 h) Y: P/ ]0 K' P! q" c- Q( q
它们之间的联系也非常紧密,比如模拟退火和遗传算法为神经网络提供更优良的学习算法提供了思路。把它们有机地综合在一起,取长补短,性能将更加优良。) b; c: z2 ?. f9 J9 [1 |5 g) @. x( P
% L+ d+ E. u7 P' \ , C; \6 h* K8 D 这几种智能算法有别于一般的按照图灵机进行精确计算的程序,尤其是人工神经网络,是对计算机模型的一种新的诠释,跳出了冯·诺依曼机的圈子,按照这种思想来设计的计算机有着广阔的发展前景# b# Y6 p4 V; N6 \1 e n