m基于多集成BP神经网络的matlab仿真,神经网络通过编程实现不使用工具箱

简介: m基于多集成BP神经网络的matlab仿真,神经网络通过编程实现不使用工具箱

1.算法描述

    神经网络主要由处理单元、网络拓扑结构、训练规则组成。处理单元是神经网络的基本操作单元,用以模拟人脑神经元的功能。一个处理单元有多个输入、输出,输入端模拟脑神经的树突功能,起信息传递作用;输出端模拟脑神经的轴突功能,将处理后的信息传给下一个处理单元,如图1.1所示。

image.png

基本的神经处理单元其等效于人体的神经元,如图2所示,

image.png
=> image.png

    具有相同功能的处理单元构成处理层。常用的多层感知机由输入层、输出层和若干隐含层组成,神经网络的拓扑结构决定了各处理单元、各层之间信息的传递方式与途径。训练规则利用转换函数进行数据处理的加权及求和,训练网络系统进行模式识别,并将其转换成潜在的输出值。神经网络的基本出发点,就是通过简单函数的多次迭代,实现对复杂映射的拟合和逼近。神经网络能够实现一对一、一对多的映射关系。因此,许多实际问题都可以用神经网络模型来解决。

   神经网络的工作过程主要由两个阶段组成,一个阶段是学习期,即训练阶段,此时连接权值可调整,另一个阶段就是工作期,此时,其各个权值固定。

   在学习阶段,训练集中已知类别的输入向量将随机输入给神经网络,每次的输入使得PE之间的连接权重根据一种固定的学习规则得到细致的调整,使得网络的输出向正确的方向转变。随着训练过程的推进,网络的性能得到的改善,直到网络中每一个PE都收敛到合适的权重为止。

   在神经网络的学习阶段,当网络做出错误的判决的时候,那么通过神经网络的学习,应使得网络减少下次犯同样错误的可能性,通常情况下,系统将会给网络一个随机的权值,然后将信号输入到神经网络,网络将输入的模式进行加权求和、并与门限进行比较,然后进行非线性运算从而得到网络的输出。这个时候系统输出正确和错误的概率是相同的,那么这个时候,系统将正确的输出结果的连接权值增大,从而使下次输入同一个信号的时候,得到正确的输出结果。

   通常情况下,按这种方法学习几次后,神经网络将判断的正确率大大提高,一般来说,网络中所含的神经元个数就越多,那么它能够记忆和识别的模式也越多。

   当训练结束进入工作期时,权重系数保持不变,此外神经网络的输入是未知类别的向量,输入的信息经过神经元层层传播,最后在输出层上产生输出向量,根据此输出向量可以将对象划分到某一类中,从而实现对象的模式识别。

   BP神经网络的网络层包括输入层,隐含层和输出层三个网络层次,其基本结构如下图所示:

image.png

基于三层网络结构的BP神经网络具有较为广泛的应用场合和训练效果。

    在BP神经网络中,隐含层数量对神经网络的性能有着至关重要的影响,如果隐含层数量过多,会大大增加BP神经网络的内部结构的复杂度,从而降低学习效率,增加训练时间;如果隐含层数量过少,则无法精确获得训练输入数据和输出结果之间的内在规律,增加预测误差。因此,选择合适的隐含层个数具有十分重要的意义。由于隐含层个数的设置没有明确的理论可以计算,通常情况下,采用逐次分析的方法获得,即通过对不同隐含层所对应的神经网络进行预测误差的仿真分析,选择误差最小情况下所对应的隐含层个数。

    学习率,即网络权值得更新速度,当学习率较大的时候,网络权值的更新速度快,当网络稳定性会下降;当学习率较小的时候,网络权值的更新速度慢,网络较为稳定。这里选择BP神经网络的学习率方式参考上一章节隐含层的选择方式,即通过对比不同学习率的网络训练误差,选择性能较优的学习率。

   BP神经网络的初始网络权值对网络训练的效率以及预测性能有着较大的影响,通常情况下,采用随机生成[-1,1]之间的随机数作为BP神经网络的初始权值

image.png
image.png
image.png

2.仿真效果预览
matlab2022a仿真结果如下:

image.png
image.png
image.png
image.png

