基于MATLAB的改进激活函数的单层神经网络

发布时间:2023年12月28日

目 录
1 绪 论 1
1.1 研究背景及研究意义 1
1.2国内外研究综述 2
1.2.1国外研究综述 2
1.2.2 国内研究综述 3
1.3研究思路及方法 4
1.4论文的组织结构 5
2 激活函数 6
2.1 人工神经网络概述 6
2.1.1 人工神经网络的基本特征 6
2.1.2 人工神经网络模型 7
2.2 常见激活函数及其作用 8
2.3 新激活函数 9
3 改进激活函数的算法 12
3.1 误差函数 12
3.2 BP算法 13
4 验证结果 14
4.1 实验对象 14
4.2 实验结果 14
结 论 16
参考文献 17
附 录 18
致 谢 22
1.3研究思路及方法
人工神经网络是在对现代神经科学(神经细胞结构和神经系统活动机制)的研究基础上提出和发展起来的,是一种新型信息处理技术。它可以解决一些数据模糊,知识残缺或者是缺少清晰明显的数学算法的问题分析,目的就是模拟人脑结构及其功能的一种数学模型。
误差反向传播神经网络是一种按误差逆向进行传播的多层前馈神经网络,即BP网络,是目前公认为世界上应用最广泛的神经网络模型之一,分为输入层、隐含层和输出层,如图1.1所示,是一种三层或以上的神经网络。它的学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本,然后从输入层传入,经过各隐层按顺序处理后,传到输出层,计算出输出,计算出各层的误差信号,接着调整各层权值,最后检查网络总误差是否达到误差要求,若输出层的实际输出与要求的期望输出条件不符合,则转入误差的反向传播阶段。
误差反传是将输出层的实际输出与要求的期望输出条件不符合的,将误差由隐藏层传播回到输入层,以此来获得各层单元的误差信号,进而对个各单元的权值不断进行调整。由正向传播到误差反传,再由误差反传到正向传播,一直这样子进行循环,一直进行到实际网络输出的与期望网络输出在一要求的误差范围内,这样子才可以停止该过程。其中对权值的不断调整的过程就是网络学习训练过程。
误差反向传播算法【14-15】(back-propagation, BP)采用梯度下降学习思想,该算法是经过严密的数学推导而得出来的,思路非常清晰、结构极其严谨、可操作性非常强。
本文中提出了一个新的激活函数—bump形函数,改进的激活函数的支撑集在 [a,b] 上,通过调节a,b两个参数。因此神经网络不需要阈值,而且引入一个参数,使得网络具有更好的适应性,新的激活函数就是建立在这种bump形函数上。然后改进激活函数的BP算法,绘制出迭代次数—误差曲线来比较新的激活函数神经网络和神经网络的收敛性。通过比较分析,改进的激活函数的单层神经网络比一般的单层神经网络具有更高的学习效率。
在这里插入图片描述

图1.1 BP算法的网络结构示意图

function y=ramp(x,lb,ub,h)
% function:
%        ramp
% input:
%        x: vector;
%        h: S(a,b),smooth function with compact support;
%        [lb,ub]: the bound of interval.
% output:
%        y: vector(as x);
% Call: bump
%----------------------------------------
% Principle:  f:S(a,b)=> int(h,a,x):S-type
% Application: construct smooth funciton S-type
% Attention: x in [lb,ub]
% Example: 
%         x=linspace(-1,2,101);
%         y=ramp(x);
%         plot(x,y)
% See also bump
%----------------------------------------
% Designer: Congwei Song
% Date: 10-Sep-2009

if nargin<=3,h=@bump;          % default bump function
    if nargin<=1
        lb=-1;ub=1;
        if nargin==0
            x=linspace(lb,ub,100);
        end
    end
end
I=quad(h,-1,1);                % I

Nx=length(x);y=zeros(1,Nx);

for j=1:Nx
    xj=x(j);
    if xj>=ub,y(j)=1;
    elseif xj>lb,
        y(j)=quad(h,-1,2*(xj-lb)/(ub-lb)-1)/I;  % S-type function
    end
end

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文章来源:https://blog.csdn.net/newlw/article/details/135237730
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。