cellular neural networks(CNN)原理以及应用
一、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为空域滤波模板对输入图像滤波所得的输出图像。
cellular neural networks(CNN)原理以及应用的更多相关文章
- 卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现
零.说明: 本文的所有代码均可在 DML 找到,欢迎点星星. 注.CNN的这份代码非常慢,基本上没有实际使用的可能,所以我只是发出来,代表我还是实践过而已 一.引入: CNN这个模型实在是有些年份了, ...
- 卷积神经网络(Convolutional Neural Networks)CNN
申明:本文非笔者原创,原文转载自:http://www.36dsj.com/archives/24006 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural ...
- Convolution Neural Network (CNN) 原理与实现
本文结合Deep learning的一个应用,Convolution Neural Network 进行一些基本应用,参考Lecun的Document 0.1进行部分拓展,与结果展示(in pytho ...
- 深度学习笔记(三 )Constitutional Neural Networks
一. 预备知识 包括 Linear Regression, Logistic Regression和 Multi-Layer Neural Network.参考 http://ufldl.stanfo ...
- On Explainability of Deep Neural Networks
On Explainability of Deep Neural Networks « Learning F# Functional Data Structures and Algorithms is ...
- Must Know Tips/Tricks in Deep Neural Networks
Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei) Deep Neural Networks, especially C ...
- Must Know Tips/Tricks in Deep Neural Networks (by Xiu-Shen Wei)
http://lamda.nju.edu.cn/weixs/project/CNNTricks/CNNTricks.html Deep Neural Networks, especially Conv ...
- Convolutional Neural Networks
卷积神经网络(Convolutional Neural Networks/ CNN/ConvNets) 卷积神经网络和普通神经网络十分相似: 组成它们的神经元都具有可学习的权重(weights)和偏置 ...
- 卷积神经网络LeNet Convolutional Neural Networks (LeNet)
Note This section assumes the reader has already read through Classifying MNIST digits using Logisti ...
随机推荐
- 史上最易懂的Android jni开发资料--NDK环境搭建
谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK.而在NDKr7开始,Google的Windows版的NDK提供 ...
- 我们应该如何去了解JavaScript引擎的工作原理
“读了你的几篇关于JS(变量对象.作用域.上下文.执行代码)的文章,我个人觉得有点抽象,难以深刻理解.我想请教下通过什么途径能够深入点的了解javascript解析引擎在执行代码前后是怎么工作的,ec ...
- ASP.NET中的Image和ImageButton控件
Image 控件用来显示图形.Image 控件可以显示来自位图.图标或元文件的图形,也可以显示增强的元文件.JPEG 或 GIF文件. ImageButton 控件用于显示可点击的图像. Image ...
- java mybatis 动态sql
//-------------------------------查询-------------------------------------// <sql id="cmsGuest ...
- 随机采样方法整理与讲解(MCMC、Gibbs Sampling等)
本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅.其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到P ...
- spring事物配置,声明式事务管理和基于@Transactional注解的使用
http://blog.csdn.net/bao19901210/article/details/41724355 http://www.cnblogs.com/leiOOlei/p/3725911. ...
- orcale删除重复数据
1.删除orcale重复数据, delete from da_door awhere (a.dt,a.key1) in (select dt,key1 from da_door group by dt ...
- ajax 代码
function ajax(){ var aj=null; if(window.ActiveXObject){ aj = new ActiveXObject("Microsoft.XMLHT ...
- js页面刷新之实现普通页面
准备面试题目的时候遇到了页面刷新,就整理了一下,网上查找,大概就是八种方法,但是自己测试的时候出现了几个问题,跟大家分享: 首先准备一个测试页面: <!--html代码--> <h1 ...
- linux 用户态 内核态
http://blog.chinaunix.net/uid-1829236-id-3182279.html 究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在 ...