Transformer模型-Feed Forward前馈网络和Relu激活函数的简明介绍

 今天介绍transformer模型的Feed Forward network前馈网络和Relu激活函数

背景


位置感知Position-Wise前馈网络(FFN)由两个全连接层(fully connected dense layers,就是线性层(Linear Layer),或密集层(Dense Layer))组成,或者也可以称为多层感知机(MLP:multi-layer perceptron)。

 参见:Transformer模型-线性层(Linear Layer),全连接层(Fully Connected Layer)或密集层(Dense Layer)的简明介绍-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/ank1983/article/details/137212380

隐藏层,也被称为d_ffn,通常被设置为d_model值的四倍左右。这也是它有时被称为扩展-收缩网络的原因。

根据《动手学深度学习》一书的描述,它被称为“位置感知”网络是因为它“使用相同的MLP在所有序列位置转换表示”。

换句话说,FFN的第一层大小为(d_model,d_ffn),这意味着在进行张量乘法时,它需要在每个序列上进行广播。这意味着每个序列都乘以相同的权重。如果输入的是相同的序列,那么输出也将是相同的。这个逻辑同样适用于大小为(d_ffn,d_model)的第二全连接层,它使张量返回到其原始大小。

在层与层之间,使用ReLU激活函数,即max(0, X)。任何大于0的值保持不变,而任何小于或等于0的值都将变为0。它引入了非线性,有助于防止梯度消失。

ReLU(Rectified Linear Unit,修正线性单元)

ReLU(Rectified Linear Unit,修正线性单元)是一种在神经网络中广泛使用的激活函数。ReLU函数将所有负值映射为0,而正值则保持不变。其数学表达式为:

f(x) = max(0, x)

对于任何输入x,如果x是正数或零,则ReLU函数返回x本身;如果x是负数,则返回0。

ReLU激活函数有几个关键优点:

  1. 计算效率:ReLU函数及其导数都是分段线性的,这使得它在计算上非常高效,尤其是在使用现代GPU进行大规模并行计算时。

  2. 稀疏性:ReLU可以产生稀疏的激活,即许多神经元的输出为0。这有助于网络学习更加有效的特征表示,因为网络可以专注于对任务重要的输入。

  3. 缓解梯度消失问题:在深度神经网络中,当使用Sigmoid或Tanh等激活函数时,由于它们的导数在大部分输入空间内都非常小,可能导致梯度消失问题。而ReLU在正值区域的导数为1,这有助于缓解梯度消失问题,使得深层网络更容易训练。

FFN基本实现-举例


准备:目前输出是(3,6,8)。这表示有3个序列,每个序列包含6个标记,每个标记有8维嵌入。

第一步:这个输出可以通过FFN(前馈网络)。这将把8维嵌入转换为32维嵌入。这个转换过程还通过了ReLU激活函数。新的形状将是(3, 6, 8) x (8, 32) → (3, 6, 32)。

第二步:这个张量可以通过第二层全连接层返回到其正常大小,即(3, 6, 32) x (32, 8) = (3, 6, 8)。这些值已经根据权重和激活函数发生了改变。

FFN 在Transformers的实现:

跟上面2步一模一样,max()就是Relu()

原文链接:https://medium.com/@hunter-j-phillips/position-wise-feed-forward-network-ffn-d4cc9e997b4c

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLM-base版本和chat版本的比较

突然想到了这个问题,网上搜集了一些资料,自己也总结一下 首先放一张llama2论文当中的图,可以很直观的看到区别 面试回答版 问题: 大语言模型base版和chat版的区别是什么? 回答: base版本更适合文本补全…

医疗器械FDA | 常见的网络安全材料发补问题都有哪些?

FDA网络安全资料发补咨询点此​​获取https://work.weixin.qq.com/ca/cawcde5ee29d239046 ————————--- 01 安全文档编写问题 FDA网络安全文档编写格式、内容、可读性等未满足官方要求,则将可能被要求发补整改编写后的文档。 02 安全管理问题 a. 网络安…

Apache-Pulsar安装操作说明

说明 Pulsar 是一种用于服务器到服务器消息传递的多租户高性能解决方案。 Pulsar 的主要特性如下: 对 Pulsar 实例中的多个集群的本机支持,并跨集群无缝地复制消息。 极低的发布和端到端延迟。 无缝可扩展至超过一百万个主题。 一个简单的客户端 API&…

C语言--#运算符和##运算符

#运算符和##运算符 这里提前补充一点printf C语言里面会天然的吧printf里面俩字符串合并为一个 #的使用 在C语言中,#符号主要用于预处理器指令。预处理器是在代码编译之前执行的,它处理所有以#开始的指令。以下是一些常见的使用情况:1. **…

自定义校验器

1.前端校验 <template><el-dialog:title"!dataForm.brandId ? 新增 : 修改":close-on-click-modal"false":visible.sync"visible"><el-form:model"dataForm":rules"dataRule"ref"dataForm"keyu…

MySQL-主从复制:概述、原理、同步数据一致性问题、搭建流程

主从复制 1. 主从复制概述 1.1 如何提升数据库并发能力 一般应用对数据库而言都是“读多写少”&#xff0c;也就说对数据库读取数据的压力比较大&#xff0c;有一个思路就是采用数据库集群的方案&#xff0c;做主从架构、进行读写分离&#xff0c;这样同样可以提升数据库的并…

基于R语言、MaxEnt模型融合技术的物种分布模拟、参数优化方法、结果分析制图与论文写作

