matlab人工神经网络如何使用,MATLAB的人工神经网络应用

2023-10-26

一、人工神经网络简介

人工神经网络 ( Artifical NeuralNetwork- ANN) 是目前国际上迅速发展的前沿交叉学科 (张立明, 1993), 它是模仿生物神经系统的信息处理方式、 组织结构和系统功能的简化系统。人工神经网络以其自身的自组织、自适应和自学习的特点被广泛应用于各个领域。传统的前馈网络属于静态网络,而今年来迅速发展的递归神经网络,属于动态网络,利用网络的内部状态来反馈描述系统的非线性动力学特性,从而更直接的反应系统的动态特性。

递归网络是有一个或多个反馈回路的神经网络,把反馈应用于神经网络有多种不中的形式,从而就会产生不同结构的递归网络。在其学习算法中,递归下降法被广泛应用。本文采用一种梯度法神经网络(即Hopfield神经网络或称递归神经网络)求解线性矩阵方程:

0818b9ca8b590ca3270a3433284dd417.png

通过与理论的解对比分析,验证该模型的解线性矩阵方程Ax=b的准确性,并进一步通过误差分析,证实求解的正确性。

二、 梯度法神经网络模型的建立

自上世纪 80年代中期以来 , 很多研究都把注意力放在矩阵运算的快速算法方面。一般来说,数值算法的最小计算复杂度通常与矩阵维数的立方成正比。所以,当这种串行处理算法应用到维数较大的矩阵实时求解问题时就显得效率不高。有鉴于此,我们也曾提出复杂度与矩阵维数平方成正比的数值算法来解决这类矩阵问题。然而,结果也同样未尽人意,如求解一个60000维矩阵逆运算需要约一个小时的时间。因此 ,许多学者一直在探讨合适的并行计算方案。动力学系统方法是一种非常重要的并行计算方法,能够有效地解决固定矩阵运算问题,随着对神经网络的深入研究,基于递归神经网络的动力学系统和模拟求解方法已经发展成熟。神经动力学方法,因其并行分布计算的特性和简单的硬件/电路可实现性,被认为是在线解决这些固定矩阵运算问题的强有力的替换工具。

2.1 理论解

数学矩阵论中求解方法如下:

0818b9ca8b590ca3270a3433284dd417.png

2.2 模型推导

下面依据负梯度设计方法推导该神经网络模型:

1)构造一个基于矩阵范数的标量误差函数 :

0818b9ca8b590ca3270a3433284dd417.png

2)为了使上述误差减小 , 可使用经典的负梯度方法, 因此我们可以得到如下误差函数负梯度方向作为下降方向:

0818b9ca8b590ca3270a3433284dd417.png

3)线性的基于负梯度的神经网络模型如下:

0818b9ca8b590ca3270a3433284dd417.png

其中参数  决定网络的收敛速度(如条件允许, 越大越好);

三、梯度法神经网络模型解线性矩阵方程Ax=b结果的验证

通过数学矩阵论中求出的解与梯度法神经网络模型求出的解x的比较分析,以及误差分析来检验该神经网络在求解线性矩阵方程问题时的准确性和有效性。模型的验证我们通过MATLAB仿真来实现。

3.1 MATLAB程序分析

3.1.1构造矩阵

为了仿真 、 对比和验证上文给出 的分析结论 , 我们可以考虑与如下常系数矩阵相关的矩阵方程的神经网络求解:

0818b9ca8b590ca3270a3433284dd417.png

且矩阵A、b可以由下面MATLAB代码给出:

构造矩阵A

matirxA.m

function A=matirxA()

A=[1 2  3; 4  2  6;7  4 9];  %任意给出n阶方阵

构造矩阵B

Vector.m

function b=vectorb()

b=[1; 1; 3];      %任意给出与矩阵同行的行矩阵

3.1.2 AX=b 理论解的求解

main.m

%理论解的求解

A=matrixA(t);

b=vectorb(t);

y=A\b;

t1=0:0.01:10

%画出理论解y1 y2 y3的图形

plot(t1, y(1), '.b', t1, y(2), '.r', t1,y(3), '.k')

legend('理论解x1','理论解x2','理论解x3');

xlabel('t');

ylabel('x');

hold on

x1= y(1), x2=y(2),x3=y(3)       %输出理论解

3.1.3 梯度法神经网络模型解线性矩阵方程Ax=b

先将描述该神经网络的矩阵微分方程 (MDE)转化为向量微分方程(VDE) ,即标准的给定初始值常微分方程 (ODE) ; 再用MATLAB 指令“ode15s ”, 用来仿真上述转化后的给定初始值常微分方程,最后再将x随时间t变化的过程绘出。

