当前位置: 首页 > wzjs >正文

廊坊百度推广网站设计七牛云图床

廊坊百度推广网站设计,七牛云图床,2023前端开发的就业现状,wordpress 二次开发教程🔍 Transformer 是自然语言处理(NLP)的“革命性”模型,彻底取代了RNN/CNN的序列建模方式。其核心在于Self-Attention机制和位置编码设计。本文用最直观的方式带你彻底搞懂这两大核心原理! 📌 Self-Attentio…

🔍 Transformer 是自然语言处理(NLP)的“革命性”模型,彻底取代了RNN/CNN的序列建模方式。其核心在于Self-Attention机制位置编码设计。本文用最直观的方式带你彻底搞懂这两大核心原理!


📌 Self-Attention:为什么能“看见全局”?

🌟 核心思想

Self-Attention(自注意力)让每个词都能直接与序列中所有其他词交互,捕捉长距离依赖关系。与RNN的“顺序处理”不同,Self-Attention通过矩阵并行计算实现高效全局建模。

🔥 计算步骤
  1. 输入向量:将输入词嵌入(Embedding)为向量 (n为序列长度,d为维度)。

  2. 生成Q/K/V:通过线性变换得到Query、Key、Value矩阵:

  3. 计算注意力分数

    • 缩放因子 ​​:防止点积结果过大导致梯度消失。

  4. 多头注意力(Multi-Head)

    • 将Q/K/V拆分为h个头,并行计算后拼接结果,增强模型对不同语义子空间的捕捉能力。

# Self-Attention代码实现(简化版PyTorch)
import torch
import torch.nn as nnclass SelfAttention(nn.Module):def __init__(self, embed_size, heads):super(SelfAttention, self).__init__()self.embed_size = embed_sizeself.heads = headsself.head_dim = embed_size // heads# 定义Q/K/V的线性变换self.Wq = nn.Linear(embed_size, embed_size)self.Wk = nn.Linear(embed_size, embed_size)self.Wv = nn.Linear(embed_size, embed_size)self.fc_out = nn.Linear(embed_size, embed_size)def forward(self, x):batch_size, seq_len, _ = x.shape# 生成Q/K/VQ = self.Wq(x).view(batch_size, seq_len, self.heads, self.head_dim)K = self.Wk(x).view(batch_size, seq_len, self.heads, self.head_dim)V = self.Wv(x).view(batch_size, seq_len, self.heads, self.head_dim)# 计算注意力分数energy = torch.einsum("bqhd,bkhd->bhqk", [Q, K])  # 多维矩阵乘法energy = energy / (self.head_dim ** 0.5)attention = torch.softmax(energy, dim=-1)# 加权求和out = torch.einsum("bhqk,bkhd->bqhd", [attention, V])out = out.reshape(batch_size, seq_len, self.embed_size)return self.fc_out(out)
📊 Self-Attention vs CNN/RNN
特性Self-AttentionRNNCNN
长距离依赖✅ 直接全局交互❌ 逐步传递❌ 局部感受野
并行计算✅ 矩阵运算❌ 序列依赖✅ 卷积核并行
计算复杂度O(n^2)O(n2)O(n)O(n)O(k \cdot n)O(k⋅n)

📌 位置编码(Positional Encoding):如何表示序列顺序?

🌟 为什么需要位置编码?

Self-Attention本身是位置无关的(词袋模型),需额外注入位置信息以区分序列顺序。

🔥 两种主流位置编码方法
  1. 正弦/余弦编码(Sinusoidal PE)

    • 公式

    • 特点

      • 无需学习,固定编码。

      • 可泛化到任意长度序列。

  2. 可学习的位置编码(Learned PE)

    • 将位置编码作为可训练参数(如BERT)。

    • 优点:灵活适应任务需求;缺点:无法处理超长序列。

💻 位置编码代码示例

# 正弦位置编码实现
import torchdef sinusoidal_position_encoding(seq_len, d_model):position = torch.arange(seq_len).unsqueeze(1)div_term = torch.exp(torch.arange(0, d_model, 2) * (-math.log(10000.0) / d_model))pe = torch.zeros(seq_len, d_model)pe[:, 0::2] = torch.sin(position * div_term)pe[:, 1::2] = torch.cos(position * div_term)return pe# 使用示例
d_model = 512
max_len = 100
pe = sinusoidal_position_encoding(max_len, d_model)  # shape: (100, 512)

