logsumexp 反向传播推导

本文详细介绍了LogSumExp函数及其在多分类问题中Softmax的使用,重点展示了如何计算LogSumExp对输入变量的导数,涉及符号表示和数学推导过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近学了下陈天奇大佬的DeepLearningSystem课程,HW2里面有一块是对LogSumExp(简称LSE)算子求导数。
LSE应用非常广泛(例如多分类里的Softmax可以利用LSE来解决上溢问题 )。
所以这篇文章对LSE做了一个求导(但写的有点繁琐
顺便练练LaTeX 😄


下面是一些符号的说明:
i n p u t : z ∈ R n a r g m a x ( z ) = j , max ⁡ z = z j z i ^ = z i − max ⁡ z = z i − z j L o g S u m E x p ( z i ) = log ⁡ ( ∑ k = 1 n exp ⁡ ( z i − max ⁡ z ) ) + max ⁡ z = log ⁡ ( ∑ k = 1 n exp ⁡ ( z i ^ ) ) + z j L S E = L o g S u m E x p input: z \in \mathbb{R}^n \\ argmax \left(z \right) = j, \max{z}=z_j\\ \hat{z_{i}} = z_{i} - \max{z}=z_i-z_j\\ LogSumExp(z_i) = \log(\sum_{k=1}^{n}\exp(z_{i}-\max{z}))+\max{z}=\log(\sum_{k=1}^{n}\exp(\hat{z_i}))+z_j \\ LSE=LogSumExp input:zRnargmax(z)=j,maxz=zjzi^=zimaxz=zizjLogSumExp(zi)=log(k=1nexp(zimaxz))+maxz=log(k=1nexp(zi^))+zjLSE=LogSumExp


  1. i ≠ j i\neq j i=j
    ∂ L S E ∂ z i = ∂ L S E ∂ log ⁡ ∑ k = 1 n exp ⁡ ( z k ^ ) ⋅ ∂ log ⁡ ∑ k = 1 n exp ⁡ ( z k ^ ) ∂ z i + ∂ L S E ∂ max ⁡ z ⋅ ∂ max ⁡ z ∂ z i = 1 ⋅ ∂ log ⁡ ∑ k = 1 n exp ⁡ ( z k ^ ) ∂ ∑ k = 1 n exp ⁡ ( z k ^ ) ⋅ ∂ ∑ k = 1 n exp ⁡ ( z k ^ ) ∂ z i ^ + 1 ⋅ 0 = ∂ log ⁡ ∑ k = 1 n exp ⁡ ( z k ^ ) ∂ ∑ k = 1 n exp ⁡ ( z k ^ ) ⋅ ∑ k = 1 n ( ∂ exp ⁡ ( z k ^ ) ∂ z i ^ ) = 1 ∑ k = 1 n exp ⁡ ( z k ^ ) ⋅ ∑ k = 1 n ( ∂ exp ⁡ ( z k ^ ) ∂ z k ^ ⋅ ∂ z k ^ ∂ z i ) = 1 ∑ k = 1 n exp ⁡ ( z k ^ ) ⋅ ∑ k = 1 n ( exp ⁡ ( z k ^ ) ⋅ ∂ ( z k − max ⁡ z ) ∂ z i ) = 1 ∑ k = 1 n exp ⁡ ( z k ^ ) ⋅ ∑ k = 1 n ( exp ⁡ ( z k ^ ) ⋅ I ( k = i ) ) = 1 ∑ exp ⁡ ( z k ^ ) ⋅ exp ⁡ ( z i ^ ) = exp ⁡ ( z i ^ ) ∑ k = 1 n exp ⁡ ( z k ^ ) \begin{align} \frac{\partial{LSE}}{\partial{z_{i}}} &= \frac{\partial{LSE}}{\partial{\log\sum_{k=1}^{n}\exp(\hat{z_{k}})}} \cdot \frac{\partial{\log\sum_{k=1}^{n}\exp(\hat{z_{k}})}}{\partial{z_{i}}} + \frac{\partial{LSE}}{\partial{\max{z}}} \cdot \frac{\partial{\max{z}}}{\partial{z_{i}}} \\ &= 1 \cdot \frac{\partial{\log\sum_{k=1}^{n}\exp(\hat{z_{k}})}}{\partial{\sum_{k=1}^{n}{\exp(\hat{z_{k}})}}} \cdot \frac{\partial{ {\sum_{k=1}^{n}\exp(\hat{z_{k}})}}}{\partial{\hat{z_{i}}}} + 1 \cdot 0 \\ &= \frac{\partial{\log\sum_{k=1}^{n}\exp(\hat{z_{k}})}}{\partial{\sum_{k=1}^{n}{\exp(\hat{z_{k}})}}} \cdot \sum_{k=1}^{n}\left(\frac{\partial{ {\exp(\hat{z_{k}})}}}{\partial{\hat{z_{i}}}}\right) \\ &= \frac{1}{ {\sum_{k=1}^{n}\exp(\hat{z_{k}})}} \cdot \sum_{k=1}^{n}\left(\frac{\partial{ {\exp(\hat{z_{k}})}}}{\partial{\hat{z_{k}}}} \cdot \frac{ {\partial{ {\hat{z_{k}}}}}}{\partial{z_{i}}} \right) \\ &= \frac{1}{ {\sum_{k=1}^{n}\exp(\hat{z_{k}})}} \cdot \sum_{k=1}^{n}\left(\exp(\hat{z_k}) \cdot \frac{ {\partial{({z_{k}-\max{z}})}}}{\partial{z_{i}}} \right) \\ &= \frac{1}{ {\sum_{k=1}^{n}\exp(\hat{z_{k}})}} \cdot \sum_{k=1}^{n}\left(\exp(\hat{z_{k}}) \cdot \mathbb{I}\left(k=i\right) \right) \\ &= \frac{1}{ {\sum\exp(\hat{z_{k}})}} \cdot \exp(\hat{z_{i}}) \\ &= \frac{\exp(\hat{z_{i}})}{\sum_{k=1}^{n} {\exp(\hat{z_{k}})}} \nonumber \end{align} ziLSE=logk=1nexp(zk^)LSEzilog
简介 这是一个控制和管理订单的风控软件,可用于监控交易员的成交手数,也避免忘记设置止损和止盈的错误。 很多风控技术工作者在该软件系统的帮助下,节约了大量的工作时间,同时也避免了很多严重性的错误。 同时它可以根据风控参数的设置,关闭其他窗口的EA运行,并执行风控指令。 设计原理 该程序会不断扫描账户的资金与订单信息,并与用户设定的风控参数等信息进行比较。 当账户的的资金状态和订单状态超过风控参数设置的要求时,该系统会立刻进行对账户订单进行平仓,减仓或者清仓的操作。 风控大师的优点 节省风控时间,管理员不需要一直24小时盯着账户信息,通过该软件实现风控操作。 避免人为错误,人工执行风控,可能会出现疏忽性的错误,该系统可以避免人为错误。 提高风控执行,人工风控总是收到心里因素的影响,从而错过了最佳风控时间,该系统可以避免人性的不足。 风控时间及时,人工风控操作会有操作时间差,再瞬息万变的金融市场,速度就是一切,避免因人工风控不足的穿仓。 面板选项选择组合自由使用,易学易用,不用退出软件。 功能简介 净值以上清仓线--当账户的净资产大于该值时,执行清仓操作。 净值以下清仓线--当账户的净资产小于该值时,执行清仓操作。 整体盈利清仓线-- 当账户的浮动盈利大于该值时,执行清仓操作。 整体亏损清仓线-- 当账户的浮动亏损大于该值时,执行清仓操作。 单笔浮盈平仓线-- 当该笔订单浮动盈利大于该值时,执行该订单的平仓。 单笔浮亏平仓线-- 当该笔订单浮动亏损大于该值时,执行该订单的平仓。 盈利关其他窗线-- 当账户的浮动盈利超过该值时,关闭除本软件所在的其他任何窗口。 亏损关其他窗线-- 当账户的浮动亏损超过该值时,关闭除本软件所在的其他任何窗口。 最大单笔仓手数-- 当某笔订单的手数超过该值时候,执行减仓操作,直到符合要求。 最大总持仓手数-- 当账户的总持仓手数超过该值时候,执行减仓操作,直到符合要求。 限制最大止损点-- 当某订单无止损或止损点数超过该值时候,执行修改止损符合要求。 限制最大止盈点--当某订单无止盈或止盈点数超过该值时候,执行修改止盈符合要求。 自动平保盈利点-- 当某订单盈利点超过该值时,修改止损到入场位附近。 跟踪止损距离点-- 订单每次盈利该指定点数,执行跟踪止损。 自动平保盈亏比-- 当某订单的的盈利与止损的比例超过该值时,修改止损到入场价附近。 使用注意事项 本软件运行速度很快,先修改数值,在选择✓,否则数值尚未输入完毕就开始执行风控了。 mt4软件本身固有缺陷,在输入数值时,不要用按键,而是双击直接修改,否则会删除软件界面,如果不幸遇到,那么退出该软件重新加载即可,这种现象在mt5中没有。 软件意义 很多人操盘习惯性不带止损, 重仓,或者疏忽下错手数。执行力不够,到达止盈和止损位时,舍不得平仓了结。 总想赚得更多, 或者再等一等浮亏就会回来,这种赌徒的心理最终会害了自己的。该软件解决交易员执行力问题。 监控其他交易员及其他EA的运行状态并执行风控,也可以辅助自己盯盘执行平仓操作。 关于我们 迈达量化专业开发mt4和mt5程序服务,十几年金融与编程经验。 若您有任何软件开发或功能升级等相关需求欢迎联系我们。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值