(1)矩阵微分方程转换为向量微分方程

xprim3.m

function xprim=xprim3(t,x)

lamda=100;    %lamda即模型中的参数    决定网络的收敛速度

A=matirxA;

b=vectorb;

xprim=-lamda*A'*(A*x-b); %t时间内 x 沿负梯度方向变化的  的值

(2)梯度法神经网络模型求出的 的解以及求解的x的过程图

main.m

clc

clear

close all

t0=[0 2];

x0=[0;0;0];

%ode15s返回值:随时间变化  的值

% ode15s参数:'xprim3' – 需要求数值解的微分方程的函数

%t0 – 变化的时间     x0 –- x 的初值

% 在时间t自动调整x,求解

[t,x]=ode15s('xprim3',t0,x0);

plot(t,x);    %画出微分方程求解过程中随时间t变化的曲线

hold off;

3.1.4 误差分析

for j=1:length(t)

err(:,j)=A*x(j,:)'-b; %将神经网络模型求解的x值代入Ax-b中

nerr(j)=norm(err(:,j));

end

figure

plot(t,nerr)

xlabel('时间t');

3.2 MATLAB的运行结果分析

(1) 理论解的数值

理论解的数值分别是:

x1 =   0.5000

x2 =   1.0000

x3 =   -0.5000

(2)理论解与模型解的图形

从图1中,理论解x1、理论解x2和理论解x3三条直线是以理论解x1、x2、x3做纵坐标平行于x轴的直线,可以看出当 t>1 时,随着t的增大,梯度法神经网络模型求解线性矩阵方程 的三个解分别越来越接近理论解x1、理论解x2和理论解x3三条直线,说明网络模型求解线性矩阵方程的准确性。

0818b9ca8b590ca3270a3433284dd417.png

图1

(2) 误差分析图形

0818b9ca8b590ca3270a3433284dd417.png

图2

从误差图图2进一步分析,同样当t>1 时,基于梯度下降法的神经网络模型求解线性方程组结果的误差趋近于0。进一步验证我们的基于梯度下降法的神经网络模型求解线性方程组的模型具有很好的校验。

四、结论

仿真结果同理论分析的对应一致,进一步证实基于梯度法的Hopfield神经网络在求解固定系数线性矩阵方程中具有很好的效验。基于梯度法Hopfield神经网络提供了一个有效的实时求解线性矩阵方程的并行计算方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