3.MATLAB核心程序
`%BP1~4
KER = 4;%集成个数
W0 = rand(NI,Nh,KER);
deltaW0 = zeros(NI,Nh,KER);
dW0 = zeros(NI,Nh,KER);
W = rand(Nh,No,KER);
deltaW = zeros(Nh,No,KER);
dW = zeros(Nh,No,KER);

ERR = [];
Index = 1;

while(Index<=Max_iteration)
Index
jj=1;
error2 = zeros(Len,KER);
while(jj<=Len)

for k=1:No;
    d(k)=T(jj);  
end
for i=1:NI;
    x(i)=P(jj,i);
end
%集成多个BP神经网络
for bpj = 1:KER      
    for j=1:Nh%BP前向            
        net=0;              
        for i=1:NI                
            net=net+x(i)*W0(i,j,bpj); %加权和∑X(i)V(i)            
        end
        y(j)=1/(1+exp(-net));               
    end
    for k=1:No             
        net=0;              
        for j=1:Nh                  
            net=net+y(j)*W(j,k,bpj);             
        end
        %输出值
        o(k)=1/(1+exp(-net));              
    end
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    errortmp=0.0;         
    for k=1:No              
        errortmp=errortmp+(d(k)-(o(k)))^2;%传统的误差计算方法
    end
    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    error2(jj,bpj)=0.5*errortmp/No;         
    for k=1:No%BP反向计算          
        yitao(k)=(d(k)-o(k))*o(k)*(1-o(k));%偏导      
    end
    for j=1:Nh         
        tem=0.0;         
        for k=1:No             
            tem=tem+yitao(k)*W(j,k,bpj);       
        end
        yitay(j)=tem*y(j)*(1-y(j));%偏导    
    end

。。。。。。。。。。。。。。。。。。。。。。。。。。

end
jj=jj+1; 

end
%BP训练结束
error = sum(mean(error2));
%误差是否达到精度
if error<Paim;

 break;

end
Index = Index+1;
ERR = [ERR,error];
end

相关文章
|
3天前
|
传感器 算法 vr&ar
六自由度Stewart控制系统matlab仿真,带GUI界面
六自由度Stewart平台控制系统是一种高精度、高稳定性的运动模拟装置,广泛应用于飞行模拟、汽车驾驶模拟、虚拟现实等领域。该系统通过六个独立的线性致动器连接固定基座与移动平台,实现对负载在三维空间内的六个自由度(三维平移X、Y、Z和三维旋转-roll、pitch、yaw)的精确控制。系统使用MATLAB2022a进行仿真和控制算法开发,核心程序包括滑块回调函数和创建函数,用于实时调整平台的位置和姿态。
|
3天前
|
机器学习/深度学习 算法 调度
基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
基于ACO蚁群优化的VRPSD问题求解MATLAB仿真,输出ACO优化的收敛曲线、规划路径结果及每条路径的满载率。在MATLAB2022a版本中运行,展示了优化过程和最终路径规划结果。核心程序通过迭代搜索最优路径,更新信息素矩阵,确保找到满足客户需求且总行程成本最小的车辆调度方案。
|
9天前
|
人工智能 算法 数据安全/隐私保护
基于遗传优化的SVD水印嵌入提取算法matlab仿真
该算法基于遗传优化的SVD水印嵌入与提取技术,通过遗传算法优化水印嵌入参数,提高水印的鲁棒性和隐蔽性。在MATLAB2022a环境下测试,展示了优化前后的性能对比及不同干扰下的水印提取效果。核心程序实现了SVD分解、遗传算法流程及其参数优化,有效提升了水印技术的应用价值。
|
10天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
10天前
|
算法 C++ Windows
基于离散差分法的复杂微分方程组求解matlab数值仿真
本程序基于离散差分法求解复杂微分方程组,将连续微分方程转化为差分方程,采用一阶显式时间格式和一阶偏心空间格式。在MATLAB2022a上测试通过,展示了运行结果。
|
2天前
|
机器学习/深度学习 存储 算法
基于Actor-Critic(A2C)强化学习的四旋翼无人机飞行控制系统matlab仿真
基于Actor-Critic强化学习的四旋翼无人机飞行控制系统,通过构建策略网络和价值网络学习最优控制策略。MATLAB 2022a仿真结果显示,该方法在复杂环境中表现出色。核心代码包括加载训练好的模型、设置仿真参数、运行仿真并绘制结果图表。仿真操作步骤可参考配套视频。
12 0
|
3天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
3月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
169 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
3月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
120 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
|
3月前
|
数据采集 存储 移动开发
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码
本文介绍了2023年五一杯数学建模竞赛B题的解题方法,详细阐述了如何通过数学建模和MATLAB编程来分析快递需求、预测运输数量、优化运输成本,并估计固定和非固定需求,提供了完整的建模方案和代码实现。
86 0
【2023五一杯数学建模】 B题 快递需求分析问题 建模方案及MATLAB实现代码