IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 神经网络数学模型快速入门-数学建模之matlab实现 -> 正文阅读

[人工智能]神经网络数学模型快速入门-数学建模之matlab实现

多层前向神经网络原理介绍

多层前向神经网络原理介绍
多层前向神经网络(MLP)是神经网络中的一种, 它由一些最基本的神经元即节点组成, 如图1。除输入层外, 每一节点的输入为前一层所有节点输出值的和。 每一节点的激励输出值由节点输入、 激励函数及偏置量决定。

第i层为各节点的输入, 通常需要归一化到-1和1之间

在第 j j j层,节点的输入值为:

? n e t j = ∑ w j i o i + θ j n e t_{j}=\sum w_{j i} o_{i}+\theta_{j} netj?=wji?oi?+θj??

其中 θ j \theta_{j} θj??为阈值,正阈值的作用将激励函数沿 x x x??轴向左平移
节点的输出值为:

? o j = f ( n e t j ) o_{j}=f\left(n e t_{j}\right) oj?=f(netj?)??
式中 f f f?为节点的激励函数,通常选择如下 S i g m o i d Sigmoid Sigmoid??函数:

? f ( x ) = 1 1 + exp ? ( ? x ) f(x)=\frac{1}{1+\exp (-x)} f(x)=1+exp(?x)1??

在第k层的网络节点输入为: n e t k = ∑ w k j o j + θ k n e t_{k}=\sum w_{k j} o_{j}+\theta_{k} netk?=wkj?oj?+θk??

而输出为: o k = f ( n e t k ) o_{k}=f\left(n e t_{k}\right) ok?=f(netk?)?

对每一个输入的模式样本 p p p?,平方误差 E p E_{p} Ep????,为:

E p = 1 2 ∑ k ( t p k ? o p k ) 2 E_{p}=\frac{1}{2} \sum_{k}\left(t_{p k}-o_{p k}\right)^{2} Ep?=21?k?(tpk??opk?)2?

全部学习样本总误差为:

E = 1 2 p ∑ p ∑ k ( t p k ? o p k ) 2 E=\frac{1}{2 p} \sum_{p} \sum_{k}\left(t_{p k}-o_{p k}\right)^{2} E=2p1?p?k?(tpk??opk?)2?

在学习过程中,系统将调整连接权和阀值,使 E p E_{p} Ep?尽可能快地下降。

Matlab相关函数介绍

网络初始化函数

net= newff([ x m x_{m} xm?, x M x_{M} xM?],[ h 1 h 2 , … , h k h_{1}h_{2},…,h_{k} h1?h2?,,hk?],{ f 1 , f 2 , … , f k f_{1},f_{2},…,f_{k} f1?,f2?,,fk?})

x m x_{m} xm??和 x M x_{M} xM????分别为列向量,存储各样本数据的最小值和最大值;

第2个输入变量是一个行向量,输入各层节点数;

第3个输入变量是字符串,代表该层的传输函数.

常用 tan ? sig ? ( x ) = 1 ? e ? 2 x 1 + e ? 2 x , log ? sig ? ( x ) = 1 1 + e ? x \tan \operatorname{sig}(\mathrm{x})=\frac{1-e^{-2 x}}{1+e^{-2 x}}, \log \operatorname{sig}(\mathrm{x})=\frac{1}{1+e^{-x}} tansig(x)=1+e?2x1?e?2x?,logsig(x)=1+e?x1??

还可以用设定参数

设定迭代次数

Net.train.Param.epochs=1000

设定带动量的梯度下降算法(让学习的速度更快)

Net.train.Fcn=‘traingm’

网络训练函数

[net,tr,Y1,E1]=train(net,X,Y)

其中X为n×M矩阵,n为输入变量的个数,M为样本数
Y为m×M矩阵,m为输出变量的个数。
net为返回后的神经网络对象,tr为训练跟踪数据,tr.perf为各步目标函数值。
Y1为网络的最后输出,E1为训练误差向量

网络泛化函数

Y2=sim(net,X1)
其中X1为输入数据矩阵, 各列为样本数据。
Y2为对应输出值

神经网络实验

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EI3tiug8-1629300413263)(image-20210818175035765.png)]

Matlab程序:

x=0:0.5:10;
y=0.2*exp(-0.2*x)+0.5*exp(-0.15*x).*sin(1.25*x);
plot(x,y) %画原始数据图
net=newff([0,10],[6,1],{'tansig','tansig'});%隐层节点选6个,y是一维为1,输入输出函数都是tansig
net=train(net,x,y); %进行网络训练
x1=0:0.1:10;
y1=sim(net,x1); %数据泛化
plot(x,y,'*',x1,y1,'r'); %作对比图

在这里插入图片描述
二图合一
在这里插入图片描述
由图像可知神经网络的函数拟合能力非常强

例2 蠓的分类(MCM89A)

在这里插入图片描述
这里我们可用三层神经网络进行判别。输入为15个二维向量, 输出也为15个二维向量。
其中Af对应的目标向量为(1,0), Apf对应的目标向量为(0,1)。

Matlab程序:

隐藏节点为5个,也可以尝试选择4,6个。网络越复杂可以选择更多,用tansig试试也可以

x=[1.24,1.36,1.38,1.38,1.38,1.40,1.48,1.54,1.56,1.14,1.18,1.20,1.26,1.28,1.30;
1.72,1.74,1.64,1.82,1.90,1.70,1.82,1.82,2.08,1.78,1.96,1.86,2.0, 2.0,1.96];
y=[1,1,1,1,1,1,1,1,1,0,0,0,0,0,0;
0,0,0,0,0,0,0,0,0,1,1,1,1,1,1];
xmin=min(x'); %求各指标最小值 %先转置,因为matlab只能对列求最大,最小,和平均值
xmax=max(x'); %求各指标最大值
net.trainParam.epochs=2500; %设定迭代步数
net=newff([xmin',xmax'],[5,2],{'logsig','logsig'}); %初始化网络 
net=train(net,x,y); %进行网络训练
x1=[1.24,1.28,1.40;
1.80,1.84,2.04];%待分样本
y1=sim(net,x1); %数据泛化
plot(x(1,1:9),x(2,1:9),'*',x(1,10:15),x(2,10:15),'o',x1(1,:),x1(2,:),'p') %画数据图
grid on

三个样本输出值:
y1=0.1235 0.8995 0.0037
0.8785 0.0951 0.9986

![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UuuPAU37-1629300413269)(image-20210818181306964.png)]](https://img-blog.csdnimg.cn/d426c09a58424061a140b48766274ab5.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81NTMyMzgzMQ==,size_16,color_FFFFFF,t_70

? 图3 Af, Apf及待分样本数据图

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:04:06  更:2021-08-19 12:04:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/1 13:32:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码