matlab人工神经网络如何使用,MATLAB的人工神经网络应用 的相关文章

  • 大数据导论学习日志Day1

    第一章大数据概述 1数据 1 1数据的概念 数据是指对客观事件进行记录并可以鉴别的符号 是对客观事物的性质 状态以及相互关系等进行记载的物理符号或这些物理符号的组合 是可识别的 抽象的符号 数据和信息是两个不同的概念 信息是较为宏观的概念
  • mysql 唯一索引为null_mysql 唯一索引与null.md

    mysql 的唯一索引要求所有参与的列都不能够为 null 值 如果唯一索引中的任何一个元素含有 null 值 则唯一约束将不起作用 示例代码 create table tb a int b int c int unique index a
  • go并发爬虫

    说明 最大20线程 搜索深度不大于3的网页 并打印出来 当搜索的不是网页的时候 存在bug 还在学习 希望有大佬告知怎么解决 package main import fmt log net http golang org x net htm
  • ReactNative系列之三十一业务bundle拆分及动态加载实例

    2018 12 17日志 1 github上的源代码更新 修复windows上生成bundle内路径的异常处理 暂时先放出思路 近期会做一期视频解析及源码下载 敬请关注 演示视频 https pan baidu com s 1FYVYgSe
  • http请求 状态码204

    今天在调试接口的时候遇到个问题 一个请求走了两次 一次204 一次200 且 请求204的 Request Method 是 OPTIONS 在网上查看资料后得知 是因为跨域而引起的 OPTIONS是一种 预检请求 浏览器在处理跨域访问的请
  • 【C++】基础语法7--继承

    继承 意义 增加代码利用率 语法 class 类名1 权限 父类2 类名1被称为 子类 或者 派生类 类名2被称为 父类 或者 基类 class dog public class Taidi public dog 继承方式 公共继承方式 p
  • 刷脸支付成功路上任何事都需要经过历练

    刷脸支付自出世以来 争议从未断过 有人认为刷脸支付十分安全便捷 是可以替代扫码支付的支付方式首选 也有人认为刷脸支付会泄露人脸信息造成安全隐患从而拒绝使用 关于刷脸支付安全性 支付宝微信早已出面解释并表示刷脸支付十分安全 也承诺若有因刷脸支
  • 一步一步学习openfire+spark(1)

    以前写过一篇关于openfire的文章 内容比较孤立 写的也比较简单 没有实际意义 正好公司使用的是这个平台 现在从新开始 对openfire这个框架进行系统性的学习 深入的了解openfire以及和openfire配套的spark的开发
  • 按步长对遥感数据进行批量裁剪

    该代码支持多图像裁剪 先将tif格式的图片转为png 再对多个png图片进行批量裁剪 批量裁剪 import os import gdal makeData import numpy as np from osgeo import gdal
  • 量化策略——准备1 系列简介

    文章目录 系列简介 系列重点 避坑 系列简介 量化策略 xxxx 是博主近期新开的一个系列 主要有以下四个方面的内容 量化选股 选择大概率赚钱的好股票 量化择时 选择低买高卖的好时机 量化套利 利用不同市场 品种 价格共识等 进行价差套利
  • 零基础可以学习Python吗?转行小白怎么学Python?

    Python学习常用的技巧有这些 一是要明确自己的学习目的 二是从易到难 循序渐进 三是合理的选择资料 有所取舍 四是坚定自己的信念 以下是关于Python学习技巧的具体介绍 1 明确自己的学习目的 每个人学Python的初衷绝对是不一样的
  • 【工具类】工具类中使用@Autowired

    Component public class Util private static String b Autowired private String a PostConstruct public void init b a Compon
  • SQL server删除表信息代码

    SQL server删除表信息代码 1 delete删除 delete from table 只是删除了表中的内容 并没有把表删除 2 drop删除 drop table 表名 把整个表都删除 3 truncate删除 truncate t
  • 通用mybatis执行sql工具系列解决方案lingdu

    整套逻辑可执行保存到数据库中的sql例如 select from a where a name ling name ling name中的name是由前端传入的参数 经过Lingdu类的动态封装 传入到mapper xml中的sql字符串中
  • python 处理hbase数据

    使用Python调用happybase库 1 thrift 是facebook开发并开源的一个二进制通讯中间件 通过thrift 我们可以用Python来操作Hbase 首先开启Hadoop平台的HadoopMaster的thrift服务
  • 使用webpack中的externals配置项如何配置

    externals配置项用于配置那些不需要打包进应用程序中的第三方依赖 在webpack配置文件中 可以使用以下方式配置externals module exports externals jquery jQuery 上面的配置表示jque
  • gdb C++程序coredump不显示行号问题

    编译程序的时候加上 g就可以了 编译出来的程序会大不少 然后再去gdb就能显示行号了 直接就能定位到具体那一行导致的程序coredump
  • 虚拟机下为ubuntu添加硬盘

    1 在Vm中关闭Ubuntu 设置 中 添加新的硬件设备 选择Hard Disk 点击下一步 2 选择硬盘类型 可以选择IDE 或是SCSI 这里选择SCSI 3 选择虚拟新硬盘的位置 命名 Ubuntu2 vmdk 4 设定硬盘大小 随便
  • python解带L1正则的最小二乘

    给定 H R d n H in R d times n

