数学建模 —— 人工神经网络(6)

目录

一、人工神经网络

1.1 人工神经网络结构

1.2 神经元/感知器

1.3 激活函数

1.3.1 sign函数

1.3.2 sigmoid函数(Logistic函数)

1.3.3 tanh双曲正切函数

1.3.4 ReLU函数

1.4 分类

二、BP人工神经网络

2.1 概述

2.2 处理过程

2.3 例题

2.4 Matlab实现

2.4.1 一个简单程序

2.4.2 newff——BP神经网络参数设置函数

2.4.3 train——BP神经网络训练函数


一、人工神经网络

1.1 人工神经网络结构

1.2 神经元/感知器

1.3 激活函数

1.3.1 sign函数

                     

1.3.2 sigmoid函数(Logistic函数)

                    

1.输出映射在 ( 0 1 ) 之间,输出 范围 有限
2.单调连续,易于求导
3.优化 效果 稳定
4.适合用于输出层感知器的激活函数

   

1.因为 sigmoid 函数具有的饱和 性,容易 产生梯度 消失,导致 训练 失效
2.输出 并不是以 0 中心

       可以看出,sigmoid函数的导数只有在x=0附近的时候有比较好的激活性,在正负饱和区的梯度都接近于0,造成梯度弥散,无法完成深层网络的训练。

1.3.3 tanh双曲正切函数

             

1.取值 范围为 [- 1 1]
2.在 特征相差明显时的应用效果 较好,在循环 训练过程中会不断扩大特征 效果
3.是 0 均值
4.应用中比 sigmoid 函数有更强的 应用性
5.同样 具有饱和 性,也 会造成梯度 消失

1.3.4 ReLU函数

                                        

                                 

1.用于 某些算法(如随机梯度下降) 时,收敛速度较快
2.当 x <0 时, ReLU 饱和;当 x > 0 时,则 不存在饱和 问题
3.在 x > 0 时保持梯度不 衰减,从而 缓解梯度消失 问题。但随着训练推进,部分 输入会落入硬饱和 区,导致 对应权重无法 更新,导致神经元死亡
4.输出 均值也大于 0
5.偏移 现象和神经元死亡会共同影响网络的收敛性。

1.4 分类

(1)拓扑结构划分

        两层、三层、多层神经网络

(2)结点间的连接方式划分

        层间连接、层内连接

(3)结点间的连接方向划分

        前馈式神经网络BP(Back Propagation)、反馈式神经网络(Feedback)

二、BP人工神经网络

2.1 概述

        BP人工神经网络一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一

        BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程        

 

2.2 处理过程

(1)初始化网络权值和处理单元的阈值

        最简单的办法就是随机初始化,分别wijwjkwklbijbjkbkl赋随机值

(2)信号的前向传播,计算各处理单元的输出

        按照网络连接以及组合函数和激活函数关系公式,逐层计算隐藏层处理单元和输出层处理单元的输入和输出。

 (3)误差后向传播

对于训练数据xi,输出应为yl,与人工神经网络实际输出Ol存在差异

定义系统的总输出误差为系统输出层各处理单元输出误差的平均值

即各输出Ol与训练数据yl的差异),

输出与其期望值的均方差

 

 需要根据差异的情况对系统内各连接的权值进行调整,使二者相等或逼近 yl

(4)模型评估

(5)模型应用

2.3 例题

 

2.4 Matlab实现

2.4.1 一个简单程序

P=[0 1 2 3 4 5 6 7 8 9 10];          %输入
T=[0 1 2 3 4 3 2 1 2 3 4];           %期望输出
ff=newff(P,T,20);                    %建立一个BP网络,包含20个节点的隐含层
ff.trainParam.epochs=50;             %最大训练次数
ff=train(ff,P,T);                    %训练
Y1=sim(ff,P);                        %仿真
plot(P,T,'o-');

2.4.2 newff——BP神经网络参数设置函数

功能:构建一个BP神经网络

(1)net=newff(P, T, S)

P:  R*Q1矩阵,表示创建的神经网络中,输入层有R个神经元。每行对应一

     个神经元输入数据的典型值,实际应用中常取其最大最小值。

T:  SN*Q2矩阵,表示创建的网络有SN个输出层节点,每行是输出值的典型

     值。

S:  标量或向量,用于指定隐藏层神经元个数,若隐藏层多于一层,则写成

     行向量的形式。

(2)net=newff(P, T, S, TF, BTF, BLF, PF, IPF, OPF, DDF)

TFi:    i层节点的传递函数,包括线性传递函数purelin, 正切S型传递函数

           tansig,对数S型传递函数logsig,默认为“tansig”

