【AI】深度学习的数学--核心公式

news/2024/9/29 12:55:22/

1 梯度下降

f ( x + Δ x , y + Δ y ) ≃ f ( x , y ) + ∂ f ( x , y ) ∂ x Δ x + ∂ f ( x , y ) ∂ y Δ y f(x+\Delta x,y+\Delta y) \simeq f(x,y)+\frac{\partial f(x,y)}{\partial x}\Delta x+\frac{\partial f(x,y)}{\partial y}\Delta y f(x+Δx,y+Δy)f(x,y)+xf(x,y)Δx+yf(x,y)Δy

Δ z = f ( x + Δ x , y + Δ y ) − f ( x , y ) ≃ ∂ f ( x , y ) ∂ x Δ x + ∂ f ( x , y ) ∂ y Δ y \Delta z =f(x+\Delta x,y+\Delta y)-f(x,y) \simeq \frac{\partial f(x,y)}{\partial x}\Delta x+\frac{\partial f(x,y)}{\partial y}\Delta y Δz=f(x+Δx,y+Δy)f(x,y)xf(x,y)Δx+yf(x,y)Δy

Δ z ≃ ∂ f ( x , y ) ∂ x Δ x + ∂ f ( x , y ) ∂ y Δ y \Delta z \simeq \frac{\partial f(x,y)}{\partial x}\Delta x+\frac{\partial f(x,y)}{\partial y}\Delta y Δzxf(x,y)Δx+yf(x,y)Δy

Δ z ≃ ( ∂ f ( x , y ) ∂ x , ∂ f ( x , y ) ∂ y ) ( Δ x , Δ y ) \Delta z \simeq (\frac{\partial f(x,y)}{\partial x},\frac{\partial f(x,y)}{\partial y})(\Delta x,\Delta y) Δz(xf(x,y),yf(x,y))(Δx,Δy)

Δ z ≃ ( ∂ z ∂ x , ∂ z ∂ y ) ⋅ ( Δ x , Δ y ) = ∇ z ⋅ ( Δ x , Δ y ) \Delta z \simeq (\frac{\partial z}{\partial x},\frac{\partial z}{\partial y})\cdot (\Delta x,\Delta y)=\nabla z \cdot (\Delta x,\Delta y) Δz(xz,yz)(Δx,Δy)=z(Δx,Δy)

如果想要让z的下降速度最快就要保证两个向量方向完全相反,也就是要保证如下公式成立

( Δ x , Δ y ) = − η ∇ z (\Delta x,\Delta y) = -\eta \nabla z (Δx,Δy)=ηz

2 NN误差反向传播

参数w和b的梯度表示

∂ C ∂ w j i l = δ j l a i l − 1 , ∂ C ∂ b j l = δ j l ( l = 2 , 3... ) \frac{\partial C}{\partial w^{l}_{ji}}=\delta ^l_j a^{l-1}_i,\frac{\partial C}{\partial b^{l}_{j}}=\delta ^l_j(l=2,3...) wjilC=δjlail1,bjlC=δjl(l=2,3...)

δ的计算方法

输出层的误差反向传播计算方法,此处L代表输出层

δ j L = ∂ C ∂ a j L a ′ ( z j L ) \delta^L_j=\frac{\partial C}{\partial a^L_j}a'(z^L_j) δjL=ajLCa(zjL)

C = 1 2 { ( t 1 − a 1 L ) 2 + ( t 2 − a 2 L ) 2 } C=\frac{1}{2}\{ (t_1-a^L_1)^2+(t_2-a^L_2)^2 \} C=21{(t1a1L)2+(t2a2L)2}

δ j L = ∂ C ∂ a j L a ′ ( z j L ) = ( a j L − t j ) a ′ ( z j L ) \delta^L_j=\frac{\partial C}{\partial a^L_j}a'(z^L_j)=(a^L_j-t_j)a'(z^L_j) δjL=ajLCa(zjL)=(ajLtj)a(zjL)

隐藏层的误差反向传播计算方法,层l和下一层l+1的递推关系,m为层l+1的神经单元个数,l为大于等于2的整数

