脉冲耦合神经网络(PCNN)的matlab实现

简介:


基本脉冲耦合神经网络的matlab实现

Gray 首先发现了猫的初生视觉皮层有神经激发相关振荡现象,并将其研究结果发在了 Nature 杂志上。与此同时, Eckhom 也根据猫的大猫皮层的同步脉冲发放现象,提出了脉冲发现的连接模式,将开拓性地提出了 PCNN 基本模型。 Gray Eckhom 被称为 PCNN 的鼻祖。我国的兰州大学马义德教授在 PCNN 研究领域有很大建树,发表了很多相关的论文,并出版了《脉冲耦合神经网络原理及其应用》和《脉冲耦合神经网络与数字图像原理》两本专著。我在当当上买了一本《脉冲耦合神经网络与数字图像原理》,发现还不错,原理讲得很全,但没有附光盘,详细的算法或代码很少。
基本 PCNN 神经网络是提出的一种有连接域的网络模型,它是由若干个神经元互连形成的反馈型神经网络,构成 PCNN 的神经元系统是一个复杂的非线性动态系统。一个 PCNN 神经元由三部分组成:接受部分,调制部分,脉冲发生器,其基本模型见下图:    
该模型的数学形式可用以下四个方程来描述:
其中 Sij  Uij  Yij  分别为神经元 Nij  的外部刺激 ( 输入 、内部行为和输出 ; Lij  Fij  分别为神经元的链接域和馈送域两个输入通道 ; M/ VF  W/ VL  分别是馈送域和链接域的连接权系数矩阵 放大系数 ; θ ij  V θ变阈值函数输出和阈值放大系数 ; τ 、τ 、τθ分别为链接域、馈送域和变阈值函数的时间常数。
由基本模型可以得出,根据链接系数即 beta ,可以将 PCNN 分为无耦合和有耦合两种情况,当 beta=0 时,可以认为各神经元是独立运行的组合。这种情况下,神经元周而复始地循环工作,并兴奋产生脉冲。在这种情况下,即不同灰度值的像素在没有受到别的神经元影响下,其独立点火频率依赖于该像素灰度值,而于其他像素的灰度值无关。同时也可以得出以下结论:即相近灰度值的神经元将在同时刻点火,这个结论也印证了 PCNN 同步脉冲发放现象的内在机理。这种情况属于理想情况
beta~=0 时,即有耦合存在的情况之下,神经元的点火,不仅受其自身的灰度值影响,还要受与其存在链接的神经元的影响,也就是存在着捕获点火的情况,当满足捕获范围的若干相似相邻神经元提前兴奋,实现点火。这也是在空间近似或灰度近似的神经元同步产生脉冲串的机理。由 PCNN 数学模型可以知道,当连接系数 beta ,连接域 L 值越大,则能够点火的范围也越大,所以在耦合状态下, PCNN 能集群发放同步脉冲串序列,产生所谓的同步脉冲发现现象,即神经元的振荡。
基本模型由于实现相对复杂,在实际应用中相对较少,经常使用的则是改进型 PCNN ,其模型的数学形式可用以下四个方程来描述:
其中 Fij ( n)  是第 ( i , j)  神经元的 次反馈输入 ,Sij  为输入刺激信号 ( 这里为图像像素构成的矩阵中第 ( i , j)  像素的灰度值 ) , β为连接系数 , L ij ( n)  是连接项 , θ i j ( n)  为动态阈值 , Yij ( n)  PCNN  脉冲输出值 ,Uij ( n)  为内部活动项 , W  为连接权矩阵 , V θ为幅度常数 , αθ为相应的衰减系数。
由上式我们可以看出, PCNN 的主要参数就是上述四个,即权值、链接系数、初始阈值和衰减系数,使用各种优化算法对 PCNN 的参数进行优化时,往往主要优化链接系数,初始阈值和衰减系数,在一般情况下,主要是优化初始阈值和衰减系数。
以最后的代码为例,则其算法描述如下:
首先读取一幅图片,对像素矩阵进行扫描运算,通过连接矩阵、加权等等关系式计算出每一个像素的内部活动项 Uij(n) ,当 Uij(n) 大于动态门限 Eij(n) (这个是根据初始阈值、衰减系数或其他参数所决定的,由此来看初始阈值、衰减系数多么重要,因为它关系到像素是否点火), PCNN 产生时序脉冲系列 Yij(n)( 标记矩阵中的值为 1 ,有时无需记录标记矩阵 ) 。每遍扫描结束后,求得一次熵 Yij(n) ,全部扫描结束后,对应的输出为熵序列(其中熵为对 PCNN 优化的标准,熵的确定根据具体应用是不同的)。综上,如果对 PCNN 进行优化,应该从初始阈值、衰减系数和熵入手。
下面是基本 PCNN matlab 实现代码。
function H = Pcnn(I,N) 
%************************************************************ 
% demo 
%************************************************************ 
% I = imread('lena.bmp'); 
% H = Pcnn(I,30); 
%************************************************************ 
%  
%************************************************************ 
%------Pulse Coupled Neural Network-----------    

%------名称:脉冲耦合神经网络(PCNN)    

%------时间:2009年01月08日    
%************************************************************ 
% Initialize Function 初始化函数 
%************************************************************ 
[m,n] = size (I); 
X = im2double(I); 
%************************************************************ 
% Initialize PCNN Parameters 初始PCNN参数 
%************************************************************ 
% P :L E F VF VL VE beta 
% V: 1.0 1.0 0.1 0.5 0.2 20 0.1 
al = 1.0; ae = 1.0; af = 0.1; vf = 0.5; vl = 0.2; ve = 20; B = 0.1; 
W =[0.5 1 0.5 
        1 0 1    
        0.5 1 0.5]; 
M = W; Y = zeros(m,n); F = Y; L = Y; U = Y; E = Y; 
%************************************************************ 
% PCNN 点火过程 
%************************************************************ 
for i = 1:N 
        F = exp(-af) * F + vf * conv2(Y,M,'same') + X; 
        L = exp(-al) * L + vl * conv2(Y,W,'same'); 
        U = F.*(1 + B * L); 
        Y = double(U>E); 
        E = exp(-ae) * E + ve * Y; 
%************************************************************ 
% Get Entropy of Image Y 得到信息熵序列 
%************************************************************ 
p = imhist(Y(:)); 
% remove zero entries in p 
p(p == 0) = []; 
% normalize p so that sum(p) is one 
p = p./numel(Y); 
H(1/i) = -sum(p.*log2(p)); 

end
 



           本文转自 gaochaojs 51CTO博客,原文链接: http://blog.51cto.com/jncumter/260761 ,如需转载请自行联系原作者


相关文章
|
18天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
84 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
5天前
|
机器学习/深度学习 数据采集 算法
基于MobileNet深度学习网络的MQAM调制类型识别matlab仿真
本项目基于Matlab2022a实现MQAM调制类型识别,使用MobileNet深度学习网络。完整程序运行效果无水印,核心代码含详细中文注释和操作视频。MQAM调制在无线通信中至关重要,MobileNet以其轻量化、高效性适合资源受限环境。通过数据预处理、网络训练与优化,确保高识别准确率并降低计算复杂度,为频谱监测、信号解调等提供支持。
|
9天前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-LSTM-SAM网络时间序列预测算法。使用Matlab2022a开发,完整代码含中文注释及操作视频。算法结合卷积层提取局部特征、LSTM处理长期依赖、自注意力机制捕捉全局特征,通过粒子群优化提升预测精度。适用于金融市场、气象预报等领域,提供高效准确的预测结果。
|
23天前
|
机器学习/深度学习 数据采集 算法
基于WOA鲸鱼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB 2022a实现时间序列预测,采用CNN-GRU-SAM网络结构,结合鲸鱼优化算法(WOA)优化网络参数。核心代码含操作视频,运行效果无水印。算法通过卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征,全连接层整合输出。数据预处理后,使用WOA迭代优化,最终输出最优预测结果。
|
17天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于机器学习的人脸识别算法matlab仿真,对比GRNN,PNN,DNN以及BP四种网络
本项目展示了人脸识别算法的运行效果(无水印),基于MATLAB2022A开发。核心程序包含详细中文注释及操作视频。理论部分介绍了广义回归神经网络(GRNN)、概率神经网络(PNN)、深度神经网络(DNN)和反向传播(BP)神经网络在人脸识别中的应用,涵盖各算法的结构特点与性能比较。
|
15天前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目使用MATLAB 2022a实现时间序列预测算法,完整程序无水印。核心代码包含详细中文注释和操作视频。算法基于CNN-LSTM-SAM网络,融合卷积层、LSTM层与自注意力机制,适用于金融市场、气象预报等领域。通过数据归一化、种群初始化、适应度计算及参数优化等步骤,有效处理非线性时间序列,输出精准预测结果。
|
1月前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
|
1月前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
2月前
|
机器学习/深度学习 监控 算法
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
67 18
|
2月前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
197 10

热门文章

最新文章