Softmax求导

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

A

Apart证明softmax求导和softmax的BP过程

本来像手打公式的,想想还是算了,引用部分给出latex公式说明。

A.1

softmax导数

A.2

softmax梯度下降

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

理解可能有偏颇。

Softmax偏导及BP过程的推导的更多相关文章

  1. 【机器学习】BP & softmax求导

    目录 一.BP原理及求导 二.softmax及求导 一.BP 1.为什么沿梯度方向是上升最快方向     根据泰勒公式对f(x)在x0处展开,得到f(x) ~ f(x0) + f'(x0)(x-x0) ...

  2. Deep Learning基础--Softmax求导过程

    一.softmax函数 softmax用于多分类过程中,它将多个神经元的输出,映射到(0,1)区间内,可以看成概率来理解,从而来进行多分类! 假设我们有一个数组,V,Vi表示V中的第i个元素,那么这个 ...

  3. BP神经网络算法推导及代码实现笔记zz

    一. 前言: 作为AI入门小白,参考了一些文章,想记点笔记加深印象,发出来是给有需求的童鞋学习共勉,大神轻拍! [毒鸡汤]:算法这东西,读完之后的状态多半是 --> “我是谁,我在哪?” 没事的 ...

  4. Andrew BP 神经网络详细推导

    Lec 4 BP神经网络详细推导 本篇博客主要记录一下Coursera上Andrew机器学习BP神经网络的前向传播算法和反向传播算法的具体过程及其详细推导.方便后面手撸一个BP神经网络. 目录 Lec ...

  5. Logistic回归计算过程的推导

    https://blog.csdn.net/ligang_csdn/article/details/53838743 https://blog.csdn.net/weixin_30014549/art ...

  6. 矩阵的f范数及其求偏导法则

    转载自: http://blog.csdn.net/txwh0820/article/details/46392293 矩阵的迹求导法则   1. 复杂矩阵问题求导方法:可以从小到大,从scalar到 ...

  7. BP神经网络算法推导

    目录 前置知识 梯度下降法 激活函数 多元复合函数求偏导的相关知识 正向计算 符号定义 输入层 隐含层 输出层 误差函数 反向传播 输出层与隐含层之间的权值调整 隐含层与输入层之间权值的调整 计算步骤 ...

  8. MathType二次偏导怎么表示

    求导以及求偏导运算在数学中是很重要的一个部分,尤其是在高等数学中,基本都由函数的导数与偏导组成,很多公式定理也是关于这方面的,如果少了这一部分,数学将会黯然失色.因此在文档中涉及到这些内容时,必然会少 ...

  9. Spark Mllib里的协调过滤的概念和实现步骤、LS、ALS的原理、ALS算法优化过程的推导、隐式反馈和ALS-WR算法

    不多说,直接上干货! 常见的推荐算法 1.基于关系规则的推荐 2.基于内容的推荐 3.人口统计式的推荐 4.协调过滤式的推荐 (广泛采用) 协调过滤的概念 在现今的推荐技术和算法中,最被大家广泛认可和 ...

  10. softmax求导、cross-entropy求导及label smoothing

    softmax求导 softmax层的输出为 其中,表示第L层第j个神经元的输入,表示第L层第j个神经元的输出,e表示自然常数. 现在求对的导数, 如果j=i,   1 如果ji, 2 cross-e ...

随机推荐

  1. vivo 云服务海量数据存储架构演进与实践

    一.写在开头 vivo 云服务提供给用户备份手机上的联系人.短信.便签.书签等数据的能力,底层存储采用 MySQL 数据库进行数据存储. 随着 vivo 云服务业务发展,云服务用户量增长迅速,存储在云 ...

  2. Ubuntu 18.04安装arm-linux-gcc交叉编译器的两种方法(附下载地址)

    方法一:   我们都知道Ubuntu有一个专门用来安装软件的工具apt,我们可以用它来全自动安装arm-linux-gcc.   此方法安装的是最新版的,但是此方法需要FQ,否则99%会失败,这就是为 ...

  3. 每天学五分钟 Liunx 0001 | 存储篇:swap

    swap swap ,内存交换空间,它是磁盘上的一块空间,主要作用是为了防止物理内存不足. CPU 从内存中读取数据.当内存的空间不足时, CPU 难以读取到数据,导致程序无法正常工作.所以诞生了 s ...

  4. shell 实现项目的启动与停止

    本文为博主原创,转载请注明出处: 1. 以tomcat 为例,编写启动脚本: #!/bin/sh bin=$(cd `dirname $0`; pwd) pid=$(ps aux | grep tom ...

  5. ASIC 功能验证SVTB

    System Verilog进行验证是可以不综合的 发现DUT中的功能问题 预备知识:Linux/verilog/gvim System Verilog学习目录 System Verilog Test ...

  6. org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 2

    1.报错 在运行SpringBoot项目时遇到报错: 17:44:47.558 [main] ERROR org.springframework.boot.SpringApplication -- A ...

  7. Oracle Rac 的简单学习

    Oracle Rac 的简单学习 Oracle RAC的概念 Oracle RAC (Real Application Clusters) 是 Oracle 数据库管理系统的一个功能, 它允许将数据库 ...

  8. [转帖]RAC AWR重要指标说明

    1.Global Cache Load Profile Global Cache blocks received:  接收到的全局缓冲块 Global Cache blocks served: 发送的 ...

  9. [转帖]MySQL快速备份表

    https://www.cnblogs.com/JaxYoun/p/14264593.html 1.复制表结构及数据到新表 CREATE TABLE 新表 SELECT * FROM 旧表 这种方法会 ...

  10. [转帖]比快更快的 ELK 8 安装使用指南-Elasticsearch,Kibana,Logstash

    https://juejin.cn/post/7133907643386560519 携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第23天,点击查看活动详情 Elastic 8 ...