首页 > 其他分享 >Softmax偏导及BP过程的推导

Softmax偏导及BP过程的推导

时间:2024-02-03 23:12:51浏览次数:23  
标签:right partial BP Softmax exp frac 偏导及 left vec

Softmax求导

其实BP过程在pytorch中可以自动进行,这里进行推导只是强迫症

A

Apart证明softmax求导和softmax的BP过程
本来像手打公式的,想想还是算了,引用部分给出latex公式说明。

A.1

softmax导数
image

A.2

softmax梯度下降
image

B

基本上都是拾人牙慧,在此给出引用和参考。

参考:


\(引用几个定理B.15和B.16\)

\((B.15)\)

\[ \begin{aligned} & \vec{x} \in k^{M \times 1}, y \in R, \vec{z} \in R^{N \times 1},\quad 则: \\ & \frac{\partial y \vec{z}}{\partial \vec{x}}=y \frac{\partial \vec{z}}{\partial \vec{x}}+\frac{\partial y}{\partial \vec{x}} \cdot \vec{z}^{\top} \in R^{M \times N} \end{aligned} \]

\[\begin{aligned} & \text{[证明]:} \\ & dy\vec{z} \\ & =d y \cdot \vec{z}+y \cdot d \vec{z} \\ &=\vec{z} \cdot d y+y \cdot d \vec{z} \\ &=\vec{z} \cdot \left(\frac{\partial y}{\partial \vec{x}}\right)^{\top} d \vec{x}+y \cdot\left(\frac{\partial \vec{z}}{\partial \vec{x}}\right)^{\top} d \vec{x} \\ & \therefore \frac{\partial y \vec{z}}{\partial \vec{x}}=y \cdot \frac{\partial \vec{z}}{\partial \vec{x}}+\frac{\partial y}{\partial \vec{x}} \cdot \vec{z}^{\top} \end{aligned} \]

\((B.26)\)​

\[\begin{aligned} & \vec{x} \in R^N, \quad \vec{f}(\vec{x})=\left[f\left(x_1\right), f\left(x_2\right) \ldots f\left(x_n\right)\right] \in R^N, 则 \\ & \frac{\partial \vec{f}(\vec{x})}{\partial \vec{x}}=\operatorname{diag}\left(\vec{f}^{\prime}(\vec{x})\right) \end{aligned} \]

\[\begin{aligned} & \text { [证明]: } \frac{\partial \vec{f}(\vec{x})}{\partial \vec{x}}=\left[\begin{array}{cccc} \frac{\partial f_1}{\partial x_1} & \frac{\partial f_2}{\partial x_1} & \cdots & \frac{\partial f_n}{\partial \eta_n} \\ \vdots & \vdots & & \vdots \\ \frac{\partial f_1}{\partial x_n} & \frac{\partial f_1}{\partial x_n} & \cdots & -\frac{\partial f_n}{\partial x_n} \end{array}\right]=\left[\begin{array}{llll} f^{\prime}\left(x_1\right) & & \\ & f^{\prime}\left(x_2\right) & & \\ & & \ddots & \\ & & & f^{\prime}\left(x_n\right) \end{array}\right]=\operatorname{diag}\left(\vec{f}^{\prime}(\vec{x})\right) \end{aligned} \]

\(Apart中必须说明的两个推导:\)
\((1)\)

\[\begin{aligned} & \vec{x} \in R^n, \exp (\vec{x})=\left[\begin{array}{c} \exp \left(x_1\right) \\ \vdots \\ \exp \left(x_n\right) \end{array}\right] \in R^n\\ & 故存在偏导:\frac{\partial \exp (\vec{x})}{\partial \vec{x}}=\left[\begin{array}{ccc} \frac{\partial \exp \left(x_1\right)}{\partial x_1} & \cdots & \frac{\partial \exp \left(x_n\right)}{\partial x_1} \\ \vdots & & \\ \frac{\partial \exp \left(x_1\right)}{\partial x_n} & \cdots & \frac{\partial \exp \left(x_n\right)}{\partial x_n} \end{array}\right]=\operatorname{diag}(\exp (\vec{x})) \end{aligned} \]

\((2)\)

