原创文章,转载请说明来自《老饼讲解神经网络》:bp.bbbdata.com

关于《老饼讲解神经网络》:

本网结构化讲解神经网络的知识,原理和代码。

重现matlab神经网络工具箱的算法,是学习神经网络的好助手。


目录

一.数据

二.确定模型结构与训练算法

三.代码实现

四. 网络预测

五. 获取最终的数学表达式


在本文,展示一个matlab2014实现神经网络的例子。

一.数据

数据如下,x1,x2为输入,y为对应的输出,现需要训练一个网络,用x1,x2预测y.


二.确定模型结构与训练算法

我们这里采用的网络结构如下:

1:节点个数设置: 输入层、隐层、输出层的节点个数分别为[2 ,3,1]。
2:传递函数设置:隐层( tansig函数)。输出层(purelin函数)。
3:训练方式:trainlm。

则模型结构拓扑图如下:

模型的数学表达式如下:

三.代码实现

在matlab2014b里写代码:

x1 = [-3,-2.7,-2.4,-2.1,-1.8,-1.5,-1.2,-0.9,-0.6,-0.3,0,0.3,0.6,0.9,1.2,1.5,1.8];% x1:x1 = -3:0.3:2;
x2 = [-2,-1.8,-1.6,-1.4,-1.2,-1,-0.8,-0.6,-0.4,-0.2,-2.2204,0.2,0.4,0.6,0.8,1,1.2]; % x2:x2 = -2:0.2:1.2;
y  = [0.6589,0.2206,-0.1635,-0.4712,-0.6858,-0.7975,-0.8040,...-0.7113,-0.5326,-0.2875 ,0,0.3035,0.5966,0.8553,1.0600,1.1975,1.2618];    % y: y = sin(x1)+0.2*x2.*x2;inputData  = [x1;x2];      % 将x1,x2作为输入数据
outputData = y;            % 将y作为输出数据
setdemorandstream(88888);%指定随机种子,这样每次训练出来的网络都一样。%使用用输入输出数据(inputData、outputData)建立网络,
%隐节点个数设为3.其中隐层、输出层的传递函数分别为tansig和purelin,使用trainlm方法训练。net = newff(inputData,outputData,3,{'tansig','purelin'},'trainlm');%设置一些常用参数
net.trainparam.goal = 0.0001;               % 训练目标:均方误差低于0.0001
net.trainparam.show = 400;                  % 每训练400次展示一次结果
net.trainparam.epochs = 15000;              % 最大训练次数:15000.
[net,tr] = train(net,inputData,outputData); % 调用matlab神经网络工具箱自带的train函数训练网络simout = sim(net,inputData);                % 调用matlab神经网络工具箱自带的sim函数得到网络的预测值
figure;                                     % 新建画图窗口窗口
t=1:length(simout);
plot(t,y,t,simout,'r')                      % 画图,对比原来的y和网络预测的y

运行后得到训练的图:


四. 网络预测

若果想知道x1=0.5,x2=0.5时的值,可输入

x    =[0.5;0.5];
simy = sim(net,x)

命令窗口输出:

这样,就得到了输入为 [0.5,0.5] 时,y的预测值。


五. 获取最终的数学表达式

实际上训练好的网络net,  就是上面的(1)式的数学函数,
预测的时候可以直接使用神经网络工具箱的 sim(net,x) 函数进行预测,

但如果一定要把这个数学表达式提取出来呢?

以下两张文章都有所介绍:


(1)《 提取神经网络数学表达式 》

(2)《一个BP的完整代码实现》


相关文章

​《BP神经网络梯度推导》

​​​​​​《BP神经网络提取的数学表达式》

《一个BP的完整建模流程》

