多层感知机理解(多层感知机原理)

多层感知器(Muti-LayerPercetron)和卷积网络(ConvolutionalNeuralNetwork)。这两种网络都属于前馈型网络(Feedforwardnetwork),其中多层感知器(MLP)是最简单也是最常见的一种神经网络结构,它是所有其他神经网络结构的基础,好在我对神经网络的了解是从卷积神经网络开始的,对基本的原理和模型已经有了了解,所以学习起来相对容易,先看多层感知机的模型:1.网络的连接及输出:1.最左边就是我们的输入层了,算是网络的第0层,通常是一个向量x:

大家好,又见面了,我是你们的朋友全栈君。

一.网络的原理和结构

多层感知器(Muti-Layer Percetron)和卷积网络(Convolutional Neural Network)。这两种网络都属于前馈型网络(Feedforward network),其中多层感知器(MLP)是最简单也是最常见的一种神经网络结构,它是所有其他神经网络结构的基础,

好在我对神经网络的了解是从卷积神经网络开始的,对基本的原理和模型已经有了了解,所以学习起来相对容易,先看多层感知机的模型:
在这里插入图片描述
如何设计一个网络,输入代表像素的值,输出0-9之间的一个正确的数字
在这里插入图片描述
在这里插入图片描述
先把神经元当做数字
在这里插入图片描述
在这里插入图片描述
每个神经元里面是我们要提取的特征值,即像素的灰度值,0表示纯黑,1 表示纯白
在这里插入图片描述

这784个神经元组成了第一层,即神经网络的输入层

网络的最后一层是输出层,输出的是可能的概率,哪个概率最大,就代表识别的结果是哪个数字
在这里插入图片描述

网络的中间是隐藏层,包含这一些算法
在这里插入图片描述
比如网络的第三层,我们已经提取到局部的特征,只需要考虑将局部特征组合起来有多少 可能组成某一个数字
在这里插入图片描述

在这里插入图片描述
那再往前推,前面的一层网络就要能提取出更小的局部特征,把他们组合起来
在这里插入图片描述
通过权重值w,来提取我们关注的区域的值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这个加权和,再通过激活函数映射到[0,1]的区间

在这里插入图片描述
而通过偏置值,控制加权和不过早的激发

在这里插入图片描述
将加权和减去一个数,不让不必要的神经元激活,
在这里插入图片描述
权重代表我们关注什么样的图案,而偏置值代表加权和有多大激活神经元才有意义

在网络的第二层,每一个神经元都和上一层的784个神经元保持全连接
在这里插入图片描述

每个神经元都带一个权重和偏置值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用向量表示
在这里插入图片描述
所以,网络中每一个神经元更像一个函数,接收输入,输出0-1的值
在这里插入图片描述

进而整个网络也可以看成一个函数,接收输入,输出一个结果
在这里插入图片描述

在这里插入图片描述

二.网络如何学习

在网络训练的时候,我们需要定义一个代价函数,来告诉网络与正确值的差距在这里插入图片描述
定义正确值1,其他为0,将网络输出的结果与实际结果相减,再将他们差的平方加起来,得到一个损失值
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代价函数输出单个数值,来评价整个网络中的权重和偏置值与正确结果的差距
在这里插入图片描述
网络需要知道如何调整这些输入参数使输出接近正确的结果

以二维图像为例

随便 选一个输入值,然后考虑向左还是向右
在这里插入图片描述

计算斜率,斜率为正,表示函数是上升,那么我们梯度的反方向即向左

斜率为负,表示梯度是下降的,我们继续往右找到最低点
在这里插入图片描述

在每一点这样重复的计算斜率,直到找到局部最低点
在这里插入图片描述
在这里插入图片描述
在三维空间如何计算
在这里插入图片描述
同样也是计算梯度,沿梯度的反方向下降一小步

在这里插入图片描述

梯度如何计算:

梯度,就是封装了所有偏导的向量
在这里插入图片描述

