早前已经学习了感知器学习算法,主要通过对那些错分类的样本进行求和来表示对错分样本的惩罚,但明显的它是一个线性的判别函数;而且上节学到了感知器神经元(阈值逻辑单元),对于单个的感知器神经元来说,尽管它能够实现线性可分数据的分类问题(如与、或问题),但是却无法解决非线性问题,如逻辑学里的异或(XOR)问题甚至是高阶,那么这样的问题该如何利用简单学习机器来解决呢?

回想下前面在非线性分类器中提到的分段线性判别,它的目的是为了将非线性函数拟合成多段线性函数的组合,同样,关于上述问题,我们也可以采用这一思想,对于任意复杂形状的分类区域,总可以用多个神经元组成一定的层次结构来实现,如图,也即多个感知器神经元的组合:

                     (1)             (这里依然指的是阶跃函数,用作传递函数)

上图中的模型其实就是:前一层神经元的输出是后一层神经元的输入,最后一层只有一个神经元,它接收来自前一层的n个输入,给出作为决策的一个输出。

尽管我们有了这种多层学习模型的惊喜发现,但是遗憾的是,之前在线性判别里学到的感知器学习算法并不能直接应用在这种多层学习模型的参数学习上(为什么呢,因为要使用梯度下降法训练更新权值,而在该模型,看公式(1),神经元的传递函数为阶跃函数,输出端的误差只能对最后一个神经元的权系数求梯度,无法对其他神经元的权系数求梯度,所以无法使用这种梯度下降算法学习其他神经元的权值;),因此上世纪60年代,多层学习模型的提出者Rosenblatt随即给出了解决方案:除了最后一个神经元外,预先固定其他所有神经元的权重,学习过程就变成只是用感知器学习算法来寻找最后一个神经元的权系数。事实上,这样做相当于通过第一层神经元把原始的特征空间变换到一个新的空间,且第一层的每个神经元构成这个新空间的每一维,其中每一维取值为二值,然后再在这个新空间里用感知器学习算法构造一个线性分类器;显然,由于第一层神经元的权重值由人为确定,因此该模型的性能好坏很大程度上直接取决于第一层神经元权重值的是否选取适当,即第一层怎样设计才最恰当,而这些又直接取决于输入的数据性质,但是不幸的是,在当时还没有人能给出针对任意问题求解第一层参数的方法,于是就这样仅仅因为无法对参数进行学习的瓶颈,导致了人们对感知器的研究就这样停滞了大约有25年之久,直道25年后一种全新且至今广为传用的学习算法‘BP’的出现(作为后续的学习),才打破了僵局。

但是,不管神经网络模型的研究停滞不前了多久,多层感知器模型都是NN研究上的一个火光性的亮点,后续的一系列模型及学习算法(如当今火热的深度学习,还有经典的BP学习算法)都是基于此的,这么多年过去人们一提到NN,仍然会首先想到感知机模型,不仅是因为它简单,更因为它的历史贡献性无可替代。

