回归预测 | MATLAB实现DNN全连接神经网络多输入多输出

简介: 回归预测 | MATLAB实现DNN全连接神经网络多输入多输出

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测雷达通信 无线传感器

信号处理图像处理路径规划元胞自动机无人机 电力系统

⛄ 内容介绍

采用DNN 深度神经网络作为模型训练架构,具体如图 3 所示.模型输入

将网络训练中的每层输出特征数据分成“小批”样本,对每个“小批”样本结合标准差拟合方法进行批量归一化算法后再输入到神经网络的下一层,克服了极化滤波算法在数据集中数据不完整情况下预测不佳的问题.模型训练过程主要包括训练样本的网络前向传播以及误差项的网络反向传播过程. 网络前向传播得到学习后的滤波器系数预测值,通过损失函数计算网络在这批数据上的输出值与目标值之间的误差,以此衡量网络在训练数据后的预测值与预期结果的匹配程度,计算损失相对于网络权重的梯度,通过梯度下降法来一步步的迭代更新各个神经元的权重以及偏置参数,直至达到模型预先设定的迭代次数或者所得误差在指定的范围为止.

本文使用10000 个数据进行训练,设定一批数据包含的样本数目为 64,迭代次数的初始阈值设为 156,经观测预测值与实际值间误差 Loss 图,可知在训练初期,误差值会迅速降低,随后趋于稳定. 若迭代次数过高,则会导致资源浪费,算法耗时较长. 因此设置 H1H2H3迭代次数均为 55

⛄ 部分代码

clc;clear all;

SNRdB=0:0.25:3; %SNR in dB

k=512/4;

n=1024/4; % 码长

niter= 60;% 最大迭代此时

nb_err = zeros(1,length(SNRdB));

nb_code = zeros(1,length(SNRdB));

nb_err_max= 100 ;

nb_code_max= 1e4;

H= gen_h(n,6,3);% 产生H

[Hs,H]=gen_Hs(H); % 化为系统码

Q= Hs(:,1:k)'; % 生成矩阵的Q


for s= 1:length(SNRdB)

   sigma = 10^(-SNRdB(s)/20);% 其平方是噪声功率

   while nb_err(s)<nb_err_max && nb_code(s)<nb_code_max

       nb_code(s) = nb_code(s)+1;

       b = rand(1,k)<0.5;

       c=[b,rem(b*Q,2)];% 系统码编码

       x=(-1).^c;% BPSK modulation

       noise = sigma * randn(1,length(x));

       y = x+noise;

       lam_ch= 2*y/sigma^2;%软解调

       hat_c= msa(lam_ch,niter,H);

       err = any(hat_c~=c); %c是发送码字,hat_c是硬判决

       if err

           nb_err(s)= nb_err(s)+err;

           disp([nb_err;nb_code])

       end

   end

end


WER= nb_err./nb_code;

EbN0dB= SNRdB+10*log10(n/k/2);%化成Eb/N0,参考式(1)

figure(1)

semilogy(EbN0dB, WER,'o-','LineWidth',2)

xlabel('Eb/N0')

ylabel('WER')

grid on;

hold on


SNRdB=0:0.25:3; %SNR in dB

k=512/2;

n=1024/2; % 码长

niter= 60;% 最大迭代此时

nb_err = zeros(1,length(SNRdB));

nb_code = zeros(1,length(SNRdB));

nb_err_max= 100 ;

nb_code_max= 1e4;

H= gen_h(n,6,3);% 产生H

[Hs,H]=gen_Hs(H); % 化为系统码

Q= Hs(:,1:k)'; % 生成矩阵的Q


for s= 1:length(SNRdB)

   sigma = 10^(-SNRdB(s)/20);% 其平方是噪声功率

   while nb_err(s)<nb_err_max && nb_code(s)<nb_code_max

       nb_code(s) = nb_code(s)+1;

       b = rand(1,k)<0.5;

       c=[b,rem(b*Q,2)];% 系统码编码

       x=(-1).^c;% BPSK modulation

       noise = sigma * randn(1,length(x));

       y = x+noise;

       lam_ch= 2*y/sigma^2;%软解调

       hat_c= msa(lam_ch,niter,H);

       err = any(hat_c~=c); %c是发送码字,hat_c是硬判决

       if err

           nb_err(s)= nb_err(s)+err;

           disp([nb_err;nb_code])

       end

   end

end


WER= nb_err./nb_code;

EbN0dB= SNRdB+10*log10(n/k/2);%化成Eb/N0,参考式(1)

figure(1)

semilogy(EbN0dB, WER,'s-','LineWidth',2)

