BPN(Back Propagation Net)

反向传播神经网络是对非线性可微分函数进行权值训练的多层网络,是前向神经网络的一种。

BP网络主要用于:

  • 1)函数逼近与预测分析:用输入矢量和相应的输出矢量训练一个网络,逼近一个函数或预测未知信息;
  • 2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来;
  • 3)分类:把输入矢量以所定义的合适方式进行分类;
  • 4)数据压缩:减少输出矢量维数以便于传输与存储。

比如,一个三层BPN结构如下:

  由输入层、隐含层和输出层三层组成。其中每一层的单元与之相邻层的所有单元连接,同一层的单元之间没有连接。当一对学习样本提供给网络后,神经元的激活值从输入层经各中间层向输出层传播,在输出层的各神经元获得网络的输入响应。接下来,按照减少目标输出与实际误差的方向,从输出层经过各中间层逐层修正各连接权值,最后回到输入层。

感知器(Perception)类型

  单个感知器能够完成线性可分数据的分类问题,是一种最简单的可以“学习”的机器。但他无法解决非线性问题。比如下图中的XOR问题:即(1,1)(-1,-1)属于同一类,而(1,-1)(-1,1)属于第二类的问题,不能由单个感知器正确分类。

反向传播学习的BP算法

  反向传播算法也称BP算法。由于这种算法在本质上是一种神经网络学习的数学模型,所以,有时也称为BP模型。

  BP算法是为了解决多层前向神经网络的权系数优化而提出来的;所以,BP算法也通常暗示着神经网络的拓扑结构是一种无反馈的多层前向网络。故而.有时也称无反馈多层前向网络为BP模型。

  在这里,并不要求过于严格去争论和区分算法和模型两者的有关异同。感知机学习算法是一种单层网络的学习算法。在多层网络中.它只能改变最后权系数。因此, 感知机学习算法不能用于多层神经网络的学习。1986年,Rumelhart提出了反向传播学习算法,即BP(backpropagation)算法。这 种算法可以对网络中各层的权系数进行修正,故适用于多层网络的学习。BP算法是目前最广泛用的神经网络学习算法之一,在自动控制中是最有用的学习算法。

MLP的缺陷

1.网络的隐含节点个数选取问题至今仍是一个 世界难题(Google, Elsevier, CNKI);

2.停止阈值、学习率、动量常数需要采用”trial-and-error”法,极其耗时(动手实验);

3.学习速度慢;

4.容易陷入局部极值,学习不够充分。

BP算法详细介绍:http://blog.csdn.net/hungryof/article/details/50436231

