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 ...
随机推荐
- App Store有哪些原因会影响app应用上架呢?(分享)
App Store对于应用上架的审核是非常严格的,很可能一个没有注意到的细节,或者一个你根本没想想到的原因就会导致你的应用上架失败.而排除这些无可避免的错误以外,还有一些导致应用上架失败的原因,非常常 ...
- JSP 运行
Tomcat 上运行 JSP 应用程序 完成一些包装工作后,才能在 Tomcat 上运行 index.jsp 程序.通常需要按照以下步骤操作: 创建 JSP 应用程序.如果只使用一个页面,则称它为 i ...
- GDB调试多线程
先介绍一下GDB多线程调试的基本命令. info threads 显示当前可调试的所有线程,每个线程会有一个GDB为其分配的ID,后面操作线程的时候会用到这个ID. 前面有*的是当前调试的线程. th ...
- ligerui_ligerTree_004_对"ligerTree"节点操作
ligerTree节点操作: 源码地址:http://download.csdn.net/detail/poiuy1991719/8571255 效果图: 代码: json.txt: [ { text ...
- 使用ajax上传中遇到的问题
使用ajaxSubmit提交文件时,正确使用返回的json数据需要用eval在转化一下. 前台文件: $("#form1").ajaxSubmit({ url: 'QueryHan ...
- s3c2440 移值u-boot-2016.03 第2篇 支持Nand flash启动
1, 要求:在4K 的代码以内,完成 NOR NAND 类型判断,初始化 NAND 复制自身到 SDRAM ,重定向. 2, 在 /arch/arm/cpu/arm920t/ 文件夹里 添加一个 in ...
- asp批量查询
在做asp查询时候 借鉴的一些代码 留个纪念....... <!-- #include file="conn.asp"--> <html> <head ...
- Linux中/proc目录下文件详解
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...
- mysql查询优化器为什么可能会选择错误的执行计划
有可能导致mysql优化器选择错误的执行计划的原因如下: A:统计信息不准确,mysql依赖存储引擎为其提供的统计信息来评估成本,然而有的存储引擎提供的信息是准确的,有的引擎提供的可能就偏差很大,如: ...
- 【转】MYSQL启用日志,和查看日志
转载地址:http://wasabi.iteye.com/blog/318962 mysql有以下几种日志: 错误日志: -log-err 查询日志: -log ...