| |
|
开发:
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神经网络预测结果会存在较大误差。? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/26 19:45:51- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |