改进遗传算法优化BP神经网络的图像压缩*
2021-02-05罗山
罗 山
(攀枝花学院交通与汽车工程学院,四川 攀枝花 617000)
0 引言
针对BP神经网络和遗传算法存在收敛速度慢、易陷入局部极小值等不足,文献[1]实现了基于遗传算法的BP神经网络压缩算法,压缩性能有所提高。文献[2]提出一种基于遗传算法的混合智能学习算法,克服了BP算法收敛速度慢和易局部收敛的缺陷。杨从锐等[3]提出一种改进的自适应遗传算法,该算法在全局寻优的收敛速度、最优解、求解精度和稳定性等方面都有较大的改善。陈闯等[4]提出一种改进遗传算法优化BP神经网络的识别算法,提升了遗传算法的寻优性能。闫春等[5]利用改进的自适应遗传算法优化BP神经网络初始权重。
本文针对现有改进的遗传算法的不足,改进非线性自适应调整交叉概率和变异概率的方法,以保留更多的优良个体,加快收敛速度,使算法搜索到全局最优解。将改进的遗传算法对神经网络进行优化并用于图像压缩,进行仿真实验,最后将改进方法与原来方法进行比较分析,验证了改进方法的有效性。
1 改进的遗传算法
1.1 适应度函数设计
遗传算法优化BP神经网络中,根据最优个体获得初始权值和阈值,用训练数据训练BP神经网络后预测系统的输出,把预测输出和期望输出之间的误差绝对值之和作为个体适应度值,以此评价个体的优劣,适应度值越小,表示该个体越优。其适应度函数表达式为:
.
(1)
式中,n为网络输出层节点个数,yi为网络第i个节点的期望输出,oi为第i个节点的预测输出,k为系数。
通过适应度值的标定[6]来调整个体选择能力,对式(1)的适应度标定为:
(2)
式中,f' 为调整后的适应度值;fmax为初始的适应度值的最大值;fmin为初始的适应度值的最小值;δ为取值在区间(0,1)内的常数。
1.2 改进的自适应交叉与变异概率
针对固定的交叉和变异概率的缺陷,Srinivas等人提出自适应遗传算法(adaptive genetic algorithm,AGA)[7]。但该方法在种群进化初期不利,增加了进化走向局部最优的可能性。为此,杨从锐提出一种改进的自适应遗传算法[3],但其中的交叉概率公式中的因式取值范围的上限偏小,且下限接近于零,变异概率公式中的因式取值范围的下限偏大,且上限接近于1,不利于概率调整到合适的值。本文在此基础上提出一种改进的非线性自适应遗传算法,其自适应交叉与变异概率公式分别为:
(3)
(4)
式中,k1、k2、k3和k4为区间(0,1)内的调节参数,favg为平均适应度值,fmax为最大适应度值,pc为交叉概率,pm为变异概率。
随着favg的变化,arcsin(favg/fmax)变化得更快,所以用arcsin(favg/fmax)作为判断条件,这样便能更好地判断种群适应度之间的集中分散程度。以π/6为界来选择pc与pm的计算式,是为了判断种群的平均适应度值与最大适应度值的接近程度,进而确定种群适应度值的集中与分散程度,实现非线性自适应调整pc与pm的值。
2 改进的遗传算法优化BP神经网络
2.1 BP神经网络概述
BP(Back Propagation)神经网络[8]具有强的非线性映射能力,结构简单、易于实现。其核心是BP算法与梯度下降算法,学习过程包括信号正向传播和误差反向传播。正向传播是输入训练数据,经隐含层逐层处理并传递给输出层,若输出层输出与期望值存在误差,则转入反向传播过程;反向传播时,误差由输出层逐层传递回输入层,并不断修正权值和阈值。这两个过程反复交替进行,直到误差或训练次数满足要求为止。在学习过程中,网络的初始权值和阈值对训练结果有很大的影响。
2.2 IGA-BP网络算法
针对BP神经网络随机产生初始权阈值带来的问题,利用前述改进的遗传算法的全局搜索能力来优化BP网络,从而获得最优的初始权值和阈值。IGA-BP网络算法过程为:
1) 确定BP网络拓扑结构,设置网络和遗传参数;
2) 实数编码,产生初始种群;
3) 用式(1)计算个体适应度值;
4) 用选择算子选取个体,依据式(3)的交叉概率和式(4)的变异概率分别对选取的个体进行交叉和变异操作;
5) 用式(1)计算个体适应度值,并根据式(2)进行适应度值标定;
6) 判断是否满足遗传算法结束条件(最大进化代数),若满足,则输出最优个体并赋予BP网络的初始权值和阈值;否则,返回步骤4)。
3 基于IGA-BP网络的图像压缩
将IGA-BP网络用于图像压缩,其基本模型如图1所示。模型中的n×n表示对输入图像的分块大小,图像块中的每一个像素点与一个输入或输出神经元相对应。压缩的基本思想是输入原图像经过隐含层处理后输出为压缩结果,作为图像特征保存,解压时,将图像特征经过输出层输出为重建图像。因此输入层到隐含层的连接权值相当于编码器,隐含层到输出层的连接权值相当于解码器。
图1 基于IGA-BP网络的图像压缩模型
基于前述研究,IGA-BP网络图像压缩算法步骤为:
1) 对图像分块,并归一化处理;
2) 执行IGA-BP网络算法获得最优的初始权值和阈值;
3) 用最优的初始权值和阈值训练网络;
4) 计算隐含层的输出,并保存压缩数据;
5) 载入压缩数据,计算输出层的输出;
6) 对输出数据反归一化,由数据块重建图像。
4 仿真实验及分析
将256×256的图像划分为4×4的子块,按行从左向右依次将所有子块转换为列向量,依次排列构成矩阵作为训练样本。遗传参数为:种群规模为20,最大进化代数为100。神经网络结构为16-7-16,目标误差为0.001,最大训练步数为5000。实验结果如图2,图3,图4所示。
图2 不同压缩算法效果对比(一)
图3 不同压缩算法效果对比(二)
图4 不同压缩算法效果对比(三)
为进一步证实IGA-BP压缩算法的性能,给出三种压缩算法重建图像的峰值信噪比(PSNR)和压缩率(Rate)[9]如表1所示。
表1 不同压缩算法的性能比较
对比图2、图3和图4的重建图像,BP算法的重建图像中存在方块效应,细节模糊,目标不清晰,失真度大;GA-BP算法存在较明显的方块效应,轮廓与细节较模糊;而IGA-BP算法重建图像保真度高,轮廓与细节清晰,视觉效果良好,压缩性能好。从表1可以看出,与BP算法和GA-BP算法相比,IGA-BP算法的PSNR有大幅度的提高,提高了8个dB以上,但Rate增大的幅度很小,压缩比几乎不变化,最高达5.8,压缩性能得到极大的改善。可见,压缩率相差很小时,IGA-BP算法的重建图像质量最好,压缩性能达到要求。
5 结束语
针对BP算法和遗传算法的不足,在前人研究的基础上改进自适应交叉与变异概率,调整交叉与变异概率到更合适的范围,根据适应度值的分散与集中程度非线性调整交叉与变异概率,提高遗传算法的全局优化能力。将改进的遗传算法对神经网络进行优化,用优化后的网络进行图像压缩,通过实验证实了改进算法的有效性,但也存在运算量增大的缺陷。