一、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)原理以及应用的更多相关文章

  1. 卷积神经网络CNN(Convolutional Neural Networks)没有原理只有实现

    零.说明: 本文的所有代码均可在 DML 找到,欢迎点星星. 注.CNN的这份代码非常慢,基本上没有实际使用的可能,所以我只是发出来,代表我还是实践过而已 一.引入: CNN这个模型实在是有些年份了, ...

  2. 卷积神经网络(Convolutional Neural Networks)CNN

     申明:本文非笔者原创,原文转载自:http://www.36dsj.com/archives/24006 自今年七月份以来,一直在实验室负责卷积神经网络(Convolutional Neural ...

  3. Convolution Neural Network (CNN) 原理与实现

    本文结合Deep learning的一个应用,Convolution Neural Network 进行一些基本应用,参考Lecun的Document 0.1进行部分拓展,与结果展示(in pytho ...

  4. 深度学习笔记(三 )Constitutional Neural Networks

    一. 预备知识 包括 Linear Regression, Logistic Regression和 Multi-Layer Neural Network.参考 http://ufldl.stanfo ...

  5. On Explainability of Deep Neural Networks

    On Explainability of Deep Neural Networks « Learning F# Functional Data Structures and Algorithms is ...

  6. 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 ...

  7. 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 ...

  8. Convolutional Neural Networks

    卷积神经网络(Convolutional Neural Networks/ CNN/ConvNets) 卷积神经网络和普通神经网络十分相似: 组成它们的神经元都具有可学习的权重(weights)和偏置 ...

  9. 卷积神经网络LeNet Convolutional Neural Networks (LeNet)

    Note This section assumes the reader has already read through Classifying MNIST digits using Logisti ...

随机推荐

  1. iOS,Xcod7/8,iOS使用修改点

    1.Xcod7使用修改点 2.Xcode8使用修改点 Xcod7使用修改点 1.xcode7 新建的项目,Foundation下默认所有http请求都被改为https请求. HTTP+SSL/TLS+ ...

  2. Talend 从Excel导入Saleforce数据(一) 直接从salesforce lookup 性能的噩梦

    速度的瓶颈是在查询Sales force是否有该电话号码的联系人资料. TMap属性的 lookup Model, 如果用Load Once, 则会把SaleForce的contact全部load下来 ...

  3. jQuery----函数和选择器

    1. $(document).ready 几乎所有的jQuery代码都是以如下方式开始的 $(document).ready(function() { Do something }); $(docum ...

  4. Entity FrameWork对有外键关联的数据表的添加操作

    前天做了一个MVC Entity FrameWork项目,遇到有外键关联的数据编辑问题.当你编辑的时候,按照正常的逻辑,把每个字段的数据都对号入座了,然后点击保存按钮,本以为会顺理成章的编辑数据,但是 ...

  5. html5 Web Storage(localStorage(),sessionStorage())

    Web Storage包括了两种存储方式:sessionStorage和localStorage sessionStorage 是会话级别的存储,这些数据只有在同一个会话中的页面才能访问并且当会话结束 ...

  6. iOS 开发笔记-AFNetWorking https SSL认证

    一般来讲如果app用了web service , 我们需要防止数据嗅探来保证数据安全.通常的做法是用ssl来连接以防止数据抓包和嗅探 其实这么做的话还是不够的 . 我们还需要防止中间人攻击(不明白的自 ...

  7. POJ 2516:Minimum Cost(最小费用流)

    https://vjudge.net/problem/11079/origin 题意:有N个商店和M个供应商和K种物品,每个商店每种物品有一个需求数,每个供应商每种物品有一个供应量,供应商到商店之间的 ...

  8. 自定义分词器Analyzer

    Analyzer,或者说文本分析的过程,实质上是将输入文本转化为文本特征向量的过程.这里所说的文本特征,可以是词或者是短语.它主要包括以下四个步骤: 1.分词,将文本解析为单词或短语 2.归一化,将文 ...

  9. openlayers 学习笔记之1

    1. 为Web Gis客户端开发的javascript 框架 百度文库中的教程:入门经典> 1) 初始化map: map = new OpenLayers.Map(mapContainerNam ...

  10. Java 利用初学知识 写出自己的名字