随机推荐

  • 存储卡目录变成未知文件?这些技巧能让你恢复数据!

    当存储卡的目录变成未知文件时 我们无法直接访问存储卡中的数据 但是 这并不意味着这些数据永远无法恢复 以下是几种可能恢复存储卡数据的方法 使用数据恢复软件 从互联网上下载并安装专业的数据恢复软件这些软件可以扫描存储卡 找回已删除或损坏的数据
  • 用MATLAB的GUI绘图的一个简单例子

    本文参考自https jingyan baidu com article 0f5fb099ade1626d8334ead0 html 略加改动 常用MATLAB进行一些计算 使用GUI功能的话调整参数的时候会比较方便 首先在MATLAB中选
  • FCA-FineReport帆软认证报表工程师(FCA)考试考题

    Part 1 判断题 总分 60分 得分 56 第1题 判断题 进行决策系统平台目录管理时 链接的地址可以选择使用相对路径或绝对路径 得分 2分 满分 2分 正确答案 A A 正确 B 错误 第2题 判断题 次级管理员可新建 编辑 删除有权
  • 爬虫的“黄金搭档”---requests库的详细介绍

    什么是requests Requests is an elegant an simple HTTP library for Python Requests是一个优雅而简单的HTTP库 requests库是一个常用的用于http请求的模块 它
  • 转发UGUI事件响应

    示例 点击UI时 被遮挡的UI也响应 using System Collections using System Collections Generic using System Linq using UnityEngine using U
  • SQL之DML

    DML Data Manipulation Language 数据操作语言 用来对数据库中表的数据记录进行增删改操作 insert 添加数据 update 修改数据 delete 删除数据 1 给指定字段添加数据 insert into 表
  • SlideLive:基于Elasticsearch Suggester实现搜索框提示功能

    简介 SlideLive网站使用Elasticsearch作为文档的搜索引擎 我们需要在搜索下拉框实现如下三种功能 自动补全 Auto Completion 纠错 热词推荐 ElasticSearch 为我们提供了Suggester功能 可
  • Hive整理

    文章目录 1 Hive 概述 2 1 Hive 优缺点 2 2 Hive 基础架构 2 HQL 转化为 MR 过程 3 Hive和RDBMS有什么异同 4 Hive 元数据保存方式 5 内部表 和 外部表 6 Hive 如何进行权限控制 7
  • 三年内人人有FIL,FIL 世界零撸板块引发全球流量狂潮!

    FIL 世界零撸板块自5月27日推出以来 就获得了全球Filecoin社区的热烈追捧 在短短一周内就吸引了全球20万粉丝的加盟 引发了全球价值流量狂潮 FIL世界是一个基于Filecoin整个产业链的综合性服务平台 致力于为IPFS行业生态
  • 【Vue实用功能】Vue实现文档在线预览功能,在线预览PDF、Word、Excel、ppt等office文件

    文章目录 TOC 文章目录 方法一 Luckysheet 预览 方法二 Office Web 查看器 微软的开发接口 方法三 XDOC文档预览云服务 预览pdf word xls ppt 方法一 Luckysheet 预览 Luckyshe
  • 服务器系统2022安装wsl2,微软win10子系统wsl2安装教程(附三个实例应用场景)

    wsl2与今年6月份微软buld的大会上发布消息 7月15日左右开始正式加入windows inside版本 熟悉wls win10子系统 一代的都知道 这东西把linux系统的操作直接带入到win10系统 随便启动cmd或powershe
  • 算法设计与分析-分治实验-第二题

    题目 循环赛日程表的设计 设计一个满足以下要求的比赛日程表 n 2k 1 每个选手必须与其他n 1个选手各赛一次 2 每个选手一天只能赛一次 3 循环赛一共进行n 1天 要求 输入选手的数量 需要有效性检查 满足n 2k条件 以矩阵形式输出
  • 【PCIe】Linux下PCIe驱动开发与学习

    目录 1 PCIe概述 2 pcie总线的拓扑结构 3 PCIe配置空间 3 1 PCI标准配置空间头 0 64 bytes 3 2 PCI capbility结构 64
  • 成功是一种境界

    第1节 完成三十岁前的积累 准备做一个成功的男人 1 Chapter Six 完成三十岁前的积累 准备做一个成功的男人 二十几岁是褪尽青涩 走向成熟的男人 二十几岁是很有紧迫感的年龄 如果男人到了三十还一事无成 人们就不再像对二十几岁时那样
  • 2.5 Java方法调用——类名调用方法、对象调用方法

    文章目录 方法 1 什么是方法 2 方法如何定义 方法怎么使用 通过类名调用方法 static 修饰方法 类名调用 通过对象调用方法 不加static修饰 new一个对象 对象调用 方法 1 什么是方法 类似于C语言中的函数 解决某一个问题
  • static_cast与dynamic_cast转换

    一 C语言中存在着两种类型转换 隐式转换和显式转换 隐式转换 不同数据类型之间赋值和运算 函数调用传递参数 编译器完成 char ch int i ch 显示转换 在类型前增加 Type 变量 对变量进行的转换 用户显式增加 char pc
  • 无法将值vmware-tray.exe写入注册表

    VMWare更新时候遇到问题 出现 无法将值vmware tray exe写入注册表 提醒 百度后发现各个帖子采用禁用账户的方法 完美的解决方案是 直接关掉所有杀毒软件
  • Java文件读写IO/NIO及性能比较总结

    干Java这么久 一直在做WEB相关的项目 一些基础类差不多都已经忘记 经常想得捡起 但总是因为一些原因 不能如愿 其实不是没有时间 只是有些时候疲于总结 今得空 下定决心将丢掉的都给捡起来 文件读写是一个在项目中经常遇到的工作 有些时候是
  • org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document fro

    org springframework beans factory BeanDefinitionStoreException IOException parsing XML document from class path resource
  • matlab人工神经网络如何使用,MATLAB的人工神经网络应用

    一 人工神经网络简介 人工神经网络 Artifical NeuralNetwork ANN 是目前国际上迅速发展的前沿交叉学科 张立明 1993 它是模仿生物神经系统的信息处理方式 组织结构和系统功能的简化系统 人工神经网络以其自身的自组织