模式识别(Pattern Recognition)学习笔记(十九)--多层感知器模型(MLP)相关推荐

  1. Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法

    Polyworks脚本开发学习笔记(十九)-将数据对象与参考对象对齐的方法 把开发手册理了一遍,发现还有几个点没有记录下来,其中一个就是使用点对的粗对齐和使用参考目标的精确对齐.为了把这个学习笔记凑够 ...

  2. 神经网络与机器学习 笔记—多层感知器(MLP)

    多层感知器(MLP) Rosenblatt感知器和LMS算法,都是单层的并且是单个神经元构造的神经网络,他们的局限性是只能解决线性可分问题,例如Rosenblatt感知器一直没办法处理简单异或问题.然 ...

  3. 【深度学习】学习案例:Keras 多层感知器手写数字识别

    实验:Keras 多层感知器 手写数字识别 1. 下载 MNIST数据集(前提) 2. 进行数据预处理 3. 建立模型 4. 进行训练 5. 以测试数据评估模型 6. 进行预测 拓展: 1. 显示混淆 ...

  4. OpenCV 神经网络 - 多层感知器(MLP)

    一.简述 人工神经网络(ANN) 简称神经网络(NN),能模拟生物神经系统对物体所作出的交互反应,是由具有适应性的简单单元(称为神经元)组成的广泛并行互连网络. 二.M-P神经元 "M-P神 ...

  5. Mr.J-- jQuery学习笔记(十九)--自定义动画实现图标特效

    之前有写过自定义动画Mr.J-- jQuery学习笔记(十八)--自定义动画 这次实现一个小demo 图标特效 页面渲染 <!DOCTYPE html> <html lang=&qu ...

  6. 深度学习(一)多层感知器MLP/人工神经网络ANN

    目录 一.定义和公式 1. 多层感知器 Multi Layer Perceptron MLP 2. MLP实现非线性分类 3. Keras介绍 二. 代码实战 1. 建立MLP模型实现二分类 1.1  ...

  7. 多层神经元感知器模型_使用多层感知器模型对星系进行分类

    多层神经元感知器模型 Cosmos is an intriguing space to observe and analyse, it is the stronghold for any scienc ...

  8. 多层感知器(MLP)详解【基于印第安人糖尿病数据】

    文章目录: 1 概述 2 Pima印第安人数据集 3 导入数据和keras 4 定义模型 5 编译模型 6 训练 7 评估和预测 8 完整代码 1 概述 多层感知器是最简单的神经网络模型,用于处理机器 ...

  9. 深度学习笔记(一)——感知器

    啥事深度学习 在人工智能领域,有一个方法叫做机器学习.在机器学习这个方法里,有一类算法叫做神经网络. 神经网络: 上图中每个圆圈都是一个神经元,每条线表示神经元之间的链接.我们可以看到,上面神经元被分 ...

最新文章

  1. 如何撰写将赢得客户青睐的自由职业者提案和免费模板
  2. erlang的进程池。
  3. 201621123079《java程序设计》第六周作业总结
  4. Delphi下的GDI+编程[2] DrawLine - 绘制直线
  5. C语言学习之输入10个数,输出其中最大的一个数。
  6. pHp中文网零基础,零基础编程
  7. mysql数据库教程全解_MySQL数据库基础教程详解
  8. 斯蒂芬金被退稿_斯蒂芬·金(Stephen King)对技术作家的实用建议
  9. Spring boot 学习二:入门
  10. JavaScript: The Good Parts 学习随笔(三)
  11. NVIDIA Jetson Xavier NX载板 RTSO-6002使用TF(MicroSD)卡重新刷机
  12. 第 3 章 MCS-51 单片机指令系统
  13. aplay,arec,amix使用
  14. WiFi漫游卡顿严重,如何有效改善实现无缝漫游
  15. 隐私公链背景的FAIRY SWAP,让DEX更进一步
  16. C# System.Net.Mail 类 使用465端口邮件不成功
  17. C语言 strcpy 和 strcpy_s 函数区别 - C语言零基础入门教程
  18. 基于ARCGIS二次开发可视化开发环境搭建(JAVA)
  19. mysql报错1357_mysql8 参考手册--错误代码1343-1367
  20. web前端svg图标使用(关于阿里iconfont的symbol 引用)

热门文章

  1. Java的JComboBox详解
  2. 近期新作品:醉眼看 ORACLE 和SAP ERP,希望对大家有用
  3. 抖音热搜查询易语言代码
  4. Android初级开发(九)——网络交互—OkHttp
  5. Drawing 电蚊香液
  6. 20210723-华西证券-吉利汽车-0175.HK-让世界充满吉利,变革4.0时代来临(1).pdf.
  7. 手机飞行模式“飞不动”?!这才是飞行模式的正确打开方式
  8. 闭包的概念、作用、问题及解决方式
  9. 讯飞创意组别 全国选拔赛成绩公布说明
  10. fdisk 挂载5.5T硬盘限制2T解决办法