通过前面的铺垫,现在已经对感知神经网络、线性神经网络和BP神经网络有了一定的理解和认识。本章就通过前面所学到的知识进行一些实际应用(图像压缩)。下面我们了解一下压缩可以的实现方式。
BP神经网络实现图像压缩——依赖BP网络的非线性映射能力进行数据压缩
如下图所示,上下两幅图分别代表压缩前和压缩后解压的图片。
BP神经网络压缩实现方法:
首先原图是128*128像素,并且图像是灰度的。每个像素点的值是[0,255]。
1、图片切割;我们首先通过图片进行切割,按照4*4的块对原始图进行切割,每个格子向量化,就变成1到16的数字,整个图像就变成一个矩阵。每一列就是学习集的样本(1024个样本)。
2、归一化;因为要使用神经网络的梯度算法,需要将值进行归一化处理。这样能保证性能的稳定性。
3、神经网络训练; 图片我们切割为4*4,这里我们就认为神经网络有16个神经元,中间隐藏层节点数少于16达到压缩效果。 输出y也是16个神经元。
4、期望; 输入的
值和输出值
的值一样。中间隐藏层相当于图像压缩的值。
下面我们使用python来进行图像压缩的练习,在学习代码之前最好先