一个简单的BP神经网络例子相关推荐

  1. MATLAB从入门到精通:搭建一个 简单的Bp神经网络(附代码)

    01 | 构建数据集 构造一个1行1000列的一维矩阵,这1000个数全部都在(0,1)这个区间内.规定当某一列的数字大于等于0.5时,输出为1,否则输出-1.构造数据集的代码如下. %% 构造数据集 ...

  2. 使用python自己搭建一个简单的BP神经网络

    from numpy import exp,array,random,dot #import randomclass NeuralNetwork(object):def __init__(self): ...

  3. 一个简单的BP神经网络matlab程序(附函数详解)

    说明:20180604更新 1.此文的程序来自博客:http://www.cnblogs.com/heaad/archive/2011/03/07/1976443.html 2.本人对其中涉及到的函数 ...

  4. 一个简单的epoll测试例子

    一个简单的epoll测试例子 一段简单的epoll测试例子,编译运行后可以直接用浏览器访问localhost来测试. 1 #include <unistd.h> 2 #include &l ...

  5. 一个简单的三层架构例子(.NET入门)

    最近开始学习.NET 用的是c# 目前要用三层架构的模式开发一个简单的图书管理系统,不过以为刚接触这门技术.做起来分外吃力,甚至连究竟要写些什么都不清楚. 于是乎上网到处找寻三层架构的基础入门知识,终 ...

  6. 一个简单的iBatis入门例子

    一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. ibatis-2.3.4.726.jar ojdbc14.jar 2.创建类com/ ...

  7. 构建一个简单的卷积神经网络,使用DRL框架tianshou匹配DQN算法

    在之前的文章中,我们做了如下工作: 如何设计一个类flappy-bird小游戏:[python实战]使用pygame写一个flappy-bird类小游戏 | 设计思路+项目结构+代码详解|新手向 DF ...

  8. 练习推导一个最简单的BP神经网络训练过程【个人作业/数学推导】

    写在前面: 各式资料中关于BP神经网络的讲解已经足够全面详尽,故不在此过多赘述.本文重点在于由一个"最简单"的神经网络练习推导其训练过程,和大家一起在练习中一起更好理解神经网络训练 ...

  9. linux下glew例子,一个简单的GLSL Shader例子

    本例子选自OpenGL Shading Language中的第一个Shader例子,使用颜色平滑地表示一个表面的温度.温度及其颜色的范围在应用程序中进行设置. //先看顶点着色器temp.vert: ...

最新文章

  1. oracle表空间更改用户,ORACLE创建表空间、创建用户、更改用户默认表空间以及授权、查看权限...
  2. 2017年7个主要的金融行业数据趋势
  3. 关于未来50年的工作与生活,三星联合未来学家们做出了这些预测
  4. jtabel 遍历_单击按钮更新JTable
  5. 重构增长:如何从价值创造出发,打造企业的成长思维
  6. 作为开发人员,你都听产品经理的,做的累不累?
  7. JAVA基础之自定义容器实现
  8. webbrowser加载地图网页出现脚本错误解决
  9. 四则运算03(附第四周进度条)
  10. OpenCV-数组加权和cv::addWeighted
  11. ospf避免环路_13、OSPF的选路规则及路由控制
  12. 幻想影院添加html渲染,幻想影院无毒版-幻想影院清爽版预约 _5577安卓网
  13. Java后端开发实习面试
  14. MAX30102 血氧调试笔记
  15. spring事务管理tx:Advice详解
  16. 对于图片倾斜做矫正处理
  17. adminLTE框架chart图表的使用
  18. 加速度运动/弹性运动/模拟重力场/拖拽运动
  19. 好用的ROS开发软件(持续更新~)
  20. 链接和二维码被微信拦截(被封锁、被屏蔽、被和谐)的最新解决方法——MaxJump

热门文章

  1. Github 上最大的开源算法库,还能学机器学习
  2. 微机----------------可编程并行接口8255A
  3. Java集合框架——一个编程小白的Java SE学习日志11【极客BOY-米奇】
  4. 【常见问题】云视通开放平台播放地址有效期
  5. 实践篇 | 构建下一代云上数据湖,助力车企数字化转型
  6. win10 WSL NAS搭建Time Machine服务器
  7. HTML5挂号,基于SSH的医院在线挂号
  8. web前端大作业`电影介绍网站设计——电影资讯博客(5页) HTML+CSS+JavaScript 学生DW网页设计作业成品 dreamweaver作业静态HTML网页设计模板
  9. 国家标准团体标准答疑
  10. python网络爬虫笔记05:request进阶