1、BP神经网络是一种前馈型网络(各神经元接受前一层的输入,并输出给下一层,没有反馈),分为input层,hide层,output层

2、BP神经网络的步骤:

1)创建一个神经网络:newff

a.训练样本:归一化(premnmx ,postmnmx ,tramnmx)

b.确定节点数:输出层的节点数可直接获得

c.确定各层神经元的激活函数

常见的激活函数:purelin:线性/logsig:对数S型/tansig:正切S型

d.确定训练函数

traingd :梯度下降BP训练函数/traingdx :梯度下降自适应学习率训练函数

%Format:net = newff ( A, B, {C} ,‘trainFun’)

A:n×2的矩阵,第i行元素为输入信号xi的最小值和最大值

B:k维行向量,其元素为网络中各层节点数

C:k维字符串行向量,每一分量为对应层神经元的激活函数

trainFun :为学习规则采用的训练算法

2)学习:train

学习是一个调整权重的过程,使得通过神经网络的输出不断逼近应有的输出

网络配置参数

net.trainparam.goal:神经网络训练的目标误差

net.trainparam.show:显示中间结果的周期

net.trainparam.epochs:最大迭代次数

net.trainParam.lr:学习率

%Farmat:net=train( net, X, Y )

X:网络实际输入

Y:网络应有输出

3)仿真模拟

选择测试集X进行模拟

%Farmat:Y=sim(net,X)

3、举例

下面将举大量的例子来说明BP神经网络的应用。

1)对函数f(x)=sinx(0=<x<=pi/2)进行逼近

 %%%使用BP神经网络逼近函数cos(x)%%%
clc;clear;
x=:0.1:1.5;%训练样本
y=sin(x);%真实的输出值
net=newff(minmax(x),[,],{'logsig','logsig'});%建立bp神经网络
net.trainParam.show = ;
net.trainParam.lr = 0.01;
net.trainParam.goal = 0.0001;
net.trainParam.epochs = ;
net=train(net,x,y);%训练样本
testx=0.01:0.1:1.51;
testy=sim(net,testx);%测试
plot(x,y,testx,testy,'r');

2)对两种蠓虫(Af 与Apf)进行鉴别:

依据的资料是触角和翅膀的长度,已经测得了9 支Af 和6 支Apf 的数据如下:
Af: (1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),
(1.48,1.82),(1.54,1.82),(1.56,2.08).
Apf: (1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96).

Q:对触角和翼长分别为(1.24,1.80),(1.28,1.84)与(1.40,2.04)的3 个标本加以识别。

 clear
p1=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;
1.40,1.70;1.48,1.82;1.54,1.82;1.56,2.08];
p2=[1.14,1.82;1.18,1.96;1.20,1.86;1.26,2.00
1.28,2.00;1.30,1.96];
p=[p1;p2]';
pr=minmax(p);
net=newff(pr,[,],{'logsig','logsig'});
net.trainParam.show = ;
net.trainParam.lr = 0.05;
net.trainParam.goal = 1e-;
net.trainParam.epochs = ;
net = train(net,p,goal);
x=[1.24 1.80;1.28 1.84;1.40 2.04]';
y0=sim(net,p)
y=sim(net,x)

数模学习笔记(五)——BP神经网络的更多相关文章

  1. 【学习笔记】BP神经网络

    转自 huaweizte123的CSDN博客  链接 https://blog.csdn.net/huaweizte123/article/details/78803045 第一步.向前传播得到预测数 ...

  2. 数模学习笔记(四)——AHP

    1.层次分析法是对复杂.较为模糊的问题作出决策的简易方法. 2.步骤: (i)建立递阶层次结构模型:最高层(目标层),中间层(准则层),最底层(措施层) (ii)构造出各层次中的所有判断矩阵 各准则在 ...

  3. python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍

    python3.4学习笔记(五) IDLE显示行号问题,插件安装和其他开发工具介绍 IDLE默认不能显示行号,使用ALT+G 跳到对应行号,在右下角有显示光标所在行.列.pycharm免费社区版.Su ...

  4. Java IO学习笔记五:BIO到NIO

    作者:Grey 原文地址: Java IO学习笔记五:BIO到NIO 准备环境 准备一个CentOS7的Linux实例: 实例的IP: 192.168.205.138 我们这次实验的目的就是直观感受一 ...

  5. C#可扩展编程之MEF学习笔记(五):MEF高级进阶

    好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...

  6. (转)Qt Model/View 学习笔记 (五)——View 类

    Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...

  7. java之jvm学习笔记五(实践写自己的类装载器)

    java之jvm学习笔记五(实践写自己的类装载器) 课程源码:http://download.csdn.net/detail/yfqnihao/4866501 前面第三和第四节我们一直在强调一句话,类 ...

  8. Learning ROS for Robotics Programming Second Edition学习笔记(五) indigo computer vision

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  9. Typescript 学习笔记五:类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

随机推荐

  1. 【转】Oracle修改表空间为自动扩展

    1.数据文件自动扩展的好处1)不会出现因为没有剩余空间可以利用到数据无法写入2)尽量减少人为的维护3)可以用于重要级别不是很大的数据库中,如测试数据库等 2.数据文件自动扩展的弊端1)如果任其扩大,在 ...

  2. C语言库函数大全及应用实例三

    原文:C语言库函数大全及应用实例三 [编程资料]C语言库函数大全及应用实例三 函数名: ecvt 功 能: 把一个浮点数转换为字符串 用 法: char ecvt(double value, int ...

  3. 阐述linux IPC(五岁以下儿童):system V共享内存

    [版权声明:尊重原创.转载请保留源:blog.csdn.net/shallnet 要么 .../gentleliu,文章学习交流,不用于商业用途]         system V共享内存和posix ...

  4. Zend Server的WebAPI焦点:异步操作

    Zend Server作为Web应用服务器,在使用时,涉及连接的基本步骤,其中包括许多可用的WebAPI行为. WebAPI提供一些需要时间才能完成的操作,包括很复杂的或依靠外部实体(如远程服务器)才 ...

  5. 开发者需要了解的WebKit

    2013-3-22 22:37| 发布者: sxwgf| 查看: 575| 评论: 0|来自: infoq 摘要: Paul Irish是著名的前端开发工程师,同时他也是Chrome开发者关系团队成员 ...

  6. UVA Graph Coloring

    主题如以下: Graph Coloring  You are to write a program that tries to find an optimal coloring for agiven ...

  7. 探秘IntelliJ IDEA 13测试版新功能——调试器显示本地变量

    IntelliJ IDEA在业界被公认为最好的Java开发平台之一,JetBrains公司将在12月正式发布IntelliJ IDEA 13版本. 现在,小编将和大家一起探秘密IntelliJ IDE ...

  8. Cocos2d-x 3.1.1开发环境

    Windows7上搭建Cocos2d-x 3.1.1开发环境   前言 现在,越来越多的公司采用Cocos2d-x 3.0来开发游戏了,但是现在这样的文章并不多,所以打算写一系列来帮助初学者快速掌握C ...

  9. linux之stat函数解析

    [lingyun@localhost stat_1]$ vim stat.c  + stat.c                                                     ...

  10. 最短路径 dijkstra

    最短路径 dijkstra #include <stdio.h> #include <string.h> #include <limits.h> #define M ...