当前位置: 首页 > news >正文

混沌系统在图像加密中的应用(小波混沌神经网络)

混沌系统在图像加密中的应用(小波混沌神经网络)

  • 前言
  • 一、小波混沌神经网络模型
  • 二、拓展
  • 三、python代码

前言

小波混沌神经网络是一种神经网络模型,结合了小波变换和混沌理论,用于信号处理、分类和预测。该模型基于多层前向神经网络,其中每一层由小波基函数和一个非线性混沌函数构成。

一、小波混沌神经网络模型

选用由小波函数组成的小波暂态混沌神经网络作为研究对象。在连续Hopfield网络中引入小波理论和暂态混沌构造的小波混沌神经网络定义如下

对于Hopfield网络可以看我之前的文章
混沌系统在图像加密中的应用(Hopfield混沌神经网络)

在这里插入图片描述
与 Hopfield 神经网络相 比,此小波混沌神经网络的激励函数由小波函数和 Sigmoid 函数组成,且具有暂态的混沌动力学行为。其激励函数是非单调递增但总体上是递增的函数,是由 Sigmoid 函数和 Wavelet 函数组合而成的。

Wavelet 函数的意义是既能使激励函数非单调,又能使激励函数有小波函数的优点。其混沌产生机制是通过自反馈连接项按指数方式递减引入的。且此网络多增加了一项非线性时变衰减项

在这里插入图片描述
当自反馈连接权 z(t) 以指数方式趋于零时,此混沌神经网络退化为一个 Hopfield 神经网络

为了更好地分析上述模型的运行机理,以单个神经元为例(令α=0),分析混沌 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  # 0<c<1
k = 1.0  # 0<=k<=1
b = 0.001  # 0<b<1
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:sigmoid+Morlet')
plt.tick_params(labelsize=15)
plt.xlabel('迭代次数', fontsize=15)
plt.ylabel('v(t)', fontsize=15)
plt.grid(True, color='c', linestyle='--', linewidth='1')
plt.scatter(list_time, list_vt, c='r', marker='.', s=1)plt.figure()
plt.tick_params(labelsize=15)
plt.xlabel('迭代次数', fontsize=15)
plt.ylabel('z(t)', fontsize=15)
plt.grid(True, color='c',linestyle='--',linewidth='1')
plt.scatter(list_time, list_zt, c='r',marker='.', s=1)plt.show()
http://www.lryc.cn/news/224418.html

相关文章:

  • Node.js中的文件系统(file system)模块
  • react组件间通信之context
  • 京东数据分析:2023年10月京东洗衣机行业品牌销售排行榜
  • QQ恢复聊天记录,就用这3个方法!
  • 高能数造电池3D打印智能制造小试线,开启全固态电池数字化新时代
  • stable diffusion为什么能用于文本到图像的生成
  • c语言刷题第10周(16~20)
  • Vue.js 响应式系统深度剖析
  • LabVIEW如何才能得到共享变量的引用
  • 界面控件DevExtreme图表和仪表(v23.1) - 新功能(Angular,React,Vue,jQuery)
  • Rust和isahc库编写代码示例
  • Win10笔记本开热点后电脑断网的解决方法
  • 跨链知识指南
  • 字符编码转换时发生内存越界引发的摄像头切换失败问题的排查
  • git修改之前的commit提交的作者信息和邮箱信息
  • 《视觉SLAM十四讲》-- 相机与图像
  • 欧科云链:成本与规模之辨——合规科技如何赋能香港Web3生态?
  • 【文献分享】NASA JPL团队CoSTAR一大力作:直接激光雷达里程计:利用密集点云快速定位
  • SPASS-探索性分析
  • 电子印章怎么弄?三步教你电子印章在线生成免费教程!
  • 以技术创新引领行业发展,飞凌嵌入式获双项省级荣誉
  • 在Google Kubernetes集群创建分布式Jenkins(二)
  • GEE:GEE中调用 Math.js 教程
  • 迅为龙芯3A5000主板,支持PCIE 3.0、USB 3.0和 SATA 3.0显示接口2 路、HDMI 和1路 VGA,可直连显示器
  • Opencv for unity 下载
  • 独立IP主机怎么样?对网站有什么影响
  • Gerrit lfs安装及配置
  • 基于表面电势的AlGaN/GaN MODFET紧凑模型
  • c语言中的fread
  • Unity游戏开发基础组件