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

多层感知器(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期待上一层的值如何改变,比如减小

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

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

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

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

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

(0)
上一篇 2022年4月11日 下午12:20
下一篇 2022年4月11日 下午12:20


相关推荐

  • 百度小度智能音箱如何集成AI能力_百度小度AI能力集成方法

    百度小度智能音箱如何集成AI能力_百度小度AI能力集成方法

    2026年3月12日
    1
  • AMQP机制_cdm机制为什么停止了

    AMQP机制_cdm机制为什么停止了当前各种应用大量使用异步消息模型,并随之产生众多消息中间件产品及协议,标准的不一致使应用与中间件之间的耦合限制产品的选择,并增加维护成本。AMQP是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。        当然这种降低耦合的机制是基于与上层产品,语言无关的协议。AMQP协议是一种二进制协议,提供

    2025年6月18日
    5
  • 从MergeSort看HBase–一

    从MergeSort看HBase–一最近在研究 HBase 发现很多归并排序的影子 很有意思的是这个在数据结构教材里一笔带过的算法却在分布式计算领域经常出现 再一次证明了我们的教材也许已经很落伍了 为什么会用到归并排序纳 我们知道分布式系统中排序是基础 数据很容易在单台机器 或者节点 模块 中做到有序 但分布式环境需要在整个集群中达到有序 因此自然牵涉到把多个有序列合并为一个有序列的过程 这个过程就是 mergesort 登场的时

    2026年3月17日
    2
  • MySQL中添加或插入语句(Insert)的几种使用方式

    MySQL中添加或插入语句(Insert)的几种使用方式1 Intsert 简写方式插入数据 1 先看一下表中有那些数据 在这里插入图片描述 https img blog csdnimg cn png x oss process image watermark type ZmFuZ3poZW5n shadow 10 text aHR0cHM6Ly9i

    2026年3月19日
    2
  • 2026智能体架构指南:OpenClaw框架如何深度集成4SAPI实现高可用自动化

    2026智能体架构指南:OpenClaw框架如何深度集成4SAPI实现高可用自动化

    2026年3月13日
    3
  • C语言实现俄罗斯方块

    C语言实现俄罗斯方块使用 C 语言完成俄罗斯方块 俄罗斯方块 的基本规则是移动 旋转和摆放游戏自动输出的各种方块 使之排列成完整的一行或多行并且消除得分 由小方块组成的不同形状的板块陆续从屏幕上方落下来 玩家通过调整板块的位置和方向 使它们在屏幕底部拼出完整的一条或几条 这些完整的横条会随即消失 给新落下来的板块腾出空间 与此同时 玩家得到分数奖励 没有被消除掉的方块不断堆积起来 一旦堆到屏幕顶端 玩家便告输 游戏结束 顾名思义 俄罗斯方块自然是俄罗斯人发明的

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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