\[\begin{aligned} & d\vec{1}^{\top} \exp (\vec{x}) \\ & =\vec{1}^{\top} d \exp (\vec{x}) \\ &=\vec{1}^{\top}\left(\exp ^{\prime}(\vec{x}) \odot d \vec{x}\right) \\ &=\left(\vec{1} \odot \exp ^{\prime}(\vec{x})\right)^{\top} d \vec{x} \\ & \text { 有: } \frac{\partial \vec{1}^{\top} \exp (\vec{x})}{\partial \vec{x}}=\vec{1} \odot \exp ^{\prime}(\vec{x})=\exp ^{\prime}(\vec{x})=\exp (\vec{x}) \end{aligned} \]

C

理解可能有偏颇。

标签:right,partial,BP,Softmax,exp,frac,偏导及,left,vec
From: https://www.cnblogs.com/aoidayo/p/18005371

相关文章

  • 延迟Promise/单项目多npm版本/webpack好处/webpack5构建速度
    《Promise.withResolvers延迟Promise》https://sorrycc.com/promise-with-resolvers/promise当被reject之后,再次resolve,都是会返回reject的消息一个npm包的多个版本webpack好处需要通过模块化的方式来开发使用一些高级的特性来加快我们的开发效率或者安全性,比如通过ES6......
  • Blazor中使用npm、ts、scss、webpack且自动导入到html
    1、新建一个BlazorApp项目2、新建文件夹WebLib,并在终端中打开执行指令npminit-y在WebLib目录下新建tsconfg.json文件{"compilerOptions":{"noImplicitAny":false,"noEmitOnError":true,"removeComments":false,"sourceMa......
  • eBPF是如何工作的
    eBPF全称“扩展的伯克利数据包过滤器(ExtendedBerkeleyPacketFilter)”来看,它是一种数据包过滤技术,是从BPF(BerkeleyPacketFilter)技术扩展而来的。BPF提供了一种在内核事件和用户程序事件发生时安全注入代码的机制,这就让非内核开发人员也可以对内核进行控制。随着内核......
  • .webp格式win7无法显示缩略图
    点击这里下载插件安装即可或者直接访问官网下载这个文件不能直接上传,自行下载即可......
  • 打包工具 Webpack(三)
    打包工具Webpack(三)打包css资源https://www.webpackjs.com/loaders/css-loader/#getting-startedlesshttps://www.webpackjs.com/loaders/less-loader/#getting-startedsasshttps://www.webpackjs.com/loaders/sass-loader/#getting-started打包图片webpack......
  • 基于springboot开发的工作流系统,bpmn.js,vue源码及功能分析(activiti)
    前言activiti工作流引擎项目,企业erp、oa、hr、crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求。一、项目形式springboot+vue+activiti集成了activiti在线编辑器,流行的前后端分离部署开发模式,快速开发平台,可插拔工作流服务。工作......
  • 打包工具 Webpack(二)
    打包工具Webpack(二)它分为五大块入口出口加载器(webpack本身只能处理js、json等资源,其它资源需要借助加载器才能解析,比如css资源)插件模式我们一般会有一个配置文件(专门配置webpack的),叫做webapck.config.js//Node.js的核心模块,专门用来处理文件路径constpath=......
  • 打包工具 Webpack(一)
    打包工具Webpack(一)为什么需要打包工具?开发时,我们会使用框架(React、Vue),ES6语法、less/scss等css预处理器但是浏览器只认识纯粹的HTML/CSS/JavaScript所以我们需要打包工具帮我们转成浏览器认识的语法除此之外,打包工具还能压缩代码、提升代码性能等让我们来个案例......
  • react tips/webpack热更新原理/webpack优化性能/超级蔬菜配比
    《react使用小技巧》https://www.yuque.com/beilo/simpread/1706613177588《webpack热更新原理》https://github.com/febobo/web-interview/issues/126WebpackCompile(webpack编译)BundleServer(静态资源服务器,一般是dist/build文件夹HMRServer(热更新服务器HMRRuntime(......
  • eBPF和deepflow
    deepflow:https://zhuanlan.zhihu.com/p/586072469eBPF,eBPF的零侵扰性,开源地址在https://github.com/deepflowys/deepflow关于eBPF的介绍,并给了一个简单的例子,执行动态编译。https://zhuanlan.zhihu.com/p/480811707在linux中bpf系统调用,manbpf可以看到他的介绍。strace......