第一章、理论篇&#xff1a;以问题导入的方式&#xff0c;深入掌握原理基础 什么是MaxEnt模型&#xff1f; MaxEnt模型的原理是什么&#xff1f;有哪些用途&#xff1f; MaxEnt运行需要哪些输入文件&#xff1f;注意那些事项&#xff1f; 融合R语言的MaxEnt模型的优势&…

从0到1搭建文档库——sphinx + git + read the docs

sphinx git read the docs 目录 一、sphinx 1 sphinx的安装 2 本地构建文件框架 1&#xff09;创建基本框架&#xff08;生成index.rst &#xff1b;conf.py&#xff09; conf.py默认内容 index.rst默认内容 2&#xff09;生成页面&#xff08;Windows系统下&#xf…

大厂高频面试题复习JAVA学习笔记-JUC多线程及高并发(上)

目录 0 JUC基础概念 wait/sleep的区别 并发与并行的区别 线程的六个状态 JUC结构 ​编辑 1 请谈谈你对volatile的理解 JMM&#xff08;java内存模型&#xff09; 可见性 不保证原子性 有序性​编辑 指令重排 哪些地方用到volatile&#xff1a; 双端检查机制DLC …

PaddleVideo:PP-TSM视频分类

本文记录&#xff1a;使用Paddle框架训练TSM&#xff08;Temporal Shift Module&#xff09; 前提条件&#xff1a;已经安装Paddle和PadleVideo&#xff0c;具体可参考前一篇文章。 1-数据准备&#xff1a; 以UCF101为例&#xff1a;内含13320 个短视频&#xff0c;视频类别&…

数据库相关知识总结

一、数据库三级模式 三个抽象层次&#xff1a; 1. 视图层&#xff1a;最高层次的抽象&#xff0c;描述整个数据库的某个部分的数据 2. 逻辑层&#xff1a;描述数据库中存储的数据以及这些数据存在的关联 3. 物理层&#xff1a;最低层次的抽象&#xff0c;描述数据在存储器中时如…

Prometheus-Grafana基础篇安装绘图

首先Prometheus安装 1、下载 https://prometheus.io/download/ 官网路径可以去这儿下载 2、如图&#xff1a; 3.解压&#xff1a; tar -xf prometheus-2.6.1.linux-amd64 cd prometheus-2.6.1.linux-amd64 4.配置文件说明&#xff1a; vim prometheus.yml 5.启动Promethe…

基于 Vue3 + Webpack5 + Element Plus Table 二次构建表格组件

基于 Vue3 Webpack5 Element Plus Table 二次构建表格组件 文章目录 基于 Vue3 Webpack5 Element Plus Table 二次构建表格组件一、组件特点二、安装三、快速启动四、单元格渲染配置说明五、源码下载地址 基于 Vue3 Webpack5 Element Plus Table 二次构建表格组件&#x…

c++的学习之路:15、list(2)

本章主要是讲模拟实现list&#xff0c;文章末附上代码。 目录 一、创建思路 二、构造函数 三、迭代器 四、增删 五、代码 一、创建思路 如下方代码&#xff0c;链表是由一块一块不连续的空间组成的&#xff0c;所以这里写了三个模板&#xff0c;一个是节点&#xff0c;一…

书生浦语训练营二期第三次作业

文章目录 基础作业1. 在茴香豆 Web 版中创建自己领域的知识问答助手第一轮对话第二轮对话第三轮对话第四轮对话第五轮对话 2.在 InternLM Studio 上部署茴香豆技术助手修改配置文件创建知识库运行茴香豆知识助手 基础作业 1. 在茴香豆 Web 版中创建自己领域的知识问答助手 我…

2-django、http、web框架、django及django请求生命周期、路由控制、视图层

1 http 2 web框架 3 django 3.1 django请求生命周期 4 路由控制 5 视图层 1 http #1 http 是什么 #2 http特点 #3 请求协议详情-请求首行---》请求方式&#xff0c;请求地址&#xff0c;请求协议版本-请求头---》key:value形式-referer&#xff1a;上一次访问的地址-user-agen…

Vue3与TypeScript中动态加载图片资源的解决之道

在前端开发中&#xff0c;Vue.js已成为一个备受欢迎的框架&#xff0c;尤其是在构建单页面应用时。Vue3的发布更是带来了许多性能优化和新特性&#xff0c;而TypeScript的加入则进一步提升了代码的可维护性和健壮性。然而&#xff0c;在实际的项目开发中&#xff0c;我们有时会…

校园圈子小程序,大学校园圈子,三段交付,源码交付,支持二开

介绍 在当今的数字化时代&#xff0c;校园社交媒体和在线论坛成为了学生交流思想、讨论问题以及分享信息的常用平台。特别是微信小程序&#xff0c;因其便捷性、用户基数庞大等特点&#xff0c;已逐渐成为构建校园社区不可或缺的一部分。以下是基于现有资料的校园小程序帖子发…

Redis中的Sentinel(六)

Sentinel 选举领头Sentinel. 当一个主服务器被判断为客观下线时&#xff0c;监视这个下线主服务器的各个Sentinel会进行协商&#xff0c;选举出一个领头Sentinel,并由领头 Sentinel对下线主服务器执行故障转移操作。以下是Redis选举领头Sentinel的规则和方法: 1.所有在线的S…

Python | Leetcode Python题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:nums.sort()n len(nums)best 10**7# 根据差值的绝对值来更新答案def update(cur):nonlocal bestif abs(cur - target) < abs(best - target):best…