5种神经网络常见的求导!

图神经网络的实现,神经网络框架图 经过激活函数f(u)的作用得到隐含层1的输出信息:岩溶地区地下水与环境的特殊性研究经过激活函数f(u)的作用得到隐含层2的输出信息:岩溶地区地下水与环境的特殊性研究激活函数f(u)我们这里采用Sigmoid型,即f(u)=1/[1+exp(-u)](6.5)隐含层的输出信息传到输出层,可得到最终输出结果为岩溶地区地下水与环境的特殊性研究以上过程为网络学习的信息正向传播过程。第二步:将已知的样本加到网络上,利用下式可算出他们的输出值yi,其值为岩溶地区地下水与环境的特殊性研究式中:xi为该节点的输入;... 阅读详情
作者丨Criss
来源丨机器学习与生成对抗网络
编辑丨极市平台

极市导读

 

本文总结了神经网络当中常见的5中求导,并附有详细的公式过程。

derivative of softmax

1.1 derivative of softmax

一般来说,分类模型的最后一层都是softmax层,假设我们有一个  分类问题,那对应的softmax层结构如下图所示(一般认为输出的结果  即为输入  属于第i类的概率):

假设给定训练集  ,分类模型的目标是最大化对数似然函数  ,即

通常来说,我们采取的优化方法都是gradient based的(e.g., SGD),也就是说,需要求解  。而我们只要求得  ,之后根据链式法则,就可以求得  ,因此我们的核心在于求解  ,即 

由上式可知,我们只需要知道各个样本  的  ,即可通过求和求得  ,进而通过链式法则求得  。因此下面省略样本下标j,仅讨论某个样本  。

实际上对于如何表示  属于第几个类,有两种比较直观的方法:

  • 一种是直接法(i.e., 用  来表示x属于第3类),则  ,其中  为指示函数;

  • 另一种是one-hot法(i.e., 用  来表示x属于第三类),则  ,其中  为向量  的第  个元素。

  • p.s., 也可以将one-hot法理解为直接法的实现形式,因为one-hot向量实际上就是  。

为了方便,本文采用one-hot法。于是,我们有:


1.2 softmax & sigmoid

再补充一下softmax与sigmoid的联系。当分类问题是二分类的时候,我们一般使用sigmoid function作为输出层,表示输入  属于第1类的概率,即

然后利用概率和为1来求解  属于第2类的概率,即

乍一看会觉得用sigmoid做二分类跟用softmax做二分类不一样:

  • 在用softmax时,output的维数跟类的数量一致,而用sigmoid时,output的维数比类的数量少;

  • 在用softmax时,各类的概率表达式跟sigmoid中的表达式不相同。

但实际上,用sigmoid做二分类跟用softmax做二分类是等价的。我们可以让sigmoid的output维数跟类的数量一致,并且在形式上逼近softmax。

通过上述变化,sigmoid跟softmax已经很相似了,只不过sigmoid的input的第二个元素恒等于0(i.e., intput为  ),而softmax的input为  ,下面就来说明这两者存在一个mapping的关系(i.e., 每一个  都可以找到一个对应的  来表示相同的softmax结果。不过值得注意的是,反过来并不成立,也就是说并不是每个  仅仅对应一个  )。


因此,用sigmoid做二分类跟用softmax做二分类是等价的。

02 backpropagation

一般来说,在train一个神经网络时(i.e., 更新网络的参数),我们都需要loss function对各参数的gradient,backpropagation就是求解gradient的一种方法。

假设我们有一个如上图所示的神经网络,我们想求损失函数  对  的gradient,那么根据链式法则,我们有

而我们可以很容易得到上述式子右边的第二项,因为  ,所以有

其中,  是上层的输出。

而对于式子右边的的第一项,可以进一步拆分得到

我们很容易得到上式右边第二项,因为  ,而激活函数  (e.g., sigmoid function)是我们自己定义的,所以有

,

其中,  是本层的线性输出(未经激活函数)。

观察上图,我们根据链式法则可以得到


其中,根据  可知

  和  的值是已知的,因此,我们离目标  仅差  和  了。接下来我们采用动态规划(或者说递归)的思路,假设下一层的  和  是已知的,那么我们只需要最后一层的graident,就可以求得各层的gradient了。而通过softmax的例子,我们知道最后一层的gradient确实可求,因此只要从最后一层开始,逐层向前,即可求得各层gradient。