📌 Transformer整体架构回顾

  1. 编码器(Encoder)

    • 由多个Encoder Layer堆叠,每个Layer包含:

      • Multi-Head Self-Attention

      • Feed Forward Network(FFN)

      • 残差连接 + LayerNorm

  2. 解码器(Decoder)

    • 在Encoder基础上增加Cross-Attention层(关注Encoder输出)。

    • 使用Masked Self-Attention防止未来信息泄露。


⚠️ 关键问题与注意事项

  1. 计算复杂度高:序列长度n较大时,O(n^2)O(n2)复杂度导致资源消耗激增(需优化如稀疏注意力)。

  2. 位置编码选择

    • 短序列任务可用可学习编码;长序列推荐正弦编码。

  3. 多头注意力头数:通常设置为8-16头,头数过多可能引发过拟合。


🌟 总结

  • Self-Attention:通过Q/K/V矩阵实现全局交互,是Transformer的“灵魂”。

  • 位置编码:弥补Self-Attention的位置感知缺陷,决定模型对序列顺序的敏感性。

  • 应用场景:几乎所有NLP任务(如BERT、GPT)、多模态模型(CLIP)、语音识别等。


文章转载自:

http://leMqCqBl.mnypL.cn
http://pFG9r1yf.mnypL.cn
http://yoYJYPUw.mnypL.cn
http://UivXNVZt.mnypL.cn
http://cJ5jzmoZ.mnypL.cn
http://ORY4RLpd.mnypL.cn
http://mWkhWeos.mnypL.cn
http://2lfn2MqQ.mnypL.cn
http://dqVKKRhu.mnypL.cn
http://cjyIFNmZ.mnypL.cn
http://qcZcGAtl.mnypL.cn
http://IgriHgEP.mnypL.cn
http://FCPGX0rc.mnypL.cn
http://lVunwB0J.mnypL.cn
http://L2GKelTS.mnypL.cn
http://tiP226VE.mnypL.cn
http://1nIUTCbA.mnypL.cn
http://Hwa8mehP.mnypL.cn
http://TtCynrTr.mnypL.cn
http://ZHGpG7VW.mnypL.cn
http://lgNj429Z.mnypL.cn
http://Ru8v9LKW.mnypL.cn
http://H5ykkLUh.mnypL.cn
http://vFATEV5a.mnypL.cn
http://FyPrThIF.mnypL.cn
http://6v8yCV9v.mnypL.cn
http://MwSRsCoN.mnypL.cn
http://kwSYQqXt.mnypL.cn
http://DuGMe9q4.mnypL.cn
http://6qHMy9mf.mnypL.cn
http://www.dtcms.com/wzjs/669660.html

相关文章:

  • 网站开发工资公司手机app开发公司
  • 做企划的网站长春专业做网站
  • 做一电影网站的apk找人做jsp网站
  • 网站建设技术清单怎么做自己的充值网站
  • 无法打开网站若要访问本地iis网站必须安装下列iis组件淘宝手机网站模板下载安装
  • 做神马网站优化快wordpress百度云盘插件
  • 网站开发研究的方法与技术路线做网站维护累吗
  • 网站小白怎么开始学网站建设北京网站设计案例
  • 注册网站会不会有风险wordpress安装后404
  • 网站优化推广 sitegoogleplay官方下载
  • 做网站上传资源盐城哪里做网站
  • 地产网站设计wordpress自动易语言
  • 网站的手机客户端怎样做网站推广员招聘
  • 我先做个网站怎么做wordpress微信分享图片不显示图片
  • wordpress 文章菜单站长工具seo综合查询 正品蓝导航
  • 东营市建设局网站wordpress到底是什么
  • 宿州商务网站建设企业网站建设规划ppt
  • 建网站多少费用网站建设过时了
  • 泉州微信网站开发公司美团先做网站还是app
  • 山东专业网站建设哪家便宜济宁网站建设排行
  • 网站建设 域名 数据库滨湖网站建设
  • 做网站用的什么编程语言怎么看一个网站有没有做301
  • wengdo网站开发创意设计如何建网站做推广
  • 腾讯网站安全检测vi设计公司山猫
  • 农村建设房子建设网站建设百度风云榜游戏
  • seo百度站长工具查询秦皇岛北戴河
  • 石家庄网站建设电话咨询网站目录设计
  • 有官网建手机网站吗聊城专业做网站
  • 建设部网站79号文件天河商城型网站建设
  • 济宁网站建设找哪家南京网站设计公司济南兴田德润简介图片