Transformer详解:从放弃到入门(三)

  上篇文章中我们了解了多头注意力和位置编码,本文我们继续了解Transformer中剩下的其他组件。

层归一化

  层归一化想要解决一个问题,这个问题在Batch Normalization的论文中有详细的描述,即深层网络中内部结点在训练过程中分布的变化问题。
  如果神经网络的输入都保持同一分布,比如高斯分布,那么网络的收敛速度会快得多。但如果不做处理的话,这很难实现。由于低层参数的变化(梯度更新),会导致每层输入的分布也会在训练期间变化。
  批归一化首先被提出来通过在深度神经网络中包含额外的归一化阶段来减少训练时间。批归一化通过使用训练数据中每个批次输入的均值和标准差来归一化每个输入。它需要计算累加输入统计量的移动平均值。在具有固定深度的网络中,可以简单地为每个隐藏层单独存储这些统计数据。针对的是同一个批次内所有数据的同一个特征。
  然而批归一化并不适用于Transformer,通常在NLP中一个批次内的序列长度各有不同,所以需要进行填充,存在很多填充token。如果使用批归一化,则容易受到长短不一中填充token的影响,造成训练不稳定。而且需要为序列中每个时间步计算和存储单独的统计量,如果测试序列不任何训练序列都要长,那么这也会是一个问题。
  而层归一化针对的是批次内的单个序列样本,通过计算单个训练样本中一层的所有神经元(特征)的输入的均值和方差来归一化。没有对批量大小的限制,批归一化是不同训练数据之间对单个隐藏单元(神经元,特征)的归一化,层归一化是单个训练数据对同一层所有隐藏单元(特征)之间的归一化。对比见下图:
在这里插入图片描述
  如上图所示,批归一化针对批次内的所有数据的单个特征(Feature);层归一化针对批次内的单个样本的所有特征,它们都包含所有时间步。层归一化的公式为: y = x − E [ x ] V a r [ x ] + ϵ ⋅ γ + β y=\frac{x-E[x]}{\sqrt{Var[x]+\epsilon}}\cdot \gamma+\beta y=Var[x]+ϵ xE[x]γ+β  其中,x是归一化层的输入,y是归一化层的输出, γ \gamma γ β \beta β是为归一化曾分配的一个自适应的缩放和平移参数, ϵ \epsilon ϵ是一个很小的值,防止除零。

残差连接

  残差连接(residual connection,skip residual,也称为残差块)原理很简单,如下图:在这里插入图片描述  x为网络层的输入,该网络层包含非线性激活函数,记为F(x),即: y = x + F ( x ) y=x+F(x) y=x+F(x)  y是该网络层的输出,它作为第二个网络层的输入。在这个过程中,输入x没有被遗忘。
  残差是ResNet提出的概念,一般网络层数越深,模型的表达能力越强,性能也就越好。但随着网络的加深,也带来了很多问题,比如梯度消失、梯度爆炸。残差连接可以缓解这个问题。
在这里插入图片描述

  上图是ResNet网络有无残差连接损失平面的区别,可以看出来,增加了残差连接后,损失平面更加平滑,没有那么多局部极小值。直观地看,有了残差连接了,x的信息可以直接传递到下一层,哪怕中间F(x)是一个非常深的网络,只要它能学到将自己的梯度设成很小,不影响x梯度的传递即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/7788.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效工作之:开源工具kettle实战

在运营商数据处理领域,Oracle存储过程一直是数据处理的核心工具,但随着技术的发展,寻找替代方案变得迫切。Kettle,作为Oracle存储过程的替代品,以其强大的功能和易用性,正逐渐受到运营商的青睐。本文将介绍…

C数据结构:链表高级篇

单链表的定义 由于顺序表的插入删除操作需要移动大量的元素,影响了运行效率,因此引入了线性表的链式存储——单链表。单链表通过一组任意的存储单元来存储线性表中的数据元素,不需要使用地址连续的存储单元,因此它不要求在逻辑上相…

短视频矩阵系统ai剪辑 矩阵 文案 无人直播四合一功能核心独家源头saas开发

抖去推矩阵AI小程序是一款针对短视频平台的智能创作和运营工具,它具有以下功能特点: 1.批量视频生成:抖去推可以在短时间内生成大量视频,帮助商家快速制作出适合在短视频平台上推广的内容 2.全行业覆盖:适用于多个行业…

MAC M1电脑部署Grafana+Prometheus+Node_exporter

一、安装 1、grafana安装 brew install grafana 2、prometheus安装 brew install prometheus 3、node_exporter安装 brew install node_exporter 二、启动 1、grafana启动 brew services start grafana 2、prometheus启动 brew services start prometheus 3、node_exporter启动…

品深茶的抗癌功能是否涉及虚假宣传?

品深茶说到底,本质还是中国传统茶叶,茶叶本就是一种含有多种成分的饮品,包括茶多酚、生物碱、氨基酸、有机酸等。这些成分对人体有一定的益处,如抗氧化、抗炎、抗菌等作用。 一些研究表明,茶叶中的某些成分如茶多酚、…