因此我们求  的过程实际上对应下图所示的神经网络(原神经网络的反向神经网络):

综上,我们先通过神经网络的正向计算,得到  以及  ,进而求得  和  ;然后通过神经网络的反向计算,得到  和  ,进而求得  ;然后根据链式法则求得  。这整个过程就叫做backpropagation,其中正向计算的过程叫做forward pass,反向计算的过程叫做backward pass。

03 derivative of CNN

卷积层实际上是特殊的全连接层,只不过:

神经元中的某些  为  ;

神经元之间共享  。

具体来说,如下图所示,没有连线的表示对应的w为0:

如下图所示,相同颜色的代表相同的  :

因此,我们可以把loss function理解为  ,然后求导的时候,根据链式法则,将相同w的gradient加起来就好了,即


在求各个  时,可以把他们看成是相互独立的  ,那这样就跟普通的全连接层一样了,因此也就可以用backpropagation来求。

04 derivative of RNN

RNN按照时序展开之后如下图所示(红线表示了求gradient的路线):

跟处理卷积层的思路一样,首先将loss function理解为  ,然后把各个w看成相互独立,最后根据链式法则求得对应的gradient,即


由于这里是将RNN按照时序展开成为一个神经网络,所以这种求gradient的方法叫Backpropagation Through Time(BPTT)。

05 derivative of max pooling

一般来说,函数  是不可导的,但假如我们已经知道哪个自变量会是最大值,那么该函数就是可导的(e.g., 假如知道y是最大的,那对y的偏导为1,对其他自变量的偏导为0)。

而在train一个神经网络的时候,我们会先进行forward pass,之后再进行backward pass,因此我们在对max pooling求导的时候,已经知道哪个自变量是最大的,于是也就能够给出对应的gradient了。

references:

http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML17_2.html

http://www.wildml.com/2015/10/recurrent-neural-networks-tutorial-part-3-backpropagation-through-time-and-vanishing-gradients/