【MLP】多层感知机网络的更多相关文章

  1. DeepLearning tutorial(3)MLP多层感知机原理简介+代码详解

    本文介绍多层感知机算法,特别是详细解读其代码实现,基于python theano,代码来自:Multilayer Perceptron,如果你想详细了解多层感知机算法,可以参考:UFLDL教程,或者参 ...

  2. MLP多层感知机

    @author:wepon @blog:http://blog.csdn.net/u012162613/article/details/43221829 转载:http://blog.csdn.net ...

  3. 【TensorFlow入门完全指南】神经网络篇·MLP多层感知机

    前面的不做过多解释了. 这里定义了两个占位符,各位也知道,在训练时,feed_dict会填充它们. 定义相关网络. 这里是权值矩阵和偏差. 这里是实例化了网络,定义了优化器和损失,和上一篇一样. 最后 ...

  4. TensorFlow学习笔记7-深度前馈网络(多层感知机)

    深度前馈网络(前馈神经网络,多层感知机) 神经网络基本概念 前馈神经网络在模型输出和模型本身之间没有反馈连接;前馈神经网络包含反馈连接时,称为循环神经网络. 前馈神经网络用有向无环图表示. 设三个函数 ...

  5. Tensorflow 2.0 深度学习实战 —— 详细介绍损失函数、优化器、激活函数、多层感知机的实现原理

    前言 AI 人工智能包含了机器学习与深度学习,在前几篇文章曾经介绍过机器学习的基础知识,包括了监督学习和无监督学习,有兴趣的朋友可以阅读< Python 机器学习实战 >.而深度学习开始只 ...

  6. keras多层感知机MLP

    肯定有人要说什么多层感知机,不就是几个隐藏层连接在一起的吗.话是这么说,但是我觉得我们首先要自己承认自己高级,不然怎么去说服(hu nong)别人呢 from keras.models import ...

  7. 小白学习之pytorch框架(5)-多层感知机(MLP)-(tensor、variable、计算图、ReLU()、sigmoid()、tanh())

    先记录一下一开始学习torch时未曾记录(也未好好弄懂哈)导致又忘记了的tensor.variable.计算图 计算图 计算图直白的来说,就是数学公式(也叫模型)用图表示,这个图即计算图.借用 htt ...

  8. DeepLearning学习(1)--多层感知机

    想直接学习卷积神经网络,结果发现因为神经网络的基础较弱,学习起来比较困难,所以准备一步步学.并记录下来,其中会有很多摘抄. (一)什么是多层感知器和反向传播 1,单个神经元 神经网络的基本单元就是神经 ...

  9. Theano3.4-练习之多层感知机

    来自http://deeplearning.net/tutorial/mlp.html#mlp Multilayer Perceptron note:这部分假设读者已经通读之前的一个练习 Classi ...

随机推荐

  1. linux shell 脚本攻略学习16--wc命令详解,tree命令详解

    在文本处理的工作中,统计文件的行数,单词数和字符数非常有用.而对于开发人员本身来说,统计LOC(line of code ,代码行数)是一件重要的工作.linux中有什么命令可以帮助我们做统计呢?没错 ...

  2. 构建高性能数据库缓存之redis(二)

    一.概述 在构建高性能数据库缓存之redis(一)这篇文档中,阐述了Redis数据库(key/value)的特点.功能以及简单的配置过程,相信阅读过这篇文档的朋友,对Redis数据库会有一点的了解,此 ...

  3. windows 系统变量

    %ALLUSERSPROFILE% : 列出所有用户Profile文件位置.%APPDATA% : 列出应用程序数据的默认存放位置.%CD% : 列出当前目录.%CLIENTNAME% : 列出联接到 ...

  4. elasticsearch实现按天翻滚索引

    最近在做集中式日志,将应用的日志保存到Elasticsearch中,结合kibana实现集中化日志监控和报警.在设计ES存储的时候.考虑到日志的特殊性,打算采用Daily Indices方式.名称为: ...

  5. HANA初印象

    今天手懒,看了一些SAP HANA 的一些外文介绍,不翻译了,直接剽窃过来,供参考. 1. HANA 是什么东西? “HANA doesn't actually mean anything, but ...

  6. SLA等级那些9的实际意义

    1. 重要的系统起码要设计达到99.9%的可靠性吧. 俗称3个9,这是什么意思呢? (1-99.9%)*365*24=8.76小时,表示该软件系统在连续运行1年时间里最多可能的业务中断时间是8.76小 ...

  7. Java – Generate random integers in a rangejava获取某个范围内的一个随机数

    In this article, we will show you three ways to generate random integers in a range. java.util.Rando ...

  8. LICEcap 录制Gif动画

    使用 能录制Gif动画

  9. iphone5 jail break

    dfu恢复恢复备份越狱afc2add删除2个文件,如果只有1个也没问题/var/mobile/Library/Caches/com.apple.mobile.installation.plist/va ...

  10. JS charCodeAt在PHP中的等价物(完整的unicode和表情符号兼容性)

    我在JS中有一个简单的代码,如果涉及特殊字符,我无法在PHP中复制. 这是JS代码(请参阅JSFiddle输出): var str = "t