欢迎光临散文网 会员登陆 & 注册

【预测模型】基于模糊小波神经网络目标威胁评估含matlab源码

2022-04-25 15:42 作者:Matlab工程师  | 我要投稿

1 简介

1 模糊小波神经网络原理为了加强网络的自学习能力以及快速的适应战场环境变化,实现对目标威胁进行精确评估,将小波神经网络嵌入模糊模型的后件部分形成模糊小波神经网络,网络结构如图 2所示:前三层已在之前提到,第四层改为小波函数层,选择 Gaussian 函数的一阶偏导数 φ(x) = x ·exp(−0.5x2) 作为母小波函数,该函数具有较好的拟合性能,根据所选母小波,经过伸缩平移变换放入第二层的神经元中作为激活函数,可以表示为

在这里插入图片描述

模糊小波神经网络的参数在网络训练的过程需要进行自动更新和调整,这里使用梯度下降法对网络参数进行更新参数 c、t、d、w 的操作,为了获得良好的预测效果,最终会选择这些参数的最优值作为预测部份的参数值。

2 部分代码

%FWNN 脚本文件,作为主程序使用% 清理工作close allclear% 关键变量d = 5; % 用于输入的宽度m = d; % 输入信号的个数n = 5; % 关系函数的个数,模糊判断的个数,小波函数的个数epoch = 2000; % 迭代次数num_yangben = 49; % 数据个数num_test = 12;rate = 0.08; % 学习速率mom = 0.5; % 冲量 % 产生试验数据data = indata();%result = plant(data);result = data(:,d+1);% TESTfile_yangben = '测试集.dat';fid = fopen(file_yangben);%u = fread(fid,[size_input_x,size_input_y],'float');u_test = dlmread(file_yangben,',');fclose(fid);% 随机初始化各个参数于(0,1)c = rand(m, n);q = rand(m, n); % 注意:不能为零a = rand(n, m);b = rand(n, m);w = rand(1, n);% t-1迭代的参数值pc = c;pq = q;pa = a;pb = b;pw = w;% t+1迭代的参数值nc = zeros(m, n);nq = zeros(m, n);na = zeros(n, m);nb = zeros(n, m);nw = zeros(1, n);% 用于画图的数据tu = zeros(epoch, num_yangben);E = zeros(epoch, num_yangben);%endtoc % 结束计时,并显示时间figure(1)% 图形显示统计信息k = 1 : 1 : num_yangben;ttu = tu(epoch, :);plot(k, result, '-', k, ttu, '-r')legend('样本集结果', '样本集预测值')title('训练结果');xlabel('样本');ylabel('优先级');%%============================================================'%%测试%%===========================================================for loop2 = 1 : 1 : num_test        % 初始化中间数据        x = zeros(1, m);        g = zeros(m, n);        U = zeros(1, n);        p = zeros(1, n);        W = zeros(1, n);        %y = zeros(1, n);        % 给输入节点赋值        for i = 1 : 1 : d            x(i) = u_test(loop2,i);        end        %for i = 1 : 1 : d           % x(m + 1 - i) = result(loop2 - i);        %end        % 计算第二层节点的输出值        for i = 1 : 1 : m            for j = 1 : 1 : n                g(i, j) = relation(x(i), c(i, j), q(i, j));            end        end        % 计算第三层节点的输出,同时记录第三层节点的选择信息        for i = 1 : 1 : n            [min, which] = fuzzy(g, m, i);            U(i) = min;            p(i) = which;        end        % 计算第四层节点的输出        for i = 1 : 1 : n            for j = 1 : 1 : m                W(i) = W(i) + wavelet(x(j), a(i, j), b(i, j));            end        end        y = w .* W;        % 计算最终的输出        result_test(loop2) = defuzz(U, y, n);endfigure(2)% 图形显示测试信息k = 1 : 1 : num_test;plot(k, u_test(:,6), 'g',k, result_test, 'r')legend('测试集结果', '测试集预测值')title('测试结果');xlabel('样本');ylabel('优先级');

3 仿真结果

4 参考文献

[1]陈侠, & 刘子龙. (2018). 基于模糊小波神经网络的空中目标威胁评估. 战术导弹技术(3), 7.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。



【预测模型】基于模糊小波神经网络目标威胁评估含matlab源码的评论 (共 条)

分享到微博请遵守国家法律