在这里插入图片描述

这样我们就有了一个权重向量和一个反向梯度向量

在这里插入图片描述
将两个向量的对应的每一项相加,得到新的权重,再更新权重,如此循环
在这里插入图片描述
同时,代价值的绝对值表示每个w和B的重要程度
在这里插入图片描述
假如有一个函数的在点[1,1]的梯度向量是 [ 3 1 ] \begin{bmatrix} 3\\1\\ \end{bmatrix} [31]
在这里插入图片描述
在这里插入图片描述
也可以理解为改变x对函数影响更大

在这里插入图片描述

这样来看,网络的代价函数是把权重和偏置作为输入

在这里插入图片描述

三.反向传播法

通过代价函数我们得到了误差值

然后需要把所有样本的误差值平均值

在这里插入图片描述

我们求出的负梯度,同时反映了代价函数值的重要程度,
在这里插入图片描述
比如样本2,网络输出的值与正确的值差距较大,如何增大这个输出呢
多层感知机理解(多层感知机原理)
如何让这个结果变大

我们知道这个结果是上一层的输出+权重+偏置再通过激活函数得到的

那么有三个方法

*增大上一层的输出

*增加权重

*增加偏置值

在这里插入图片描述
如何增加权重

比较亮的神经元,对应的权重对结果影响相对更大,所以增加相对亮的神经元,训练的效率会更高
在这里插入图片描述
所以当反向传播的时候,不仅要看高边哪些权重,还要看改变那些权重性价比高
在这里插入图片描述
如何改变上一层的输出

和更改权重一样,如果我们需要结果更大的时候,依据权重的大小,对上一层的结果做出呈比例的改变
在这里插入图片描述
结果2期待上一层的值如何改变,比如增大

结果3期待上一层的值如何改变,比如减小

我们把这些期待全部加起来,作为如何改变上一层的值的指示

如此往复循环,达到训练的效果

这就是反向传播的理念
在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128227.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • ITDSD- 3.分布式工程学综述

    ITDSD- 3.分布式工程学综述英文版地址:ITDSD-3.OverviewofDistributedEngineeringSunshuo(sun.shuo@aliyun.com)导论这是关于分布式架构新手入门的第三篇文章。这一篇文章主要简要的介绍分布式工程学在理论上的基本概念,历史和现状,以及未来发展方向。让大家能够了解为什么学习分布式工程学。分布式工程学在计算机科学中的地位,以及分布式工程学要解决的问…

  • 俞敏洪 绝望中寻找希望_新东方俞敏洪哭了

    俞敏洪 绝望中寻找希望_新东方俞敏洪哭了                                新东方俞敏洪:从绝望中寻找希望                         http://www.sina.com.cn  2008年08月23日 10:25  华夏时报 .moduleSingleImg01img{border:1pxsolid#D1E3F4} –>

  • ios动态视频_手机怎么暂停gif

    ios动态视频_手机怎么暂停gif其实网上GitHub有很多第三方的,但是用起来比较麻烦,这里介绍最简单的一种方式,自己就可以实现,(点击按钮开始播放动态图)1,集成SDWebImage之后,引入头文件#import"U

  • Tomcat全攻略

    Tomcat全攻略

    2021年12月15日
  • kafka集群操作命令「建议收藏」

    kafka集群操作命令「建议收藏」1.修改kafka配置文件 broker.id=0zookeeper.connect=192.168.1.10:2181,192.168.1.12:2181,192.168.1.13:2181/kafka 说明: 默认Kafka会使用ZooKeeper默认的/路径,这样有关Kafka的ZooKeeper配置就会散落在根路径下面,如果你有其他的应用也在使用ZooKee…

  • Error filterStart的问题

    Error filterStart的问题今天出现这个问题由于只是报了一个error,不能解决问题,所以网上找了找关于这的问题可以在项目的WEB-INF/classes目录下新建一个文件叫logging.properties内容如下

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号