Map集合的实现类~TreeMap

重复依据:通过对键进行排序 先创建Student类,并在主函数new对象,然后创建TreeMap: 建立红黑树,需要在Student类后面实现类的接口: 重写其中的compareTo方法: 或者可以自定义比较器: …

自动语音识别

⚠申明: 未经许可,禁止以任何形式转载,若要引用,请标注链接地址。 全文共计3077字,阅读大概需要3分钟 🌈更多学习内容, 欢迎👏关注👀【文末】我的个人微信公众号&#xf…

每天五分钟计算机视觉:通过交并比判断对象检测算法的性能

本文重点 在对象检测领域,交并比(Intersection over Union,简称IoU)是衡量算法性能的重要指标之一。它不仅直观地反映了预测框与真实框之间的重叠程度,还是判断算法是否“运行良好”的关键依据。 那个定位是好的? 对象检测任务中,我们希望不仅检测到对象,同时我们还希…

最新版Ceph( Reef版本)块存储简单对接k8s

当前ceph 你的ceph集群上执行 1.创建名为k8s-rbd 的存储池 ceph osd pool create k8s-rbd 64 642.初始化 rbd pool init k8s-rbd3 创建k8s访问块设备的认证用户 ceph auth get-or-create client.kubernetes mon profile rbd osd profile rbd pool=k8s-rbd部署 ceph-rbd-csi …

Android 适配阿拉伯语之vector图标镜像

Android 适配阿拉伯语之vector图标镜像 android:autoMirrored“true” 属性简单而直接的方法来自动处理 RTL 环境中图标的翻转。 使用 android:autoMirrored“true” 在 Vector Drawable 中是一种非常方便的方法,因为它允许你使用相同的 drawable 资源来适应不同的…

vue2人力资源项目5组织架构的增删改查

编辑表单回显 父组件:这里用到了父亲调子组件的方法和同步异步先后方法的处理 //methods里else if (type edit) {this.showDialog true// 显示弹层this.currentNodeId id// 记录id,要用它获取数据// 在子组件中获取数据// 父组件调用子组件的方法来获…

Go语言流程控制(一)

分支结构 if...else...语句 Go 语言中的 if...else 语句是一种基本的流程控制结构,用于根据条件执行不同的代码块。下面是关于 Go 语言中 if...else 语句的详细介绍: 基本语法 if 条件表达式 {// 当条件表达式为 true 时执行的代码 } else {// 当条件…

零基础代码随想录【Day27】|| 39. 组合总和,40.组合总和II, 131.分割回文串

目录 DAY27 39. 组合总和 解题思路&代码 40.组合总和II 解题思路&代码 131.分割回文串 解题思路&代码 DAY27 39. 组合总和 力扣题目链接(opens new window) 给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有…

MySQL日志机制【undo log、redo log、binlog 】

前言 SQL执行流程图文分析:从连接到执行的全貌_一条 sql 执行的全流程?-CSDN博客文章浏览阅读1.1k次,点赞20次,收藏12次。本文探讨 MySQL 执行一条 SQL 查询语句的详细流程,从连接器开始,逐步介绍了查询缓存、解析 S…

Prompt提示词教程 | 提示工程指南 | 提示词示例 入门篇

在上一节中,我们介绍并给出了如何赋能大语言模型的基本示例。如果还没看而且是刚入门的同学建议看下,有个基本概念。 Prompt提示词教程 | 提示工程指南 | 提示工程简介https://blog.csdn.net/HRG520JN/article/details/138523705在本节中,我…

基于springboot+vue+Mysql的教师人事档案管理系统

开发语言:Java框架:springbootJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包:…

Ansible自动化运维工具---Playbook

一、playbook playbook是剧本的意思 通过 task 调用 ansible 的模块将多个 play 组织在一 个playbook中运行。 playbook本身由以下各部分组成: Tasks: 任务,即调用模块完成的某操作Variables: 变量Templates: 模板Handlers: 处理器,当某条…

力扣刷题--数组--第二天

今天仍然做二分查找相关的题目。先来回顾一下二分查找的方法和使用的条件。二分查找是在数组中查找目标值的一种方法,通过边界索引确定中间索引,判断中间索引处的元素值和目标值的大小,来不断缩小查找区间。使用二分查找有如下一些限制&#…

深度剖析muduo网络库1.1---面试提问(阻塞、非阻塞、同步、异步)

在面试过程中,如果被问到关于IO的阻塞、非阻塞、同步、异步时,我们应该如何回答呢? 结合最近学习的课程,我作出了以下的总结,希望能与大家共同探讨! 先给出 陈硕大神原话:在处理IO的时候&…

Macbook Pro 2017 安装 Sonoma 简述版(带问题解决操作)

详细原因已经写在之前的记录中了,可转去查看: 记录Macbook Pro 2017 使用Opencore安装sonoma_macbookpro2017升级sonoma-CSDN博客 下面是最近整理可用的方法简述版本,只记录安装要点,最后说明一下不按步骤安装可能会出现的问题。…