神经网络与机器学习 笔记—多层感知器(MLP)
多层感知器(MLP)
Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题。然而日常生活中大多数问题不是线性可分的,都是多维度且无法直接进行线性分类。为了增加神经网络对这一类问题的泛化能力,出现了多层感知器(多层神经网络)的概念。
多层感知器基本特征:
网络中每个神经元模型包含一个可微的非线性激活函数。
网络中包括一个或多个隐藏在输入和输出神经节点之间的层。
网络展示出高度的连接性,其强度是由网络的突触权值决定的。
训练多层感知器的一个流行方法是反向传播算法,训练分为如下两个阶段:
- 前向阶段,网络的突触权值是固定的,输入信号在网络中一层一层传播,直到到达输出端。因此,在这一阶段,输入信号的影响限制在网络中激活隐藏神经元和输出神经元上。
- 反向阶段,通过比较网络的输出和期望输出产生一个误差信号。得到的误差信号再次通过网络一层一层传播,但是这一次传播是在反方向上进行的。在第二阶段,对于网络的突触权值进行不断的修正。对于输出层权值的修正计算是直接的,但是对于隐藏层来说则更有挑战性。
具有两个隐藏层的多层感知器结构图

- 函数信号。函数信号是从网络输入端而来的一个输入信号(刺激),通过网络(一个神经元接一个神经元)向前传播,到达网络输出端即成为一个输出信号。
- 误差信号。一个误差信号产生于网络的一个输出神经元,并通过网络(一层接一层)反向传播。我们称之为“误差信号”是因为网络的每一个神经元对他的计算都以这种或那种形式涉及误差依赖函数。
输出神经元构成网络的输出层。余下的神经元构成网络的隐藏层。因此隐藏层单元并不是网络输出或输入的一部分-因此他们被称为“隐藏”的。第一隐藏层的信号是从由传感单元(源节点)构成的输入馈给的;而第一隐藏层的输出结果又应用于下一个隐藏层;网络的其余部分依此类推。
多层感知器每一个隐藏层或输出层神经元的作用是进行两种计算:
- 计算一个神经元的输出处出现的函数信号,它表现为关于输入信号以及与该神经元相关的突触权值的一个连续非线性函数。
- 计算梯度向量(即误差曲面对链接于一个神经元输入的权值的梯度)的一个估计,他需要反向通过网络。
隐藏神经元的功能
隐藏神经元扮演着特征检测算子(feature detector)的角色;他们在多层感知器的运转中起着决定性作用。随着学习过程通过多层感知器不断进行,隐藏神经元开始逐步“发现”刻画训练数据的突出特征。它们是通过将输入数据非线性变换到新的称为特征空间的空间而实现的。例如,在模式分类问题中,感兴趣的类在这个新的空间中可能比原始输入数据空间中更容易分隔开。甚至,正事通过监督学习形成的这一特种空间将多层感知器和Rosenblatt感知器区分开来。
多层感知器监督学习的两种不同方式 批量学习和在线学习
批量学习(离线学习)
在监督学习的批量方法中,多数感知器的突触权值的调整在训练样本集合的所有样例都出现后进行,这构成了训练的一个回合(epoch)。换句话说,批量学习的代价函数是由平均误差能量定义的。多层改制器的突触权值的调整是以回合-回合为基础的。批量学习的有点是 对梯度向量的精确估计;学习过程的并行性。然而从实际观点看,批量学习有着存储需求。从统计的角度看,批量学习可以看成是某种形式的统计推断。因此它很适合于解非线性回归问题。
在线学习
在监督学习的在线方法下,对于多层感知器突触权值的调整是以样例-样例为基础的。用来最小化的代价函数是全体瞬时误差能量。但是这样的过程也违反了在线学习的并行性。在线学习方法被称为随机方法。这一随机性具有所希望的学习过程不容易陷入局部极小值点的效果,这是在线学习好于批量学习的明确意义所在。在线学习的另一个有点在于它比批量学习需要的存储量要少得多。同时它能够追踪训练数据的小的改变,尤其是产生数据的环境是不稳定的情况下。目前在线学习依然是主流方法。
神经网络与机器学习 笔记—多层感知器(MLP)的更多相关文章
- 神经网络与机器学习 笔记—Rosenblatt感知器收敛算法C++实现
Rosenblatt感知器收敛算法C++实现 算法概述 自己用C++实现了下,测试的例子和模式用的都是双月分类模型,关于双月分类相关看之前的那个笔记: https://blog.csdn.net/u0 ...
- 4.2tensorflow多层感知器MLP识别手写数字最易懂实例代码
自己开发了一个股票智能分析软件,功能很强大,需要的点击下面的链接获取: https://www.cnblogs.com/bclshuai/p/11380657.html 1.1 多层感知器MLP(m ...
- "多层感知器"--MLP神经网络算法
提到人工智能(Artificial Intelligence,AI),大家都不会陌生,在现今行业领起风潮,各行各业无不趋之若鹜,作为技术使用者,到底什么是AI,我们要有自己的理解. 目前,在人工智能中 ...
- TFboy养成记 多层感知器 MLP
内容总结与莫烦的视频. 这里多层感知器代码写的是一个简单的三层神经网络,输入层,隐藏层,输出层.代码的目的是你和一个二次曲线.同时,为了保证数据的自然,添加了mean为0,steddv为0.05的噪声 ...
- keras—多层感知器MLP—MNIST手写数字识别
一.手写数字识别 现在就来说说如何使用神经网络实现手写数字识别. 在这里我使用mind manager工具绘制了要实现手写数字识别需要的模块以及模块的功能: 其中隐含层节点数量(即神经细胞数量)计算 ...
- keras—多层感知器MLP—IMDb情感分析
import urllib.request import os import tarfile from keras.datasets import imdb from keras.preprocess ...
- tensorflow学习笔记——自编码器及多层感知器
1,自编码器简介 传统机器学习任务很大程度上依赖于好的特征工程,比如对数值型,日期时间型,种类型等特征的提取.特征工程往往是非常耗时耗力的,在图像,语音和视频中提取到有效的特征就更难了,工程师必须在这 ...
- RBF神经网络学习算法及与多层感知器的比较
对于RBF神经网络的原理已经在我的博文<机器学习之径向基神经网络(RBF NN)>中介绍过,这里不再重复.今天要介绍的是常用的RBF神经网络学习算法及RBF神经网络与多层感知器网络的对比. ...
- MLPclassifier,MLP 多层感知器的的缩写(Multi-layer Perceptron)
先看代码(sklearn的示例代码): from sklearn.neural_network import MLPClassifier X = [[0., 0.], [1., 1.]] y = [0 ...
随机推荐
- 【ZeyFraのJavaEE开发小知识03】@DateTimeFomat和@JsonFormat
关于在Element UI的el-dialog组件中使用echarts的问题 问题描述: "Cannot read property 'getAttribute' of null" ...
- 使用SQLSERVER 2008 R2 配置邮件客户端发送DB数据流程要领
设置邮件 QQ邮箱貌似不太行,建议用企业邮箱或者其他邮箱作为发件箱 新建一个邮件发件箱账号,具体邮件服务器按照各自邮件配置,是否使用ssl,自便 下一步,下一步,配置成功 use msdb Go DE ...
- Shell编程中变量用法
1. 变量替换 语法 说明 ${变量名#匹配规则} 从变量开头进行规则匹配,将符合最短的数据删除 ${变量名##匹配规则} 从变量开头进行规则匹配,将符合最长的数据删除,贪婪匹配 ${变量名%匹配规则 ...
- Eric Python IDE 论文数据图片生成
Python编写,基于跨平台的Qt GUI工具包,集成了高度灵活的Scintilla编辑器控件. 大括号匹配,错误突出显示和可配置语法突出显示. 拼写检查库的集成 内置Python调试器,包括支持调试 ...
- 20个最有用的Python数据科学库
核心库与统计 1. NumPy(提交:17911,贡献者:641) 一般我们会将科学领域的库作为清单打头,NumPy 是该领域的主要软件库之一.它旨在处理大型的多维数组和矩阵,并提供了很多高级的数学函 ...
- P1996_约瑟夫问题(JAVA语言)_可能是最简单的解法了!
思路:使用队列模拟. 判断是否为出圈的数.如果不是,把数加入队列尾部:如果是,输出并删除. 题目背景 约瑟夫是一个无聊的人!!! 题目描述 n个人(n<=100)围成一圈,从第一个人开始报数,数 ...
- ch1_6_6求解门禁系统问题
import java.util.HashMap; import java.util.Scanner; public class ch1_6_6求解门禁系统问题 { public static voi ...
- 利用matplotlib和cmaps根据已有的colormap,重新定义colormap
算法网上这哥们总结的还可以[1] ,但是使用matplotlib自定义colormap自己掌握的还不够,写在这里 希望达到的目标 使用什么样的颜色,可以自己定义 方便的调用其他人的色标, 使用一部分c ...
- SqlServer触发器的创建与使用
前言 上期我们介绍了SqlServer的视图和存储过程创建与使用,这期我们介绍一下触发器. 有需要回顾的可以电梯直达看一下: SqlServer视图的创建与使用 SqlServer存储过程的创建与使用 ...
- thinkphp各版本常用漏洞总结
0x01 漏洞分析及复现 1.漏洞分析 漏洞影响范围: Thinkphp 5.1.0 - 5.1.31Thinkphp 5.0.5 - 5.0.23 漏洞产生原因: Thinkphp5.x版本(5.0 ...