δ i l = ( δ 1 l + 1 w 1 i l + 1 + δ 2 l + 1 w 2 i l + 1 + . . . + δ m l + 1 w m i l + 1 ) a ′ ( z i l ) \delta ^l _i = (\delta ^{l+1} _1 w ^{l+1} _{1i} + \delta ^{l+1} _2 w^{l+1} _{2i}+...+ \delta ^{l+1} _m w^{l+1} _{mi})a'(z^l _i) δil=(δ1l+1w1il+1+δ2l+1w2il+1+...+δml+1wmil+1)a(zil)

输出层的神经单元误差

δ j 3 = ∂ C ∂ z j 3 = ∂ C ∂ a j 3 ∂ a j 3 ∂ z j 3 = ∂ C ∂ a j 3 a ′ ( z j 3 ) \delta^3_j = \frac{\partial C}{\partial z^3_j}=\frac{\partial C}{\partial a^3_j} \frac{\partial a^3_j}{\partial z^3_j}=\frac{\partial C}{\partial a^3_j}a'(z^3_j) δj3=zj3C=aj3Czj3aj3=aj3Ca(zj3)

隐藏层的神经单元误差
在这里插入图片描述

δ i 2 = ( δ 1 3 w 1 i 3 + δ 2 3 w 2 i 3 ) a ′ ( z i 2 ) ( i = 1 , 2 , 3 ) \delta ^2 _i = (\delta ^3 _1 w ^3 _{1i} + \delta ^3 _2 w^3 _{2i})a'(z^2 _i)(i=1,2,3) δi2=(δ13w1i3+δ23w2i3)a(zi2)(i=1,2,3)

3 CNN误差反向传播

在这里插入图片描述

输出层的梯度分量

在这里插入图片描述

∂ C ∂ w O n k − i j = δ n O a i j P k , ∂ C ∂ b O n = δ n O \frac{\partial C}{\partial w ^{On}}_{k-ij}=\delta ^O _n a^{Pk}_{ij},\frac{\partial C}{\partial b ^{O}}_{n}=\delta ^O _n wOnCkij=δnOaijPk,bOCn=δnO

n为输出层神经单元的编号,k为池化层子层编号,ij为池化子层神经单元行列编号(i,j=1,2)

卷积层的梯度分量

在这里插入图片描述

∂ C ∂ w i j F k = δ 11 F k x i j + δ 12 F k x i j + 1 + . . . + δ 44 F k x i + 3 j + 3 \frac{\partial C}{\partial w^{Fk}_{ij}}=\delta ^{Fk}_{11}x_{ij}+\delta ^{Fk}_{12}x_{ij+1}+...+\delta ^{Fk}_{44}x_{i+3j+3} wijFkC=δ11Fkxij+δ12Fkxij+1+...+δ44Fkxi+3j+3

k为过滤器的编号,ij为过滤器行列的编号(i,j=1,2,3)
在这里插入图片描述

∂ C ∂ b F k = δ 11 F k + δ 12 F k + . . . + δ 44 F k \frac{\partial C}{\partial b^{Fk}}=\delta ^{Fk}_{11}+\delta ^{Fk}_{12}+...+\delta ^{Fk}_{44} bFkC=δ11Fk+δ12Fk+...+δ44Fk

k为过滤器的编号

输出层δ的计算方法

δ n O = ∂ C ∂ z n O = ∂ C ∂ a n O ∂ a n O ∂ z n O = ∂ C ∂ a n O a ′ ( z n O ) \delta ^O_n=\frac{\partial C}{\partial z^O_n}=\frac{\partial C}{\partial a^O_n}\frac{\partial a^O_n}{\partial z^O_n}=\frac{\partial C}{\partial a^O_n}a'(z^O_n) δnO=znOC=anOCznOanO=anOCa(znO)

n为输出层神经单元的编号

C = 1 2 { ( t 1 − a 1 O ) 2 + ( t 2 − a 2 O ) 2 + ( t 3 − a 3 O ) 2 } C=\frac{1}{2}\{ (t_1-a^O_1)^2+(t_2-a^O_2)^2+(t_3-a^O_3)^2 \} C=21{(t1a1O)2+(t2a2O)2+(t3a3O)2}

δ n O = ( a n O − t n ) a ′ ( z n O ) \delta ^O_n=(a_n^O-t_n)a'(z_n^O) δnO=(anOtn)a(znO)

以上为代价函数示例及其导数,带入δ式可得

