多层感知器-1|学习笔记

简介: 快速学习多层感知器-1

开发者学堂课程【神经网络概览及算法详解多层感知器-1】学习笔记与课程紧密联系,让用户快速学习知识

课程地址https://developer.aliyun.com/learning/course/40/detail/926


多层感知器-1

 

内容介绍:

一、多层感知器

二、多层感知器实现异或XOR

 

一、多层感知器

在上一章的单层感知器,了解到了单层感知器的一些特点单层感知器不能去处理线性不可分的问题比如异或异或问题如何解决?可以把异或的逻辑表达式通过非、或这种简单的逻辑表达形式表示一个式子,然后通过设计把表达式通过逻辑电路计算机模拟神经网络模式实现,就可以解决异或的问题结果实际上已经不再是单而是在单层感知器的基础上增加了一些层。增加了一些之后,就变成了多层感知器

1. 概念

层感知器(Multi Layer Perceptron,即MLP)是一种前馈人工神经网络模型,包含至少一个隐藏层,对于层感知器共分为两层一个是输入层,一个是输出层多层感知器就在输入层和输出层之间增加了一个或多个隐藏层,然后输入的数据集映射到单一的输出的数据集上

2.区别

如下所示与单层感知器相比,多层感应器多隐藏层,图中了一个隐藏层。

image.png

(1)单和多是指具有计算功能的节点的输入层只是接受一个输入信号,它不对输入信号进行任何处理所以他不具备任何的计算功能

(2)输出层肯定是具备计算功能的,会把输入的值与权重相乘再相加,从而得到一个净输出如果有激活函数的话,还要用激活函数用到输出值上得到最终的结果,所以是有计算功能的

(3)隐藏也具有计算功能,对于单层感知器来说,只有一有计算功能的层的感知器模型就叫做单层感知器。有多层的超过一层的,叫多层感知器

(4)层只能学习线性函数多层可以学习非线性适用于模式识别,图像处理,函数逼近等领域。比如给出一系列特征X=(x1,x2,…)和目标Y,一个多层感知器可以以分类或者回归为目的,学习到特征和目标之间的关系。简单的理解就是,分类,输出为离散值回归,输出为连续值

 

二、多层感知器实现异或XOR

1. 多层感知器实现异或的例子

(1)如下图所示,首先看样本,输入为X1 X2有两个向量,这个向量有两个分量,其结果要么是0,要么是1,就对X1,X2求异或得到一个结果X1和X2相等的时候,都为0结果就是0或者都为1结果也为0。如果X1和X2不相等,像中间这两条一个是01,一个是10的时候,它的结果都是1。

image.png

X1 X2两个分量画在一个二维的坐标系,(0,0)(1,1)用红颜色来表示,0110是一类,用蓝颜色来表示

image.png

(2)然后给它建立一个多层感知器MLP(如下图),这个感知器的结构也比较简单,一个输入层一个隐藏一个输出,或者也叫单隐层层感知器。其中输入变量X1,X2,另外还有bias偏置,隐藏是两个节点,但是也加了个bias,最后输出值是O1输出值只有一个分因为输出是个向量,它只有一个分量,只不过分量的取值可以为0,也可以为1,而不是输出两个分量

image.png

(3)然后用四个样本这个模型进行训练,得到一组参数。如图,W01权重值给出,bias就是图中的b都已给出。接下来就用这个模型来验证一下我们要写公式。

image.pngimage.png

(4)举个例子式子中f1(x)就是图中自上而下第一个标红节点,这个节点的输入有三个,以从bias节点过来的输入为例,b为-1bias节点到要的节点的权重就是w01代入式子中可得结果为-0.5。同理,X1,X2分别代入式子中,可得表达式f1(x)=sign(-x1+x2-0.5)。W11就是此节点的输出值,同理可以算出第二个标红的节点的输出值。

image.png

(5) 输出节点o1,这个节点它的输出的表达式是什么?就是俩个标红节点的输出加上bias的输出,因为w01等于0,所以这一项就没有了,对这个结果呢,再去使用函数sign,就可以得到最终的输出我们按照这个公式分别来算,第一条为例,X1=0,X2=0,中间这一项就是-0.5,那它的值就是0,对于f2X1=0 X2=0加上-0.5,结果是小于0的,所以它的也是0,整个的输出就是这0。同理我们可以对余下三条进行验证,结果如下图。

image.png

(6) 所有的结果都与预期结果一致,如果在二维空间里去分类,每一个感知器都是一条直线,可以用一条直线可以去划分,X1+X2-5=0和X1-X2-0.5=0,这是一个标准的直线的方程,我们在二维空间里把它画出来,通过这两条线就可以把数据分开。正常求出来的参数模型有很多种,只要是划两条直线可以分开即可。

如下图:

 image.png

相关文章
|
数据采集 存储 测试技术
Python生成随机数插件Faker的用法
Python生成随机数插件Faker的用法
808 0
|
安全 数据库 存储
数据库设计基石:一文搞懂 1NF、2NF、3NF 三大范式
数据库设计常遇数据冗余、增删改异常?根源往往是表结构不规范。本文带你轻松掌握数据库三大范式——1NF、2NF、3NF,从原子列到消除依赖,层层递进,提升数据一致性与可维护性,让数据库设计更高效、安全!#数据库 #范式设计
3583 0
|
5月前
|
网络协议
怎么选 Socks5 的 TCP 和 UDP 协议?
Socks5代理支持TCP与UDP协议:TCP面向连接、可靠稳定,适用于网页浏览、文件传输;UDP无连接、速度快,适合在线视频、游戏等实时场景。用户应据需求选择,以平衡稳定性与实时性。
|
机器学习/深度学习 传感器 编解码
【多传感器融合】BEVFusion: 激光雷达和摄像头融合框架 NeurIPS 2022
BEVFusion提出一个融合多摄像头和激光雷达数据的框架,可用于3D检测。在自动驾驶领域,通过独立处理并融合摄像头和激光雷达数据,可以显著提升3D对象检测的准确性和稳健性,尤其是在激光雷达可能出现故障的真实场景中。
5108 57
【多传感器融合】BEVFusion: 激光雷达和摄像头融合框架 NeurIPS 2022
|
机器学习/深度学习 数据采集 监控
算法金 | 选择最佳机器学习模型的 10 步指南
许多刚入门的学习者也面临着相似的挑战,特别是在项目启动初期的方向确定和结构规划上。本文意在提供一份全面指南,助你以正确的方法开展项目。 遵循本文提供的每一步至关重要(虽有少数例外)。就像不做饭或点餐就无法享用美食一样,不亲自动手构建模型,就无法实现模型部署。
640 7
算法金 | 选择最佳机器学习模型的 10 步指南
|
Ubuntu Linux Shell
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
在Linux中,如何使用shell脚本判断某个服务是否正在运行?
|
数据安全/隐私保护 芯片
芯片数据手册阅读方法
芯片数据手册阅读方法
658 0
|
缓存 监控 前端开发
Performance Optimization
Performance Optimization
3684 2
|
机器学习/深度学习 算法 数据挖掘
机器学习(七)模型选择
机器学习(七)模型选择
359 0
|
存储 运维 Prometheus
用这个开源项目,网络小白也能搞定容器网络问题排查
用这个开源项目,网络小白也能搞定容器网络问题排查