《人工智能》之《计算智能》(为什么这个标题重复率高?)
教材:《人工智能及其应用》,蔡自兴等,2016m清华大学出版社(第5版)
参考书:
《人工智能》之《计算智能》
1 概述
计算智能是信息科学、生命科学、认知科学等不同学科相互交叉的产物。它主要借鉴仿生学的思想,基于人们对生物体智能机理的认识,采用数值计算的方法去模拟和实现人类的智能。
计算智能目前还没有一个统一的定义,使用较多的是美国科学家贝兹德克(J.C.Bezdek)从计算智能角度给出的定义。
贝兹德克于1994年提出,表示ABC与神经网络(NN)、模式识别(PR)和智能(I)之间的关系。
- A-Artificial:人工的 (非生物的)
- B-Biological:物理的 + 化学的 +(?) = 生物的
- C-Computational:数学 + 计算机
计算智能(CI)、人工智能(AI)和生物智能(BI)的关系:
- 计算智能是智力的低层认知。
- 人工智能是在计算智能基础上引入知识产生的中层认知。
- 生物智能(人类智能)是最高层次的智能。
ABC的交互关系图:
定义1:当一个系统只涉及数值(低层)数据,含有模式识别部分,不应用人工智能意义上的知识,且能够呈现出:
- 计算适应性;
- 计算容错性;
- 接近人的速度;
- 误差率与人相近。
则该系统就是计算智能系统。
定义2:当一个智能计算系统以非数值方式加上知识,即成为人工智能系统。
神经网络是一种大规模的并行分布式处理器,天然具有存 储并使用经验知识的能力。它从两个方面模拟大脑:(1)网络 获取的知识是通过学习来获取的;(2)内部神经元的连接强度, 即突触权重,用于储存获取的知识。
——西蒙·赫金(SimonHaykin) [Haykin,1994]
2 神经计算
2.1 人工神经网络研究的发展
- 1943年麦卡洛克和皮茨提出神经网络模型(称为MP模型)的概念。
- 20世纪60年代威德罗和霍夫提出自适应线性元件。
- 60年代末至80年代中期,整个神经网络研究处于低潮。
- 20世纪80年代中后期,最流行的一种连接主义模型是分布式并行处理模型,它有3个特性:
1)信息表示是分布式 的(非局部的);
2)记忆和知识是存储在单元之间的连接上;
3)通过逐渐改变单 元之间的连接强度来学习新的知识。 - 2006-现在,Hinton提出深度学习,空前繁荣。
2.2 人工神经网络的特性
- 并行分布处理
- 非线性映射(理论上可以模拟任何函数)
- 通过训练进行学习
- 适应与集成
- 硬件实现(GPU)
2.3 人工神经网络的结构
人工神经网络是由大量的人工神经元经广泛互联所形成的一种人工网络系统,用以模拟人类神经系统的结构和功能。
Perceptron感知机
人工神经元模型
人工神经网络
人工神经网络主要由大量的神经元以及它们之间的有向连接构成。因此考虑三方面:
- 神经元的**函数: 主要是指神经元输入到输出之间的映射关系,一般为非线性函数。
- 网络的拓扑结构:不同神经元之间的连接关系。
- 学习算法:通过训练数据来学习神经网络的参数。
2.3.1 **函数
性质:
- 连续并可导(允许少数点上不可导)的非线性函数。可导的**函数可以直接利用数值优化的方法来学习网络参数。
- **函数及其导函数要尽可能的简单, 有利于提高网络计算效率。
- **函数的导函数的值域要在一个合适的区间内, 不能太大也不能太小, 否则会影响训练的效率和稳定性。
Sigmoid型函数
Sigmoid型函数是指一类S型曲线函数,为两端饱和函数。常用的Sigmoid型函数有Logistic函数和Tanh函数。
ReLU型函数
ReLU(Rectified Linear Unit,修正线性单元),也叫 Rectifier函数,是目前深度神经网络中经常使用的**函数。ReLU实际上是一个斜坡函数,定义为:
2.3.2 网络结构
人工神经网络由神经元模型构成,这种由许多神经元组成的信息处理网络具有并行分布结构。
前馈神经网络
在前馈神经网络中,各神经元分别属于不同的层。 整个网络中无反馈,信号从输入层向输出层单向传播,可用一个有向无环图表示。
BP网络模型
误差反向传播(Error Back Propagation)网络通常简称为BP(Back Propagation)网络,是由美国加州大学的鲁梅尔哈特和麦克莱兰于1985年提出的一种网络模型。
BP网络的网络拓扑结构是多层前向网络,如图所示。在BP网络中,同层节点之间不存在相互连接,层与层之间多采用全互连方式,且各层的连接权值可调。BP网络实现了明斯基的多层网络的设想,是当今神经网络模型中使用最广泛的一种。
对BP网络需说明以下两点:
- 每个处理单元均为非线性输入/输出关系,其作用函数通常采用的是可微的Sigmoid函数,如:
- 学习过程是由工作信号的正向传播和误差信号的反向传播组成的。
正向传播:输入模式经隐层到输出层,最后形成输出模式。
误差反向传播: 输出层开始逐层将误差传到输入层,并修改各层连接权值,使误差信号为最小的过程。
前馈神经网络的不足:
- 连接存在层与层之间,每层的节点之间是无连接的。
- 输入和输出的维数都是固定的,不能任意改变。无 法处理变长的序列数据。
- 假设每次输入都是独立的,也就是说每次网络的输 出只依赖于当前的输入。
循环神经网络
- 循环神经网络通过使用带自反馈的神经元,能够处理任意长度的序列。
- 循环神经网络比前馈神经网络更加符合生物神经网络的结构。
- 循环神经网络已经被广泛应用在语音识别、语言模型以及自然语言生成等任务上。
Hopfield网络
Hopfield网络是由美国加州工学院物理学家霍普菲尔特1982年提出来的一种单层全互连的对称反馈网络模型,分为离散Hopfield网络和连续Hopfield网络。
离散Hopfield网络模型是一个离散时间系统,每个神经元只有0和1(或-1和1)两种状态,任意神经元i和j之间的连接权值为Wij。因神经元之间为对称连接,且神经元自身无连接,因此有:
由该连接权值构成的连接矩阵是个零对角的对称矩阵。
离散Hopfield网络的特点:
- 神经元自身无连接
- 每个神经元都与其他神经元相连
每个神经元的输出都将通过突触连接权值传递给别的神经元,同时每个神经元又都接受其他神经元传来的信息,对每个神经元,其输出经过其他神经元后又有可能反馈给自己。
2.4 基于神经网络的知识表示和推理
1. 基于神经网络的知识表示
在这里,知识并不像在产生式系统中那样独立地表示为每一条规则,而是将某一问题的若干知识在同一网络中表示。例如,在有些神经网络系统中,知识是用神经网络所对应的有向权图的邻接矩阵及阈值向量表示的。
2.基于神经网络的推理
基于神经网络的推理是通过网络计算实现的。把用户提供的初始证据用作网络的输入,通过网络计算最终得到输出结果。
一般来说,正向网络推理的步骤如下:
- 把已知数据输入网络输入层的各个节点。
- 利用特征函数分别计算网络中各层的输出。
- 用阈值函数对输出层的输出进行判定,从而得到输出结果。
4 遗传算法
- 遗传算法是模仿生物遗传学和自然选择机理,通过人工方式所构造的一类优化搜索算法,是对生物进化过程进行的一种数学仿真,是进化计算的最重要的形式。
- 遗传算法为那些难以找到传统数学模型的难题指出了一个解决方法。
- 进化计算和遗传算法借鉴了生物科学中的某些知识,也体现了人工智能这一交叉学科的特点。
4.1 遗传算法的基本机理
遗传算法由密歇根大学的约翰·霍兰德和他的同事于二十世纪六十年代在对细胞自动机进行研究时率先提出。霍兰德的遗传算法通常称为简单遗传算法(SGA,Simple Genetic Algorithm)。
现以此作为讨论主要对象,加上适当的改进,来分析遗传算法的结构和机理。 它包括三个部分:
- 编码与解码
- 适应度函数
- 遗传操作
4.1.1 编码与解码
- 将问题结构变换为位串形式编码表示的过程叫编码;
- 将位串形式编码表示变换为原问题结构的过程叫解码或译码。
- 把位串形式编码表示叫染色体,有时也叫个体。
- 遗传算法的编码方法:二进制编码、浮点数编码方法、格雷码、符号编码方法、多参数编码方法等。
二进制编码
二进制编码是最常见的编码方法。
二进制编码的缺点:
- 长度较大
- 汉明(Hamming)悬崖:例如,7和8的二进制数分别为0111和1000,当算法从7改进到8时,就必须改变所有的位。(类似于数字逻辑编码中的毛刺 )
格雷编码
格雷编码是对二进制编码进行变换后所得到的一种编码方法。这种编码方法要求两个连续整数的编码之间只能有一个码位不同,其余码位都是完全相同的。它有效地解决了汉明悬崖问题,其基本原理如下:
4.1.2 适应度函数
- 体现染色体的适应能力,对问题中的每一个染色体都能进行度量的函数,叫适应度函数(fitness function)
- 在遗传算法中,一般要求适应度函数非负,并且适应度值越大越好。这样所得到的适应度函数被称为标准适应度函数Fnormal(x)。
- 对优化问题,适应度函数就是目标函数。
4.1.3 遗传操作
简单遗传算法的遗传操作主要有三种:
- 选择(selection)
- 交叉(crossover)
- 变异(mutation)
改进的遗传算法大量扩充了遗传操作,有更高的效率。
选择操作也叫复制(reproduction)操作,根据个体的适应度函数值所度量的优劣程度决定它在下一代是被淘汰还是被遗传。
一般地说,选择将使:
- 适应度较大(优良)的个体有较大的存在机会
- 适应度较小(低劣)的个体存在的机会也较小
从统计角度看,个体的适应度值越大,其对应的扇区的面积越大,被选中的可能性也越大。这种方法有点类似于发放奖品使用的轮盘,并带有某种**的意思,因此亦被称为轮盘赌选择。
4.1.4 交叉操作
4.1.5 变异操作
4.2 遗传算法的求解步骤
4.2.1 遗传算法的特点
- 遗传算法是对参数集合(定义域区间)的编码而非针对参数本身进行进化;
- 遗传算法是从问题解的编码组开始而非从单个解开始搜索;
- 遗传算法利用目标函数的适应度这一信息而非利用导数或其它辅助信息来指导搜索;
- 遗传算法利用选择、交叉、变异等算子进行随机操作,而不是利用确定性规则。遗传算法属于随机优化。
4.2.2 遗传算法的框图
- 初始化种群
- 计算种群上每个个体的适应度值
- 按由个体适应度值所决定的某个规则选择将进入下一代的个体
- 按概率pc进行交叉操作
- 按概率pm进行变异操作
- 若没有满足某种停止条件,则转第2步,否则进入下一步
- 输出种群中适应度值最优的染色体作为问题的满意解或最优解
GA算法的参数:
- 种群规模(P, population size):即种群中染色体个体的数目。
- 字串长度(l, string length)
- 交叉概率(pc, probability of crossover):控制着交叉算子的使用频率。交叉操作可以加快收敛,使解达到最有希望的最优解区域,因此一般取较大的交叉概率,但交叉概率太高也可能导致过早收敛。
- 变异概率(pm, probability of mutation):控制着变异算子的使用频率,决定了遗传算法的局部搜索能力。
- 终止条件(termination criteria):1. 完成预先设定的遗传代数。2. 种群中的最优化个体在连续若干代后没有改变或平均适应度在连续若干代基本没有改进。