网站建设怎么报价,怀化租房网站,特种证书查询入口,鑫灵锐做网站多少钱混沌系统在图像加密中的应用#xff08;小波混沌神经网络#xff09; 前言一、小波混沌神经网络模型二、拓展三、python代码 前言
小波混沌神经网络是一种神经网络模型#xff0c;结合了小波变换和混沌理论#xff0c;用于信号处理、分类和预测。该模型基于多层前向神经网… 混沌系统在图像加密中的应用小波混沌神经网络 前言一、小波混沌神经网络模型二、拓展三、python代码 前言
小波混沌神经网络是一种神经网络模型结合了小波变换和混沌理论用于信号处理、分类和预测。该模型基于多层前向神经网络其中每一层由小波基函数和一个非线性混沌函数构成。
一、小波混沌神经网络模型
选用由小波函数组成的小波暂态混沌神经网络作为研究对象。在连续Hopfield网络中引入小波理论和暂态混沌构造的小波混沌神经网络定义如下
对于Hopfield网络可以看我之前的文章 混沌系统在图像加密中的应用Hopfield混沌神经网络 与 Hopfield 神经网络相 比此小波混沌神经网络的激励函数由小波函数和 Sigmoid 函数组成且具有暂态的混沌动力学行为。其激励函数是非单调递增但总体上是递增的函数是由 Sigmoid 函数和 Wavelet 函数组合而成的。
Wavelet 函数的意义是既能使激励函数非单调又能使激励函数有小波函数的优点。其混沌产生机制是通过自反馈连接项按指数方式递减引入的。且此网络多增加了一项非线性时变衰减项 当自反馈连接权 z(t) 以指数方式趋于零时此混沌神经网络退化为一个 Hopfield 神经网络
为了更好地分析上述模型的运行机理以单个神经元为例令α分析混沌 Hopfield 神经网络的动力学特性。我们选取的激活函数为sigmoid Wavelet 函数设置网络参数分别为 ε_1 0.035 ε_2 0.1 c 1/7 k 1.0 u_0 0.5 z_0 0.8 I_0 0.6 β 0.001
则网络的输出 v(t)、退温函数z(t)的演化过程分别如下图所示。由图该网络具有暂态混沌动力学行为随 着z(t) 不断衰减通过一个倍周期逆分岔的连续混沌分岔过程网络将逐渐趋近于一个稳定的平衡点。 二、拓展
大家可以试试其他激活函数比如softPlus、arcTan、softsign、bent_identity、symmetrical_sigmoid、log_log、gauss、Morlet、ReLU、P-ReLU、Leaky-ReLU、Maxout 等等
三、python代码
import numpy as np
import matplotlib.pyplot as plt
import pylab as mpl
mpl.rcParams[font.sans-serif] [YouYuan] # 指定默认字体def sigmoid(x):return 1. / (1 np.exp(-x))
def Morlet(x):return np.exp(-((x)**2) / 2) * np.cos(5 * x)
def Wave(u_t0, z0):v_t sigmoid((u_t0 / r1)) c * Morlet((u_t0 / r2))u_t k * u_t0 - z0 * (v_t - I0)z_t (1 - b) * z0return v_t, u_t, z_tlist_vt []
list_ut []
list_I0 []
list_zt []
list_rt []
list_time []
# 系统初值
z0 0.8
u_t0 0.5
# 系统参数
r1 0.035
r2 0.1
c 1 / 7 # 0c1
k 1.0 # 0k1
b 0.001 # 0b1
I0 0.60
for i in range(1500):v_t1, u_t1, z1 Wave(u_t0, z0)u_t0 u_t1z0 z1r0 r1list_vt.append(v_t1)list_I0.append(I0)list_ut.append(u_t0)list_zt.append(z0)list_rt.append(r0)list_time.append(i)plt.figure()
plt.title(Wave Chaos -- activation:sigmoidMorlet)
plt.tick_params(labelsize15)
plt.xlabel(迭代次数, fontsize15)
plt.ylabel(v(t), fontsize15)
plt.grid(True, colorc, linestyle--, linewidth1)
plt.scatter(list_time, list_vt, cr, marker., s1)plt.figure()
plt.tick_params(labelsize15)
plt.xlabel(迭代次数, fontsize15)
plt.ylabel(z(t), fontsize15)
plt.grid(True, colorc,linestyle--,linewidth1)
plt.scatter(list_time, list_zt, cr,marker., s1)plt.show()