BTF:  训练函数,用于网络权值和阈值的调整,默认为基于莱文贝格-马夸

           特共轭梯度法的训练函数trainlm,其他参数见下表所示;

一般在使用过程中设置这2个参数,后面5个参数采用系统默认参数。

BP神经网络训练函数

训练函数的意义

MATLAB中相应的函数

梯度下降法

traingd

动量反传的梯度下降法

traingdm

动态自适应学习率的梯度下降法

traingda

带动量动态自适应学习率的梯度下降法

traingdx

弹性梯度下降法

trainrp

量化共轭梯度法

traincg

莱文贝格-马夸特共轭梯度法

trainlm

弗莱彻-里夫斯共轭梯度法

traingf

波拉克-里比埃共轭梯度法

traingp

鲍威尔-比尔共轭梯度法

traingb

2.4.3 train——BP神经网络训练函数

功能:用训练函数训练BP神经网络

[net, tr]=train(NET, P, T)

NET:  待训练网络;

     P:  输入数据矩阵;

     T:  期望输出数据矩阵;

  net:  训练好的网络;

     tr:  训练过程记录。

BP神经网络训练函数

训练参数名称及默认值

属性

net.trainParam.epochs=100

最大训练次数

net.trainParam.goal=0

训练目标

net.trainParam.show=25

