多层感知器(MLP

Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题。然而日常生活中大多数问题不是线性可分的,都是多维度且无法直接进行线性分类。为了增加神经网络对这一类问题的泛化能力,出现了多层感知器(多层神经网络)的概念。

多层感知器基本特征:

网络中每个神经元模型包含一个可微的非线性激活函数。

网络中包括一个或多个隐藏在输入和输出神经节点之间的层。

网络展示出高度的连接性,其强度是由网络的突触权值决定的。

训练多层感知器的一个流行方法是反向传播算法,训练分为如下两个阶段:

  1. 前向阶段,网络的突触权值是固定的,输入信号在网络中一层一层传播,直到到达输出端。因此,在这一阶段,输入信号的影响限制在网络中激活隐藏神经元和输出神经元上。
  2. 反向阶段,通过比较网络的输出和期望输出产生一个误差信号。得到的误差信号再次通过网络一层一层传播,但是这一次传播是在反方向上进行的。在第二阶段,对于网络的突触权值进行不断的修正。对于输出层权值的修正计算是直接的,但是对于隐藏层来说则更有挑战性。

具有两个隐藏层的多层感知器结构图

  1. 函数信号。函数信号是从网络输入端而来的一个输入信号(刺激),通过网络(一个神经元接一个神经元)向前传播,到达网络输出端即成为一个输出信号。
  2. 误差信号。一个误差信号产生于网络的一个输出神经元,并通过网络(一层接一层)反向传播。我们称之为“误差信号”是因为网络的每一个神经元对他的计算都以这种或那种形式涉及误差依赖函数。

输出神经元构成网络的输出层。余下的神经元构成网络的隐藏层。因此隐藏层单元并不是网络输出或输入的一部分-因此他们被称为“隐藏”的。第一隐藏层的信号是从由传感单元(源节点)构成的输入馈给的;而第一隐藏层的输出结果又应用于下一个隐藏层;网络的其余部分依此类推。

多层感知器每一个隐藏层或输出层神经元的作用是进行两种计算:

  1. 计算一个神经元的输出处出现的函数信号,它表现为关于输入信号以及与该神经元相关的突触权值的一个连续非线性函数。
  2. 计算梯度向量(即误差曲面对链接于一个神经元输入的权值的梯度)的一个估计,他需要反向通过网络。

隐藏神经元的功能

隐藏神经元扮演着特征检测算子(feature detector)的角色;他们在多层感知器的运转中起着决定性作用。随着学习过程通过多层感知器不断进行,隐藏神经元开始逐步“发现”刻画训练数据的突出特征。它们是通过将输入数据非线性变换到新的称为特征空间的空间而实现的。例如,在模式分类问题中,感兴趣的类在这个新的空间中可能比原始输入数据空间中更容易分隔开。甚至,正事通过监督学习形成的这一特种空间将多层感知器和Rosenblatt感知器区分开来。

多层感知器监督学习的两种不同方式 批量学习和在线学习

批量学习(离线学习)

在监督学习的批量方法中,多数感知器的突触权值的调整在训练样本集合的所有样例都出现后进行,这构成了训练的一个回合(epoch)。换句话说,批量学习的代价函数是由平均误差能量定义的。多层改制器的突触权值的调整是以回合-回合为基础的。批量学习的有点是 对梯度向量的精确估计;学习过程的并行性。然而从实际观点看,批量学习有着存储需求。从统计的角度看,批量学习可以看成是某种形式的统计推断。因此它很适合于解非线性回归问题。

在线学习

在监督学习的在线方法下,对于多层感知器突触权值的调整是以样例-样例为基础的。用来最小化的代价函数是全体瞬时误差能量。但是这样的过程也违反了在线学习的并行性。在线学习方法被称为随机方法。这一随机性具有所希望的学习过程不容易陷入局部极小值点的效果,这是在线学习好于批量学习的明确意义所在。在线学习的另一个有点在于它比批量学习需要的存储量要少得多。同时它能够追踪训练数据的小的改变,尤其是产生数据的环境是不稳定的情况下。目前在线学习依然是主流方法。

神经网络与机器学习 笔记—多层感知器(MLP)的更多相关文章

  1. 神经网络与机器学习 笔记—Rosenblatt感知器收敛算法C++实现

    Rosenblatt感知器收敛算法C++实现 算法概述 自己用C++实现了下,测试的例子和模式用的都是双月分类模型,关于双月分类相关看之前的那个笔记: https://blog.csdn.net/u0 ...

  2. 4.2tensorflow多层感知器MLP识别手写数字最易懂实例代码

    自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bclshuai/p/11380657.html 1.1  多层感知器MLP(m ...

  3. "多层感知器"--MLP神经网络算法

    提到人工智能(Artificial Intelligence,AI),大家都不会陌生,在现今行业领起风潮,各行各业无不趋之若鹜,作为技术使用者,到底什么是AI,我们要有自己的理解. 目前,在人工智能中 ...

  4. TFboy养成记 多层感知器 MLP

    内容总结与莫烦的视频. 这里多层感知器代码写的是一个简单的三层神经网络,输入层,隐藏层,输出层.代码的目的是你和一个二次曲线.同时,为了保证数据的自然,添加了mean为0,steddv为0.05的噪声 ...

  5. keras—多层感知器MLP—MNIST手写数字识别

    一.手写数字识别 现在就来说说如何使用神经网络实现手写数字识别. 在这里我使用mind manager工具绘制了要实现手写数字识别需要的模块以及模块的功能:  其中隐含层节点数量(即神经细胞数量)计算 ...

  6. keras—多层感知器MLP—IMDb情感分析

    import urllib.request import os import tarfile from keras.datasets import imdb from keras.preprocess ...

  7. tensorflow学习笔记——自编码器及多层感知器

    1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...

  8. RBF神经网络学习算法及与多层感知器的比较

    对于RBF神经网络的原理已经在我的博文<机器学习之径向基神经网络(RBF NN)>中介绍过,这里不再重复.今天要介绍的是常用的RBF神经网络学习算法及RBF神经网络与多层感知器网络的对比. ...

  9. MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)

    先看代码(sklearn的示例代码): from sklearn.neural_network import MLPClassifier X = [[0., 0.], [1., 1.]] y = [0 ...

随机推荐

  1. MVC模式从Controller返回内容协商格式(Json或者Xml)

    WebAPI默认的返回格式Json,但是MVC是View,如果在MVC的控制器中,想要返回Json格式该怎么操作呢 在MVC的控制器中返回json数据只需要然会JsonResult而不是ActionR ...

  2. 漏洞复现-CVE-2015-1427-Groovy远程代码执行

          0x00 实验环境 攻击机:Win 10 靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场) 0x01 影响版本 Elasticsearch 1.3.0-1.3. ...

  3. 爬虫必知必会(3)_requests模块高级

    一.爬虫爬取失败的几个原因 1.在短时间内向网站发起了一个高频的请求 解决办法:使用代理 2.连接池(http)中的资源被耗尽 解决办法:立即将请求断开:Connection:close 3.高清图片 ...

  4. ajax传数组后台GO语言接收

    js代码如下: function PostHandle(url,data,callback) { $.ajax({ type: "Post", url:url, data:data ...

  5. 2019看雪CTF 晋级赛Q2第四题wp

    上次参加2019看雪CTF 晋级赛Q2卡在了这道题上,虽然逆出算法,但是方程不会解,哈哈哈哈,果然数学知识很重要呀,现在记录一下. 首先根据关键信息,根据错误提示字符串定位到这里: 1 int __t ...

  6. 错误提示:Access denied for user 'GC'@'localhost' (using password: YES)

    错误描述:使用的是C3P0连接池 Spring整合Mybatis时出现错误 java.sql.SQLException: Access denied for user 'GC'@'localhost' ...

  7. Manjaro Linux平台用pyinstaller打包python可执行文件

    技术背景 当我们创建一个python项目,最终的成果如果希望用户能够不依赖于python源代码也能够正常的执行,就会比较的人性化.因为源代码数量众多,很难让每个用户都自行管理所有的源代码,因此我们需要 ...

  8. Android Studio 如何在TextView中设置图标并按需调整图标大小

    •任务 相信大家对这张图片都不陌生,没错,就是 QQ动态 向我们展示的界面. 如何实现呢? •添加文字并放入图标 新建一个 Activity,取名为 QQ,Android Studio 自动为我们生成 ...

  9. 什么是事务?事务的四个特性(ACID)?并发事务带来哪些问题?事务隔离级别都有哪些?事务的传播特性

    什么是事务? 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消.也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做. 事物的四个 ...

  10. 博文推荐|多图详解 Apache Pulsar 消息存储模型

    关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目,是下一代云原生分布式消息流平台,集消息.存储.轻量化函数式计算为一体,采用计算与存储分离架构设计,支 ...