% Matlab实现简单BP神经网络
% http://blog.csdn.net/zjccoder/article/details/40713147
for i=: %样本个数
xx(i)=*pi*(i-)/;
d(i)=0.5*(+cos(xx(i)));
end
n=length(xx);%样本个数
p=; %隐层个数
w=rand(p,);
wk=rand(,p+);
max_epoch=;%最大训练次数
error_goal=0.002;%均方误差
q=0.09;%学习速率
a(p+)=-; %training
%此训练网络采取1--1的形式,即一个输入,6个隐层,1个输出
for epoch=:max_epoch
e=;
for i=:n %样本个数
x=[xx(i);-]; %按照行来连接,初始的输出都是-,向着d(i)=0.5*(+cos(xx(i))) 进行拟合
neto=;
for j=:p
neti(j)=w(j,)*x()+w(j,)*x(); %w(j,)输入层权值
a(j)=/(+exp(-neti(j)));
%隐层的激活函数采取s函数,f(x)=/(+exp(-x))
neto=neto+wk(j)*a(j); % 输出层wk(j)权值
end
neto=neto+wk(p+)*(-); %加上偏置
y(i)=neto; %输出层的激活函数采取线性函数,f(x)=x
de=(/)*(d(i)-y(i))*(d(i)-y(i));
e=de+e;
%反向传播倒数第二层到输出层权值调整的量因为是线性激活函数,不需要求导
%参考http://www.cnblogs.com/daniel-D/archive/2013/06/03/3116278.html
%LMS算法
dwk=q*(d(i)-y(i))*a;
for k=:p
%(d(i)-y(i))*wk(k) 输出层的残差权值分配
%a(k)*(-a(k)为激活函数输出的倒数,
%f(x) = /(+exp(-x)) f'(x) = f(x)(1-f(x)) = a(1-a)
%x是当前层的输出,由于是第一层,输出和输入是相同的
%参考blog.csdn.net/langb2014/article/details/
dw(k,:)=q*(d(i)-y(i))*wk(k)*a(k)*(-a(k))*x;
end
wk=wk+dwk; %从隐层到输出层权值的更新
w=w+dw; %从输入层到隐层的权值的更新
end
error(epoch)=e;
m(epoch)=epoch;
if(e<error_goal)
break;
elseif(epoch==max_epoch)
disp('在目前的迭代次数内不能逼近所给函数,请加大迭代次数')
end
end
%simulation
for i=:n %样本个数
x=[xx(i);-];
neto=;
for j=:p
neti(j)=w(j,)*x()+w(j,)*x();
a(j)=/(+exp(-neti(j)));
neto=neto+wk(j)*a(j);
end
neto=neto+wk(p+)*(-);
y(i)=neto; %线性函数
end %plot
figure()
plot(m,error)
xlabel('迭代次数')
ylabel('均方误差')
title('BP算法的学习曲线')
figure()
plot(xx,d)
hold on
plot(xx,y,'r')
legend('蓝线是目标曲线','红线是逼近曲线')

Matlab 实现神经网络实例的更多相关文章

  1. Matlab与神经网络入门

    第一节.神经网络基本原理  1. 人工神经元( Artificial Neuron )模型  人工神经元是神经网络的基本元素,其原理可以用下图表示: 图1. 人工神经元模型 图中x1~xn是从其他神经 ...

  2. C#中调用Matlab人工神经网络算法实现手写数字识别

    手写数字识别实现 设计技术参数:通过由数字构成的图像,自动实现几个不同数字的识别,设计识别方法,有较高的识别率 关键字:二值化  投影  矩阵  目标定位  Matlab 手写数字图像识别简介: 手写 ...

  3. paper 75:使用MATLAB的神经网络工具箱创建神经网络

    % 生成训练样本集 clear all; clc; P=[110 0.807 240 0.2 15 1 18 2 1.5; 110 2.865 240 0.1 15 2 12 1 2; 110 2.5 ...

  4. DeepLearning.ai学习笔记(四)卷积神经网络 -- week2深度卷积神经网络 实例探究

    一.为什么要进行实例探究? 通过他人的实例可以更好的理解如何构建卷积神经网络,本周课程主要会介绍如下网络 LeNet-5 AlexNet VGG ResNet (有152层) Inception 二. ...

  5. B站上的一个MATLAB与神经网络的视频,捡漏

    ▶ av15514817.这里集中了一些从视频中学到的散点. ▶ 语句 "edit + 函数名" 可以打开部分内置函数的源代码.非公开的源代码这会打开一个全是注释的文档. ▶ 函数 ...

  6. [matlab]bp神经网络工具箱学习笔记

    基本就三个函数: newff():创建一个bp神经网络 train():训练函数 sim():仿真函数 同时具有可视化界面,但目前不知道可视化界面如何进行仿真,且设置不太全 工具箱:Neural ne ...

  7. C++卷积神经网络实例:tiny_cnn代码具体解释(8)——partial_connected_layer层结构类分析(上)

    在之前的博文中我们已经将顶层的网络结构都介绍完毕,包括卷积层.下採样层.全连接层,在这篇博文中主要有两个任务.一是总体贯通一下卷积神经网络在对图像进行卷积处理的整个流程,二是继续我们的类分析.这次须要 ...

  8. [matlab工具箱] 神经网络Neural Net

    //目的是学习在BP神经网络的基础上添加遗传算法,蚁群算法等优化算法来优化网络,这是后话. 先简单了解了MATLAB中的神经网络工具箱,工具箱功能还是非常强大的,已经可以拟合出非常多的曲线来分析了. ...

  9. MATLAB的神经网络工具箱介绍

    一.使用matlab2010b以后的版本会有完整的神经网络工具箱,使用nnstart可以调出toolbox,然后选择需要的功能,导入数据,选择训练参数和每层神经元个数,最后训练会输出网络与结果. 二. ...

随机推荐

  1. iOS 去掉tabaar上面的 一条线

    iOS 去掉tabaar上面的 一条线 利用一个 1像素高的图片 [[UITabBar appearance] setShadowImage:[UIImage imageNamed:@"tr ...

  2. 用mapreduce来操作hbase的优化

    (1)scan.setCacheBlocks(false); 初始化map任务    TableMapReduceUtil.initTableMapperJob 本次mr任务scan的所有数据不放在缓 ...

  3. 算法笔记_023:拓扑排序(Java)

    目录 1 问题描述 2 解决方案 2.1 基于减治法实现 2.2 基于深度优先查找实现 1 问题描述 给定一个有向图,求取此图的拓扑排序序列. 那么,何为拓扑排序? 定义:将有向图中的顶点以线性方式进 ...

  4. ant design pro (十二)advanced UI 测试

    一.概述 原文地址:https://pro.ant.design/docs/ui-test-cn UI 测试是项目研发流程中的重要一环,有效的测试用例可以梳理业务需求,保证研发的质量和进度,让工程师可 ...

  5. 大话设计模式C++实现-第1章-简单工厂模式

    一.UML图 二.包括的角色 简单工厂模式包括三个角色: (1)工厂类Factory:工厂类是用来制造产品的. 因此,在Factory中有一个用于制造产品的Create函数或者Generate函数之类 ...

  6. eclipse maven Cannot change version of project facet Dynamic web module to 3.0

      eclipse maven Cannot change version of project facet Dynamic web module to 3.0 (eclipse 修改maven项目的 ...

  7. OFBiz:组件装入位置

    默认的,OFBiz会在framework.applications.specialpurpose.hot-deploy这几个目录寻找组件,在themes目录中寻找主题.OFBiz是通过framewor ...

  8. EF--Code First配置问题

    用EntityFramework Reverse POCO Generator工具生成的连接:<add name="Base_dbContext" connectionStr ...

  9. ICSharpCode.SharpZipLib工具压缩与解压缩zip文件

    using System; using System.Collections.Generic; using System.IO; using System.Text; using ICSharpCod ...

  10. CentOS Linux防火墙配置及关闭

    CentOS 配置防火墙操作实例(启.停.开.闭端口): 注:防火墙的基本操作命令: 查询防火墙状态: [root@localhost ~]# service   iptables status< ...