人工神经网络的拓扑结构,三层神经网络结构图 BP(BackPropagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一。BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。BP神经网络模型拓扑结构包括输入层(input)、隐层(hiddenlayer)和输出层(outputlayer)。 阅读详情

相关推荐

神经网络进阶

一、基本结构 ​ 一个简单的两层神经网络的基本结构分为三层:输入层(一般不考虑在内,是数据的样本特征)、隐藏层(包含3个神经元,神经元用⚪表示,神经元是一个非线性单元)、输出层(包含一个神经元,也用⚪表示)。 ​ 每个神经元的数学运算一般由两部分组成:线性部分和非线性部分,计算公式如下: {z=w1x1+w2x2+ba=g(z) \{{z=w_1x_1+w_2x_2+b \atop a=g(z)} {a=g(z)z=w1​x1​+w2​x2​+b​ 其中,z=w1x1+w2x2+b z=w_1x_1+

weixin_44079186的博客 1165

神经网络常见的求导!

点击“机器学习与生成对抗网络”,关注星标获取有趣、好玩的前沿干货!作者:Criss地址:https://www.meltycriss.com/2018/03/31/summary-deri...

idol24的博客 940

卷积神经网络系列之softmax loss对输入的求导推导

我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等。虽然现在已经开源了很多深度学习框架(比如MxNet,Caffe等),训练一个模型变得非常简单,但是你对损失函数求梯度是怎么求的真的了解吗?相信很多人不一定清楚。虽然网上的资料很多,但是质量参差不齐,常常看得眼花缭乱。为了让大家少走弯路,特地整理了下这些知识点...

AI之路 2万+

数据科学个人笔记:神经网络(网络结构+反向传播)

该篇主要是学习吴恩达老师的深度学习课程笔记,未完待续   一、待解决的问题 现在,我们有一堆样本,每个样本由一组输入值(向量x表示)和一组输出值(向量y表示,在我们举例的模型中y是一个1*1的向量)。我们要解决的问题,是通过这些已知了输入值x和输出值y的样本们,寻找出其中x和y的对应关系,之后我们就可以使用这种对应关系去构建模型,来判断那些只知道x值但不知道y值的样本,它们的y值是多少了。而...

humothetrader的博客 631

标量对矩阵求导

标量对矩阵求导矩阵求导的技术,在统计学、控制论、机器学习等领域有广泛的应用。鉴于我看过的一些资料或言之不详、或繁乱无绪,本文来做个科普,分作两篇,上篇讲标量对矩阵的求导术,下篇讲矩阵对矩阵的求导术。本文使用小写字母x表示标量,粗体小写字母表示向量,大写字母X表示矩阵。首先来琢磨一下定义,标量f对矩阵X的导数,定义为,即f对X逐元素求导排成与X尺寸相同的矩阵。然而,这个定义在计算中并不好用,实用上的...

liuliqun520的博客 8829

5 自动求导

本文介绍了深度学习中的自动求导原理与实现。首先回顾了标量和向量的链式求导法则,通过三种不同情况展示了向量求导的形状和大小变化。接着通过两个具体例题演示了链式法则的应用过程。然后详细讲解了计算机自动求导的两种模式:正向传递和反向传递,并比较了它们的区别。最后使用PyTorch框架实现了简单的自动求导功能,展示了如何计算梯度并访问梯度值。文章为理解深度学习中的自动求导机制提供了理论基础和代码示例。

my Blog 630

【深度学习】5种神经网络常见的求导!

作者丨Criss来源丨机器学习与生成对抗网络编辑丨极市平台导读本文总结了神经网络当中常见的5中求导,并附有详细的公式过程。derivative of softmax1.1derivative of softmax一般来说,分类模型的最后一层都是softmax层,假设我们有一个分类问题,那对应的softmax层结构如下图所示(一般认为输出的结果即为输入属于第i类的概率):假设给定训练...

fengdu78的博客 494

使用RepeatModeler和RepeatMasker注释基因组重复序列

重复序列注释有两种常用策略,基于同源序列相似性和基于重复序列结构特征。RepeatMasker是基于同源序列相似性注释序列的常用工具, RepeatModeler可用来从头对基因组的重复序列家族进行建模注释,它的核心组件是RECON和RepatScout。 这篇教程介绍如何使用RepeatModeler从头鉴定基因组的重复序列,之后用RepeatMasker根据自...

xuzhougeng blog 8855

【一些细节问题】5种神经网络常见的求导!

点击上方,选择星标,每天给你送干货!作者丨Criss来源丨机器学习与生成对抗网络编辑丨极市平台derivative of softmax1.1derivative of softmax一...

zenRRan的博客 132

CTFmisc-------Jack

每一个文件里面都有不一样的base64编码,我尝试将其解密,发现解出来的是乱码,所以我想到真正的flag藏在这些字符串中,所以我们要写代码把字符串提取出来。提取出来后,得到很多的base64的编码,要一个一个的解码很麻烦,猜到里面有flag字样的base64编码,所以我们将flag进行base64编码,1.下载得到Jack文件夹,里面有很多的txt文件。发现这个字符串是众多编码中唯一一个没有==然后从那些base编码中寻找Zmxh字段。

woshicainiao666的博客 1万+

深入解析ISO12233标准:SFR算法从理论到代码实现

本文深入解析ISO12233标准中的SFR算法,从理论到代码实现全面介绍如何量化成像系统的解析力。通过e-SFR算法测量边缘扩散函数(ESF)和空间频率响应(SFR),结合光学原理和实际代码示例,帮助开发者准确评估影像质量。文章包含关键步骤的Python实现和工程优化技巧,适用于相机测试、镜头评估等应用场景。

weixin_29200485的博客 158

矩阵求导常用公式

常见的求导有,标量对标量求导,向量对标量,矩阵对标量,标量对向量,向量对向量,标量对矩阵

weixin_40994552的博客 1万+

同步辐射材料科学应用指南:从XAFS原位实验到数据处理

材料结构分析是材料研究的核心环节,但传统实验室X射线受限于能量固定、亮度不足,往往难以回答原子局域配位、非晶结构及动态演变等关键问题。同步辐射光源以高通量、连续可调、偏振可控及脉冲时间结构等特性,将材料表征从静态观察推进到原位动态追踪层次。基于X射线吸收精细结构谱(XAFS)、原位实验、X射线衍射与散射、微区成像等技术,研究人员可实现元素选择性分析、近邻原子环境解析及真实工况下的结构演变监测。本文从技术原理出发,覆盖实验方案设计、样品制备、现场对光、数据处理与常见故障排查,并结合典型应用场景,为材料科学领域

weixin_32612263的博客 177

收藏 | 常见的神经网络求导总结!

来源:机器学习与生成对抗网络 本文约1700字,建议阅读5分钟本文为你总结常见的神经网络求导。 derivative of softmax1.1derivative of softma...

数据派THU 266

Arduino ESP32S3 基础入门教学大纲

ESP32环境、Arduino

追梦 3549

从一个 ASIN 看透亚马逊:商品模型背后的增长飞轮

在亚马逊电商体系中,每件商品背后都有一套严密的商品建模逻辑。本篇文章以“ASIN 的一生”为线索,系统拆解了亚马逊的商品模型:从飞轮战略出发,剖析 SDP(Single Detail Page)机制如何实现标准化展示;再到 ASIN 编码、父子变体结构与 Offer 分离模型,逐层解析商品信息如何被建构、聚合与呈现。通过图解与案例,文章帮助读者理解商品建品流程、同款聚合原则、价格控制机制等核心逻辑,避免常见运营误区,是一份面向运营、产品、技术人员的实用参考指南。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 13万+

求导法则与神经网络架构的关系

1.背景介绍 神经网络是一种模拟人脑神经元工作机制的计算模型,它由多个相互连接的节点(神经元)组成,这些节点通过有权重的边相互连接,形成一个复杂的网络结构。神经网络的核心在于通过这些节点之间的连接和权重的调整,来学习从输入到输出的映射关系。 求导法则则是一种数学方法,用于计算一个函数的梯度。在神经网络中,求导法则主要用于计算损失函数梯度,以便进行梯度下降优化算法,从而调整神经网络中的权重和偏置...

AI天才研究院 905

CAN总线入门(硬件部分)

这篇博客讲述CAN总线入门知识。

记得诚 1万+

手动推导softmax神经网络反向传播求导过程——softmax前世今生系列(6)

导读: softmax的前世今生系列是作者在学习NLP神经网络时,以softmax层为何能对文本进行分类、预测等问题为入手点,顺藤摸瓜进行的一系列研究学习。其中包含: 1.softmax函数的正推原理,softmax的代数和几何意义,softmax为什么能用作分类预测,softmax链式求导的过程。 2.从数学的角度上研究了神经网络为什么能通过反向传播来训练网络的原理。 3.结合信息熵理论...

AI量化交易实验室 5459

清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍

清洁机器人之屏幕(中,大LCD)方案--ITE 联阳986x系列 soc显控芯片介绍

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 2668

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

收藏 | 神经网络的 5 种常见求导,附详细的公式过程

来源:机器学习与生成对抗网络 本文约1800字,建议阅读5分钟 本文为你介绍5种常见求导的详细过程!01derivative of softmax1.1derivative of s...

数据派THU 390

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Pytorch自动求导机制详解

python pytorch

qq_43649937的博客 4374

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

[损失函数]Softmax求导

原文链接: https://blog.youkuaiyun.com/u014380165/article/details/79632950 我们知道卷积神经网络(CNN)在图像领域的应用已经非常广泛了,一般一个CNN网络主要包含卷积层,池化层(pooling),全连接层,损失层等。虽然现在已经开源了很多深度学习框架(比如MxNet,Caffe等),训练一个模型变得非常简单,但是你对损失函数求梯...

急流勇进 1万+

神经网络的5种常见求导,附详细的公式过程

来源:机器学习与生成对抗网络 本文约2000字,建议阅读5分钟 本文为你介绍神经网络的5种常见求导方式。01derivative of softmax1.1derivative of ...

数据派THU 1138

【Pytorch】使用pytorch进行张量计算、自动求导和神经网络构建

pytorch,它是一个基于Python的开源深度学习框架,它提供了==两个核心功能:张量计算和自动求导==。

阿润菜菜的博客 2797
上一篇: Deepmind的新SOTA图像分类模型:NFNets,不需要BN也能超越EfficientNets
下一篇: x³+y³+z³=3第三组整数解是多少,这个58年难题被40万台电脑算出来了
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值