Softmax 层反向传播梯度计算实例解析

【 Transformer 系列,故事从 d k \sqrt{d_k} dk 说起

LLM这么火,Transformer厥功甚伟,某天心血来潮~,再去看看!

它长这个样子深入浅出 Transformer

看完后,想起了老生常谈 d k \sqrt{d_k} dk 问题,必须一探究竟Transformer 中缩放点积注意力机制探讨:除以根号 dk 理由及其影响

感觉不够清楚,还是再Review下考研概率论,有了基于考研概率论知识解读 Transformer:为何自注意力机制要除以根号 dk中间会涉及初始化、标准化、Sofrmax函数,于是继续

【初始化相关】深度学习中的常见初始化方法:原理、应用与比较
【标准化系列】 数据为什么要进行标准化:Z-标准化的神奇蜕变带出了关联知识点: 深度 “炼丹” 术之 Batch Normalization 与 Z - 标准化:开启数据的神秘转换
【Softmax复习】Softmax 层反向传播梯度计算实例解析中间想到了经常配套使用的交叉熵,于是梳理了交叉熵的前世今生

KL 散度:多维度解读概率分布间的隐秘 “距离”
熵与交叉熵:从不确定性角度理解 KL 散度
机器学习、深度学习关于熵你所需要知道的一切

一、背景

在神经网络的训练过程中,反向传播算法起着至关重要的作用,它通过计算梯度来更新模型的参数,使得模型能够不断优化。Softmax 函数作为神经网络中常用的激活函数,其反向传播过程中的梯度计算是理解模型训练机制的关键环节。本文将通过一个具体例子详细阐述 Softmax 层反向传播过程中梯度的计算过程。

二、网络结构定义

假设我们有一个神经网络,其最后一层为 Softmax 层,输入向量为 z = ( z 1 , z 2 , z 3 ) \mathbf{z}=(z_1, z_2, z_3) z=(z1,z2,z3)。经过 Softmax 函数处理后,得到输出向量 σ ( z ) = ( σ ( z ) 1 , σ ( z ) 2 , σ ( z ) 3 ) \boldsymbol{\sigma}(\mathbf{z}) = (\sigma(z)_1, \sigma(z)_2, \sigma(z)_3) σ(z)=(σ(z)1,σ(z)2,σ(z)3),其中:
σ ( z ) 1 = e z 1 e z 1 + e z 2 + e z 3 \sigma(z)_1=\frac{e^{z_1}}{e^{z_1}+e^{z_2}+e^{z_3}} σ(z)1=ez1+ez2+ez3ez1
σ ( z ) 2 = e z 2 e z 1 + e z 2 + e z 3 \sigma(z)_2=\frac{e^{z_2}}{e^{z_1}+e^{z_2}+e^{z_3}} σ(z)2=ez1+ez2+ez3ez2
σ ( z ) 3 = e z 3 e z 1 + e z 2 + e z 3 \sigma(z)_3=\frac{e^{z_3}}{e^{z_1}+e^{z_2}+e^{z_3}} σ(z)3=ez1+ez2+ez3ez3

为了便于计算,我们假设 z 1 = 1 z_1 = 1 z1=1 z 2 = 2 z_2 = 2 z2=2 z 3 = 3 z_3 = 3 z3=3,由此可得:
σ ( z ) 1 ≈ e 1 e 1 + e 2 + e 3 ≈ 2.718 2.718 + 7.389 + 20.086 ≈ 0.09 \sigma(z)_1\approx\frac{e^{1}}{e^{1}+e^{2}+e^{3}}\approx\frac{2.718}{2.718 + 7.389 + 20.086}\approx0.09 σ(z)1e1+e2+e3e12.718+7.389+20.0862.7180.09
σ ( z ) 2 ≈ e 2 e 1 + e 2 + e 3 ≈ 7.389 2.718 + 7.389 + 20.086 ≈ 0.24 \sigma(z)_2\approx\frac{e^{2}}{e^{1}+e^{2}+e^{3}}\approx\frac{7.389}{2.718 + 7.389 + 20.086}\approx0.24 σ(z)2e1+e2+e3e22.718+7.389+20.0867.3890.24
σ ( z ) 3 ≈ e 3 e 1 + e 2 + e 3 ≈ 20.086 2.718 + 7.389 + 20.086 ≈ 0.67 \sigma(z)_3\approx\frac{e^{3}}{e^{1}+e^{2}+e^{3}}\approx\frac{20.086}{2.718 + 7.389 + 20.086}\approx0.67 σ(z)3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进一步有进一步的欢喜

您的鼓励将是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值