∂ C ∂ a n O = a n O − t n ( n = 1 , 2 , 3 ) \frac{\partial C}{\partial a^O_n}=a_n^O-t_n(n=1,2,3) anOC=anOtnn=1,2,3

求导数得

卷积层δ的计算方法

δ i j F k = { δ 1 O w k − i ′ j ′ O 1 + δ 2 O w k − i ′ j ′ O 2 + δ 3 O w k − i ′ j ′ O 3 } × ( 当 a i j F k 在区块中为最大值时为 1 否则为 0 ) × a ′ ( z i j F k ) \delta ^{Fk}_{ij}=\{\delta ^{O}_{1}w^{O1}_{k-i'j'}+\delta ^{O}_{2}w^{O2}_{k-i'j'}+\delta ^{O}_{3}w^{O3}_{k-i'j'}\}\times(当a^{Fk}_{ij}在区块中为最大值时为1否则为0)\times a'(z^{Fk}_{ij}) δijFk={δ1OwkijO1+δ2OwkijO2+δ3OwkijO3}×(aijFk在区块中为最大值时为1否则为0)×a(zijFk)

k为卷积层子层的编号,ij为卷积层神经单元的编号,i’j’是卷积层i行j列神经单元连接池化层神经单元的位置
在这里插入图片描述


http://www.ppmy.cn/news/1531921.html

相关文章

甄选范文“论软件的可靠性设计”,软考高级论文,系统架构设计师论文

论文真题 现代军事和商用系统中,随着系统中软件成分的不断增加,系统对软件的依赖性越来越强。软件可靠性已成为软件设计过程中不可或缺的重要组成部分。实践证明,保障软件可靠性最有效、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制,由此提出了可靠性设计…

Jenkins入门:从搭建到部署第一个Springboot项目(踩坑记录)

本文讲述在虚拟机环境下(模拟服务器),使用docker方式搭建jenkins,并部署一个简单的Springboot项目。仅记录关键步骤和遇到的坑 目录 一、环境准备和基础工具安装 1. 环境 2. yum安装 3. docker安装 4. 内网穿透工具安装natapp 二、jenkins安装和配置…

TCP三次握手四次挥手详解

TCP三次握手建立连接的过程: 一次握手:客户端发送带有 SYN(seqx)标志的数据包到服务端,然后客户端进入 SYN_SEND 状态,等待服务端的确认。二次握手:服务端收到 SYN 包后,发送带有 S…

根据ip地址查网页怎么查询?

一、通过命令提示符查询查网页(Windows系统) ①按“WinR”键,打开运营窗口。 ②输入“cmd”“回车”,打开命令提示符窗口。 ③输入“nslookup ip地址”将ip地址换成查询的实际ip地址“回车” ⑤系统返回输入ip地址对应的域名信息…

Webpack和GuIp打包原理以及不同

Webpack打包原理 Webpack的打包原理主要基于模块化的概念,它将应用程序中的所有资源(如JS、CSS、图片等)视为模块,并根据模块间的依赖关系进行静态分析。Webpack会递归地构建一个依赖关系图(dependency graph&#xf…

【自学笔记】支持向量机(4)——支持向量回归SVR

引入 SVM解决了分类问题,而用类似方法解决回归问题的模型称为支持向量回归。目标是得到一个模型,使输出的 f ( x ⃗ ) f(\vec{x}) f(x )与 y y y尽可能接近。 传统的回归模型直接计算 f ( x ⃗ ) f(\vec{x}) f(x )与 y y y的差距作为损失,当两…

直播加速所用的网络协议与网速比我们平常使用的有什么特殊

直播加速所用的网络协议与我们平常使用的协议(如HTTP、TCP等)相比,确实具有一些特殊之处。这些协议的设计目的是为了满足直播场景下的实时性和稳定性需求。以下是一些关键特性和比较: 1. 实时性要求 UDP协议:直播常用…

工厂模式在短信发送中的应用 —— 以腾讯云、阿里云、华为云为例

1. 问题背景 假设你在开发一个短信发送的系统,用户可以选择不同的服务提供商(比如腾讯云、阿里云、华为云)来发送短信。每个服务商提供的接口不同,但最终的目的是相同的——发送短信。这时,我们面临的问题是如何设计一…