一、CNN的原理
1、CNN的思想:
(1)借鉴了hopfield神经网络和CA
a、hopfield的非线性动力学(主要是用于优化问题,比如旅行商问题等NP问题),Hopfield的能量函数的概念,Hopfield解决了模拟电路的实现问题
b、CA细胞自动机,局部连接的时间和空间都离散的动力学系统,CNN借鉴了CA的细胞的概念和局部性、一致性、平行性等特点
2、结构和模型
(1)结构图如下图所示:
(2)理论模型
半径和领域:半径r和领域N(r),3*3邻域和5*5邻域等
CNN的状态方程:
输出方程:
输入方程:
约束条件:
电路参数条件:
动态系统框架图:
(3)CNN的特点:
1、阵列的规则性:每个细胞有相同的电路结构和元件值,相同的邻近细胞核周边细胞
2、细胞互联的局域性:局部连接和关联节点矩阵为稀疏矩阵,易于VLSI的实现
3、动力学机制:CNN具有输出反馈和输入控制两种机制,输出反馈效应决定于相互作用的反馈模板A,输入控制效应决定于控制模板参数B,邻近系统对称,所有细胞的输入与输出关系是非线性单调上升。
4、参数非唯一性:RC都是可根据实际情况方便的确定,RC是电路动力学的时间常数
三、理论依据
(1)几条重要的定理:
1、状态有界定理:CNN中每一个细胞的状态x在t>0的所有时间内,其动态过程中都是有界的由下式决定,并且CNN的Lyapunov函数(下图二)时点掉下降的并且有界,则CNN为稳定的。
2、能量函数有界
3、能量函数单调下降
4、能量终值定理:对于CNN的任意给定的输入u和初始状态x有:
5、如果电路参数满足,A>1/R,则CNN每个细胞在经过衰减到零的暂态之后,一定落在一个稳定平衡点上,并且所有稳定平衡点的幅值都大于1,即为下式:
A>1/R为了保证每个细胞的稳态输出是1或者-1而必须限定的最小正反馈量,保证二值输出。
四、CNN研究方向
CNN从开始产生就在图像信号处理等多个领域得到了应用,目前的研究成果主要分为两大类型:理论研究和应用研究.
(1)理论研究:目前分为两大部分:一是在各种参数条件下CNN的稳定性分析及产生的混沌、分岔等复杂现象的研究,二是各种变形CNN(模糊CNN,离散CNN,延迟CNN等)
(2)应用研究:目前分为两大部分:一是在各个领域的应用算法研究,二是在具体硬件实现技术研究。
五、CNN在图像处理中的应用
CNN用于图像处理,其中最基本的过程是输入一副图像,然后映射为相应的输出图像,实质上CNN是一个具有特殊功能的滤波器。
(1)、大致的CNN图像处理过程如下:
1、映射
将图像的信号空间映射到CNN的细胞排列空间上,并且像素值得范围线性映射到[-1,1]的范围,比如一个M*N的像素的图像,则CNN包含M*N个细胞。
2、参数设置
每个像素的灰度值对应于相同位置上细胞的输入u,初始输入u以及连接权矩阵A和B以及阈值I根据处理问题的不同而不同,与连接权对应的是网络能量函数E的极小值
3、寻优
处理时,CNN的每个细胞都是与其领域内的细胞相连,并且发生相互作用,每个细胞的状态按照其状态方程式迭代改变,经过迭代状态方程引导细胞的状态向CNN定义的能量方向变化,到整个网络收敛文档,能量函数达到最小值
4、输出
网络能量函数E最小值对应着所有问题的最优解,此时网络的输出矩阵构成的二值图像就是CNN处理的结果。
(2)具体的处理过程
1、CNN输入值的范围调整
2、CNN状态方程的差分化
为了将CNN用于图像处理,采用差分方程来近似CNN的状态方程(上式),令t=nh,其中h为恒定的时间步长,设h=1则可差分化为:
对这个式子可理解为:这个式子就是一个二维滤波器,这个滤波器是非线性的,并且它对于处理具有空间不变性,这个滤波器是非线性的,具体的性质由式子中的模板参数A、B、I确定。
所以对于CNN的功能主要决定于模板参数的设计,其中A称为反馈模板,B称为控制模板,I称为阈值。
(3)模板参数的设计方法
1、基于学习的方法
分为局部学习法和全局学习法,局部学习法主要是由其他的神经网络的方法发展而来。全局学习法,大部分是基于随机优化的算法,例如基于模拟退火算法和遗传算法的设
计CNN模板参数的方法。是通过把CNN模板设计问题转化为求目标函数的最小化的问题,并且在解空间内,利用遗传算法或者模拟退火算法进行最优解的搜索,从而得到CNN
的模板参数。另外还有用松弛法来确定CNN的模板参数,全局学习法,可以得到比较好的结果,但是因为它是一种随机优化方法,从而代价函数的选取很重要,而且它没有一
中普遍适用的方法。
2、基于分析的方法
更具具体的问题,将一系列的约束条件,转化为一系列不等式,通过求解不等式,从而得到相应的模板参数。另外的一种方法就是通过进行大量的仿真实验而得到。
以上的两种方法可以相互补充。
2、应用举例
a.基于CNN的自适应滤波算法:
传统的图像处理方法把滤波和二值化分为两个单独的环节进行的,而CNN则是把图像映射为-1和1为像素值的二至输出图像,所以可以一次完成。
CNN的设计主要就是先关模板的设计。
在CNN当中RC表示的网络动态过程的快慢,可以令RC=1,即C=1,R=1,,CNN的一阶差分方程可以变化为:
可简化为X=A*Y+B*U+I 其中*表示求卷积,即将细胞C领域中的每个细胞C‘的输出Y(或者外界输入U)分别与模板A(B)中对应的元素A(或者B)相乘后求和。
所以我们最终要设计的就模板B(控制模板)和 A(反馈模板)的设计。
(1)控制模板B的设计
先不考虑其他因素,不考虑反馈的影响,且令I=0,则原来的CNN一阶差分方程可以简化为:
X=B*U
X可以理解为是以B为空域滤波模板对输入图像滤波所得的输出图像。
浙公网安备 33010602011771号