xlabel('Eb/N0')

ylabel('WER')

grid on;

hold on


SNRdB=0:0.25:3; %SNR in dB

k=512;

n=1024; % 码长

niter= 60;%最大迭代此时

nb_err = zeros(1,length(SNRdB));

nb_code = zeros(1,length(SNRdB));

nb_err_max= 100 ;

nb_code_max= 1e4;

H= gen_h(n,6,3);%产生H

[Hs,H]=gen_Hs(H); %化为系统码

Q= Hs(:,1:k)'; %生成矩阵的Q


for s= 1:length(SNRdB)

   sigma = 10^(-SNRdB(s)/20);%其平方是噪声功率

   while nb_err(s)<nb_err_max && nb_code(s)<nb_code_max

       nb_code(s) = nb_code(s)+1;

       b = rand(1,k)<0.5;

       c=[b,rem(b*Q,2)];%系统码编码

       x=(-1).^c;%BPSK modulation

       noise = sigma * randn(1,length(x));

       y = x+noise;

       lam_ch= 2*y/sigma^2;%软解调

       hat_c= msa(lam_ch,niter,H);

       err = any(hat_c~=c); %c是发送码字,hat_c是硬判决

       if err

           nb_err(s)= nb_err(s)+err;

           disp([nb_err;nb_code])

       end

   end

end


WER= nb_err./nb_code;

EbN0dB= SNRdB+10*log10(n/k/2);%化成Eb/N0,参考式(1)

figure(1)

semilogy(EbN0dB, WER,'^-','LineWidth',2)

xlabel('Eb/N0')

ylabel('WER')

grid on;


legend('n=256','n=512','n=1024')

⛄ 运行结果

⛄ 参考文献

[1]张嘉纹, 党小宇, 杨凌辉,等. 海面短波地波通信中基于DNN神经网络的单样本极化滤波器预测研究[J]. 电子学报, 2020, 48(11):2250-2257.

⛄ 完整代码

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
7天前
|
编解码 异构计算
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
41 9
RT-DETR改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
|
7天前
|
计算机视觉
RT-DETR改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进RT-DETR颈部网络
RT-DETR改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进RT-DETR颈部网络
35 12
RT-DETR改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进RT-DETR颈部网络
|
9天前
|
计算机视觉
YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络
YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络
35 10
YOLOv11改进策略【Neck】| GFPN 超越BiFPN 通过跳层连接和跨尺度连接改进v11颈部网络
|
9天前
|
编解码 异构计算
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
31 7
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
|
3天前
|
传感器 算法 物联网
基于粒子群算法的网络最优节点部署优化matlab仿真
本项目基于粒子群优化(PSO)算法,实现WSN网络节点的最优部署,以最大化节点覆盖范围。使用MATLAB2022A进行开发与测试,展示了优化后的节点分布及其覆盖范围。核心代码通过定义目标函数和约束条件,利用PSO算法迭代搜索最佳节点位置,并绘制优化结果图。PSO算法灵感源于鸟群觅食行为,适用于连续和离散空间的优化问题,在通信网络、物联网等领域有广泛应用。该算法通过模拟粒子群体智慧,高效逼近最优解,提升网络性能。
|
3天前
|
机器学习/深度学习 数据采集 算法
基于GWO灰狼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a,展示了时间序列预测算法的运行效果(无水印)。核心程序包含详细中文注释和操作视频。算法采用CNN-GRU-SAM网络,结合灰狼优化(GWO),通过卷积层提取局部特征、GRU处理长期依赖、自注意力机制捕捉全局特征,最终实现复杂非线性时间序列的高效预测。
|
1月前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB2022a实现时间序列预测,采用CNN-GRU-SAM网络结构。卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征。完整代码含中文注释和操作视频,运行效果无水印展示。算法通过数据归一化、种群初始化、适应度计算、个体更新等步骤优化网络参数,最终输出预测结果。适用于金融市场、气象预报等领域。
基于GA遗传优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
|
1月前
|
机器学习/深度学习 监控 算法
基于yolov4深度学习网络的排队人数统计系统matlab仿真,带GUI界面
本项目基于YOLOv4深度学习网络,利用MATLAB 2022a实现排队人数统计的算法仿真。通过先进的计算机视觉技术,系统能自动、准确地检测和统计监控画面中的人数,适用于银行、车站等场景,优化资源分配和服务管理。核心程序包含多个回调函数,用于处理用户输入及界面交互,确保系统的高效运行。仿真结果无水印,操作步骤详见配套视频。
54 18
|
1月前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
117 10
|
2月前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。

热门文章

最新文章