两次显示之间的训练次数(无显示时取NAN

net.trainParam.time=inf

最大训练时间(秒)

net.trainParam.max_fail=5

确认失败的最大次数

net.trainParam.min_grad=1e-6

最小性能梯度

net.trainParam.lr=0.2

学习速率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/339218.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本地安装AI大模型

使用ollmam安装llmama3等模型 1.打开ollmam下载对应系统的软件&#xff0c;安装即可 官网&#xff1a;Ollama&#xff0c; 安装直接点就就行了&#xff0c;没有其他操作 2.安装模型 在官网找到对于的模型下载命令 记录命令:ollama run llama3 打开一个cmd窗口&#xff0c;输…

272 基于matlab的形态滤波和局域值分解(LMD)的齿轮故障诊断

基于matlab的形态滤波和局域值分解&#xff08;LMD&#xff09;的齿轮故障诊断&#xff0c;GUI交互界面。通过形态滤波对一维信号进行降噪处理&#xff0c;并通过LMD局部均值分解提取故障信号&#xff0c;最后提取处故障频率。程序已调通&#xff0c;可直接运行。 272 形态滤波…

Thinkphp5响应式进销存仓库管理系统

随着企业规模的不断扩大和市场竞争的日益激烈&#xff0c;进销存管理在企业的运营中扮演着越来越重要的角色。为了提高企业的运营效率&#xff0c;降低库存成本&#xff0c;提升客户满意度&#xff0c;越来越多的企业开始引入进销存仓库管理系统。 进销存仓库管理系统是一种集…

汽车数据应用构想(二)

一直说数据价值场景&#xff0c;啥叫有价值&#xff1f;啥样的场景有价值&#xff1f;按互联网的价值观来看&#xff0c;用户的高频需求就是价值。用户也许不会付费&#xff0c;但只要他天天用&#xff0c;那就是流量&#xff0c;就是用户黏性&#xff0c;就是价值&#xff01;…

夜天之书 #98 Rust 程序库生态合作的例子

近期主要时间都在适应产品市场&#xff08;Product Marketing&#xff09;的新角色&#xff0c;不少想法还在酝酿和斟酌当中&#xff0c;于是文章输出没有太多时间来推敲和选题&#xff0c;只能保持每月发布相关的进展或一些零碎的思考。或许我可以恢复最早的模式&#xff0c;多…

kotlin1.8.10问题导致gson报错TypeToken type argument must not contain a type variable

书接上回&#xff0c;https://blog.csdn.net/jzlhll123/article/details/139302991。 之前我发现gson报错后&#xff1a; gson在2.11.0给我的kotlin项目代码报错了。 IllegalArgumentException: TypeToken type argument must not contain a type variable 上次解释原因是因为&…

String常用操作

String常用方法 构造字符串 常用的构造字符串有3种&#xff1a; 1.直接赋值String s "abcd"; 2.实例化调用构造方法String s new String("abcd"); 3.实例化传字符数组 char[] ch {a,b,c,d}; String s new String(ch);字符串比较 比较 比较的是两个…

隐马尔可夫链

1 马尔可夫链 马尔科夫链&#xff08;Markov Chain&#xff09;是一种数学模型&#xff0c;它描述了一系列可能事件的概率&#xff0c;其中每个事件的发生仅依赖于前一个事件的状态。这一特性称为“无记忆性”或“马尔可夫性质”。我将用一个简单的天气预测模型作为例子来解释马…

Java+SVNCloud+Mysql课程设计

文章目录 1、主要内容2、所需准备3、与sql访问的中间类&#xff1a;SqlMessage4、窗口界面5、main方法 1、主要内容 课程设计&#xff0c;主要通过Javas wing创建窗口&#xff0c;jdbc连接云端mysql数据库进行基本操作&#xff0c;支持随机生成数据并用动态展示数据结果。 先…

自学 Java 怎么入门?

关于自学 Java 如何入门这一重要课题&#xff0c;在此为大家进行详细阐述。 在此之前&#xff0c;如果大家有兴趣的话&#xff0c;可以看看我自己精心整理的嵌入式入门资料&#xff0c;这些资料将全部免费送给大家。其中包含了编程教学内容、详细的视频讲解、实用的数据库资料…

Vue 实例

一、页面效果图 二、代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><script src"../vue.js" type"text/javascript"></script><title>vue 实例</title></head><body>&l…

Linux命令篇(一):文件管理部分

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 1、cat命令常用参…

HALCON-从入门到入门-图像格式的互相转换

1.废话 上次说到了图片的读取和写入到本地&#xff0c;这次说一下图片的格式相关。 位图和矢量图 photoshop处理出来的图片肯定叫做图片&#xff0c;那么coreDraw处理出来的图片是不是也叫图片。 之间就有区分&#xff0c;一种叫做位图&#xff0c;一种叫做矢量图 位图和矢…

创建一个支持切换阅读模式和答题模式的Anki问答题模板

为了备考某个需要默写的科目&#xff0c;做了个问答题笔记模板&#xff0c;如下&#xff1a; 在上图的回答栏填写答案后&#xff0c;点击显示答案按钮转到背面&#xff1a; 只实现上面的功能是很简单的&#xff0c;直接基于Anki自带的问答题模板添加自己需要的字段即可。问题…

基于卷积-小波神经网络的SAR图像海冰变化检测方法(MATLAB R2018A)

海冰是冰冻圈的重要组成部分&#xff0c;海冰的变化信息对航行安全和自然资源开采等非常重要&#xff0c;许多船舶没有加固防冰设备&#xff0c;因此&#xff0c;必须避开所有的冰区。尤其当冰压很高时&#xff0c;即使破冰船也很难在冰层中前行。为了安全航行&#xff0c;获取…

自动化办公01 smtplib 邮件⾃动发送

目录 一、准备需要发送邮件的邮箱账号 二、发送邮箱的基本步骤 1. 登录邮箱 2. 准备数据 3. 发送邮件 三、特殊内容的发送 1. 发送附件 2. 发送图片 3. 发送超文本内容 4.邮件模板内容 SMTP&#xff08;Simple Mail Transfer Protocol&#xff09;即简单邮件传输协议…

天气数据集-Jena Climate dataset

天气数据集-Jena Climate dataset 1.数据集基本信息 Dataset Name: mpi_saale_2021b.csv Size: 26495 rows; 1 year (2021), 10 min 气象学、农业、环境科学 开源机构: Max Planck Institute for Biogeochemistry 2.数据特征 2.1 特征简介 数据共有31个特征&#xff0c;…

使用 Scapy 库编写 Ping of Death 攻击脚本

一、介绍 1.1 概述 Ping of Death&#xff08;PoD&#xff09;攻击是一种历史悠久的拒绝服务&#xff08;DoS&#xff09;攻击&#xff0c;攻击者通过发送特制的畸形ICMP Echo请求数据包&#xff0c;导致目标系统无法正确处理&#xff0c;从而导致系统崩溃、重启或无法响应正…

【最新鸿蒙应用开发】——什么是状态管理?

状态管理 在声明式UI编程框架中&#xff0c;UI是程序状态的运行结果&#xff0c;用户构建了一个UI模型&#xff0c;其中应用的运行时的状态是参数。当参数改变时&#xff0c;UI作为返回结果&#xff0c;也将进行对应的改变。这些运行时的状态变化所带来的UI的重新渲染&#xf…

【Postman接口测试】第四节.Postman接口测试项目实战(上)

文章目录 前言一、项目介绍 1.1 项目界面功能介绍 1.2 项目测试接口介绍 1.3 项目测试接口流程二、HTTP协议三、接口测试中接口规范四、项目合同新增业务介绍 4.0 接口测试用例设计流程 4.1 登录接口调试 4.2 登录接口自动关联 4.3 添加…