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之BP神经网络学习------- Day 3 -> 正文阅读

[人工智能]Matlab之BP神经网络学习------- Day 3

BP神经网络的非线性系统建模

????????当我们在工程应用中遇到一些复杂的非线性系统,因为这些系统状态方程复杂,难以用数学方程表达,因此我们可以用BP神经网络来表达这些非线性系统。此方法是将未知系统看成一个黑箱,首先用系统输入输出数据训练BP神经网络,使网络可以表达该未知函数,然后用训练好的BP神经网络预测系统输出。

拟合的非线形函数为

????????????????????????????????????????????????y=X1^2+X2^2

该线性函数图形为

模型建立

????????BP神经网络构建根据拟合非线性函数特征确定BP神经网络结构,该非线性函数有两个输入参数,一个输出参数,因此结构为2-5-1。

? ? ? ? BP神经网络训练用非线性函数输入输出数据训练神经网络,从非线性函数数据中随机得到N组数据,其中绝大多数作为训练数据,其余作为测试数据。用于测试神经网络综合性能。

? ? ? ? 神经网络通过训练好的网络预测函数输出,并对预测结果进行分析。

?Matlab实现

? ? ? ? BP神经网络工具箱函数:

Matlab软件包含Matlab神经网络工具箱,它以人工神经网络理论为基础,用Matlab语言构造公式运算,矩阵操作,方程求解等大部分子程序用于神经网络设计与训练。用户只需根据需求调用相关子程序,即可以完成包括网络结构设计,权值初始化,网络训练及结果输出等工作。BP神经网络主要用到newff,sim,train3个神经网络函数。

newff:BP神经网络参数设置函数

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

函数形式:net =newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)

P:输入数据矩阵

T:输出数据矩阵

S:隐含层节点数

TF:节点传递函数,包括硬限幅传递函数hardlim,对称硬限幅传递函数hardlims,线性传递函数purelin,正切S型传递函数tansig,对数S型传递函数logsig。

BTF:训练函数,包括梯度下降BP算法训练函数traingd,动量反传的梯度下降BP算法训练函数traingdm,动态自适应学习率的梯度下降BP算法训练函数traingda,动量反转与动态自适应学习率的梯度下降BP算法训练函数traingdx,Levenberg,Marquardt的BP算法训练函数trainlm。

BLF:网络学习函数,包括BP学习规则learngd,带动量项的BP学习规则learngdm。

PF:性能分析函数,包括均值绝对误差性能分析函数mae,均方差性能分析函数mse。

IPF:输入处理函数。

OPF:输出处理函数。

DDF:验证数据划分函数。

一般在使用过程中设置前面6个参数,后面4个参数采用系统默认参数。

train:BP神经网络训练函数

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

函数形式:[net,tr]=train(NET,X,T,Pi,Ai)

NET:待训练网络。

X:输入数据矩阵。

T:输出数据矩阵。

Pi:初始化输入层条件。

Ai:初始化输出层条件。

net:训练好的网络。

tr:训练过程记录。

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

sim:BP神经网络预测函数

函数功能:用训练好的BP神经网络预测函数输出

函数形式:y=sim(net,x)

net:训练好的网络。

x:输入数据。

y:网络预测数据。

数据选择与归一化

根据非线性函数方程得到该函数的输入输出数据,选取一定的输入输出数据,大部分的数据作为网络训练数据,小部分作为网络测试数据,并对训练数据进行归一化处理。

BP神经网络进行预测与训练步骤,后对结果进行分析。

多隐含层BP神经网络

隐含层根据层数可以分为单隐含层与多隐含层。多隐含层由多个单隐含层组成,同单隐含层相比,多隐含层具有泛化能力强,预测精度高的特点,但训练时间较长。因此隐含层层数要多方考虑。

隐含层节点数

如果隐含层节点数较少,则BP神经网络不能建立复杂的映射关系,也就不能准确预测结果。如果隐含层节点数较多,则BP神经网络学习时间过长,并可能出现“过拟合”现象,即训练样本预测准确,但其他样本误差较大。

训练数据对预测精度的影响

如果缺乏足够多的网络训练数据,网络预测值可能出现较大误差。

节点转移函数

Matlab神经网络工具箱中newff函数提供了几种节点转移函数,主要包括:

logsig函数:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? y=1/[1+exp(-x)]

tansig函数:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? y=2/[1+exp(-2x)]-1

purelin函数:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? y=x

在网络结构,权值,阀值相同的情况下,神经网络预测误差和均方误差,输出层节点转移函数的关系如下:

隐含层与输出层函数的选择对BP神经网络预测精度有较大影响。一般隐含层节点转移函数选用logsig函数或tansig函数,输出层节点转移函数采用tansig函数或purelin函数。

注:网络拟合也具有一定的局限性,对于一些复杂系统,BP神经网络预测结果会存在较大误差。?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-02-06 13:50:16  更:2022-02-06 13:50:49 
 
开发: 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年5日历 -2024/5/19 3:16:47-

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