深度学习CV八股文

深度学习CV八股文

一、深度学习中解决过拟合方法

  1. 数据增强
  2. L1和L2正则化
  3. Dropout正则化
  4. early stopping
  5. BatchNorm

L1和L2正则化

L1正则化直接在原来的损失函数基础上加上权重参数的绝对值: l o s s = J ( w , b ) + λ 2 m ∑ ∣ w ∣ loss=J(w,b)+\frac{\lambda}{2m}\sum|w| loss=J(w,b)+2mλw
L2正则化直接在原来的损失函数基础上加上权重参数的平方和: l o s s = J ( w , b ) + λ 2 m ∑ ∥ w ∥ F 2 loss=J(w,b)+\frac{\lambda}{2m}\sum\lVert w\lVert _F^2 loss=J(w,b)+2mλwF2
L1和L2正则化能够缓解过拟合的原因:
神经网络就是一个函数,对其进行傅里叶变换求得频谱,频谱中低频分量就是变化平滑的部分,高频分量就是变化敏感的部分。模型对于微小扰动的反馈差异大实际就是一个过拟合的表现,也就是高频分量不能多。根据雅各比矩阵(一阶导数矩阵),神经网络这个函数的高频分量存在上界,上界和谱范数正相关。谱范数逆变换回时域,可求得和参数范数正相关。正则就是将参数的范数加入loss里求最优化,故而限制了神经网络学到高频分量,更倾向于一个低频的平滑的函数,从而缓解过拟合。
推导过程:https://blog.csdn.net/StreamRock/article/details/83539937

Dropout

Dropout正则化

步骤:

  1. 遍历神经网络每一层节点,设置节点保留概率keep_prob(每一层的keep_prob可以不同,参数多的层keep_prob可以小一些,少的可以多一些)。
  2. 删除神经网络节点和从该节点进出的连线。
  3. 输入样本使用简化后的神经网络进行训练。
    每次输入样本都要重复以上三步

Inverted Dropout(反向随机失活)

步骤:

  1. 产生⼀个[0,1)的随机矩阵,维度与权重矩阵相同。
  2. 设置节点保留概率keep_prob 并与随机矩阵比较,小于为1,大于为0。
  3. 将权重矩阵与0-1矩阵对应相乘得到新权重矩阵。
  4. 对新权重矩阵除于keep_prob(保证输⼊均值和输出均值一致),保证权重矩阵均值不变,层输出不变。

测试阶段不需要使用dropout,因为如果在测试阶段使用dropout会导致预测值随机变化 , 而且在训练阶段已经将权重参数除以 keep_prob 保证输出均值不变所以在刚试阶段没必要使用dropout

Dropout起到正则化效果的原因:

  1. Dropout可以使部分节点失活,起到简化神经网络结构的作用,从而起到正则化的作用。
  2. Dropout使神经网络节点随机失活,所以神经网络节点不依赖于任何输⼊,每个输入的权重都不会很⼤。Dropout最终产⽣收缩权重的平方范数的效果,压缩权重效果类似L2正则化。

Dropout的缺点

没有明确的损失函数。

eargstopping ( 早停法 )

训练时间和泛化误差的权衡。提早停⽌训练神经网络得到⼀个中等大小的W的F范数,与L2正则化类似。
在这里插入图片描述
在训练中计算模型在验证集上的表现,当模型在验证集上的误差开始增大时,停止训练。这样就可以避免继续训练导致的过拟合问题。

二、深度学习中解决欠拟合方法

增加神经网络层数或神经元个数

三、梯度消失和梯度爆炸

梯度的本意是一个向量(矢量),表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向(此梯度的方向)变化最快,变化率最大(为该梯度的模)
梯度饱和:越来越趋近一条直线(平行X轴的直线),梯度的变化很小
在这里插入图片描述
设激活函数是线性或函数,忽略b。 g ( z ) = z g(z)=z g(z)=z
y ^ = W ( l ) W ( l − 1 ) ⋯ W ( 2 ) W ( 1 ) x \hat{y} = W^{(l)} W^{(l-1)} \cdots W^{(2)} W^{(1)} x y^=W(l)W(l1)W(2)W(1)x
W ( l ) > 1 W^{(l)}>1 W(l)>1时,如 W ( l ) = [ 1.5 0 0 1.5 ] W^{(l)}=\begin{bmatrix} 1.5 & 0 \\ 0 & 1.5 \\ \end{bmatrix} W(l)=[1.5001.5] y ^ = W ( l ) [ 1.5 0 0 1.5 ] ( l − 1 ) x = 1. 5 ( l ) x \hat{y}=W^{(l)}\begin{bmatrix} 1.5 & 0 \\ 0 & 1.5 \\ \end{bmatrix}^{(l-1)}x=1.5^{(l)}x y^=W(l)[1.5001.5](l1)x=1.5(l)x。此时,激活函数值/梯度函数值呈指数级增长=>梯度爆炸
W ( l ) > 1 W^{(l)}>1 W(l)>1时,如 W ( l ) = [ 0.5 0 0 0.5 ] W^{(l)}=\begin{bmatrix} 0.5 & 0 \\ 0 & 0.5 \\ \end{bmatrix} W(l)=[0.5000.5] y ^ = W ( l ) [ 0.5 0 0 0.5 ] ( l − 1 ) x = 0. 5 ( l ) x \hat{y}=W^{(l)}\begin{bmatrix} 0.5 & 0 \\ 0 & 0.5 \\ \end{bmatrix}^{(l-1)}x=0.5^{(l)}x y^=W(l)[0.5000.5](l1)x=0.5(l)x。此时,激活函数值/梯度函数值呈指数级递减=>梯度消失
∂ J ( θ ) ∂ θ i j = ∂ J ( θ ) ∂ z i l + 1 ⋅ ∂ z i l + 1 ∂ θ i j \frac{\partial{J(\theta)}}{\partial{\theta_ij} }=\frac{\partial{J(\theta)}}{\partial{z^{l+1}_i} } \cdot \frac{\partial{z^{l+1}_i}}{\partial{\theta_ij} } θijJ(θ)=zil+1J(θ)θijzil+1

解决梯度消失的方法

  1. Relu及其变体
  2. LSTM/GRU
  3. 残差结构
  4. BatchNorm
  5. Xavier初始化(修正w的方差,避免w过小)

解决梯度爆炸的方法

  1. 梯度裁剪
  2. 正则化(将w加入Loss里,如果Loss小则w也要小,而梯度爆炸是w过大[绝对值]造成的)
  3. Xavier初始化(修正w的方差,避免w过大)
  4. BatchNorm

四、神经网络权重初始化方法

Xavier

X和Z的方差在各层相等,激活值在网络供传递过程中就不会放大或缩小。
解决梯度消失和梯度爆炸问题
z = ∑ i = 1 n w i x i z= \sum_{i=1}^n w_ix_i z=i=1nwixi
v a r ( w i x i ) = E [ w i ] 2 v a r ( x i ) + E [ x i ] 2 v a r ( w i ) + v a r ( w i ) v a r ( x i ) var(w_ix_i)=E[w_i]^2var(x_i)+E[x_i]^2var(w_i)+var(w_i)var(x_i) var(wixi)=E[wi]2var(xi)+E[xi]2var(wi)+var(wi)var(xi)
E [ w i ] = E [ x i ] = 0 E[w_i]=E[x_i]=0 E[wi]=E[xi]=0,则 v a r ( w i x i ) = v a r ( w i ) v a r ( x i ) var(w_ix_i)=var(w_i)var(x_i) var(wixi)=var(wi)var(xi), v a r ( z ) = ∑ i = 1 n v a r ( w i ) v a r ( x i ) var(z)=\sum_{i=1}^n var(w_i)var(x_i) var(z)=i=1nvar(wi)var(xi)
x i x_i xi w i w_i wi独立同分布, v a r ( z ) = n v a r ( w ) v a r ( x ) var(z) =n var(w) var(x) var(z)=nvar(w)var(x)
v a r ( z ) = v a r ( x ) var(z) = var(x) var(z)=var(x),则 v a r ( w ) = 1 n var(w) =\frac{1}{n}\quad var(w)=n1
前向传播: v a r ( w ) = 1 n i n var(w) =\frac{1}{n_{in}} var(w)=nin1
反向传播: v a r ( w ) = 1 n o u t var(w) =\frac{1}{n_{out}} var(w)=nout1
v a r ( w ) = 2 n o u t + n i n var(w) =\frac{2}{n_{out}+n_{in}} var(w)=nout+nin2

指数加权移动平均数

计算局部的平均值,描述数值的变化趋势
V t = β V t − 1 + ( 1 − β ) θ t V_t= \beta{V_{t-1}}+(1-\beta)\theta{_t} Vt=βVt1+(1β)θt V t V_t Vt近似代表 1 1 − β \frac{1}{1- \beta} 1β1 θ \theta θ的平均值
V 0 = 0 , V 1 = ( 1 − β ) θ 1 V_0=0, V_1=(1-\beta)\theta{_1} V0=0,V1=(1β)θ1,当 β = 0.98 \beta=0.98 β=0.98时, v 1 = 0.02 θ 1 v_1=0.02\theta{_1} v1=0.02θ1,导致偏差较大,因此需要偏差修正。
偏差修正的目的:提高前期指数加权平均值的精度
使用 v t 1 − β t = β V t − 1 + ( 1 − β ) θ t 1 − β t \frac{v_t}{1- \beta{^t}}=\frac{ \beta{V_{t-1}}+(1-\beta)\theta{_t}}{1- \beta{^t}} 1βtvt=1βtβVt1+(1β)θt,当 t t t很大时, 1 − β t ≈ 1 1- \beta{^t}\approx1 1βt1,偏差修正将失去作用。

五、梯度下降法

梯度下降

假设一个损失函数为 J ( θ ) = 1 2 ∑ i = 1 n ( h θ ( x ) − y ) 2 J(\theta)=\frac{1}{2}\sum_{i=1}^n(h_{\theta}(x)-y)^2 J(θ)=21i=1n(hθ(x)y)2,其中 h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n h_{\theta}(x)=\theta{_0}+\theta{_1}x_1+\theta{_2}x_2+\cdots+\theta{_n}x_n hθ(x)=θ0+θ1x1+θ2x2++θnxn,然后使它最小化
我们知道曲面上方向导数的最大值的方向就代表了梯度的方向,因此我们在做梯度下降的时候,应该是沿着梯度的反方向进行权重的更新,可以有效的找到全局的最优解。这个 θ i \theta_i θi的更新过程可以描述为:
θ j : = θ j − α ∂ ∂ θ j J ( θ ) \theta_j:=\theta_j-\alpha\frac{\partial}{\partial{\theta_j}}J(\theta) θj:=θjαθjJ(θ)
∂ ∂ θ j J ( θ ) = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2 = 2 ⋅ 1 2 ( h θ ( x ) − y ) ⋅ ∂ ∂ θ j ( h θ ( x ) − y ) \frac{\partial}{\partial{\theta_j}}J(\theta)=\frac{\partial}{\partial{\theta_j}}\frac{1}{2}(h_{\theta}(x)-y)^2=2\cdot\frac{1}{2}(h_{\theta}(x)-y)\cdot\frac{\partial}{\partial{\theta_j}}(h_{\theta}(x)-y) θjJ(θ)=θj21(hθ(x)y)2=221(hθ(x)

深度学习CV面试八股是指在深度学习计算机视觉领域面试中常见的一些问题和概念。其中涉及到的一些内容包括深度可分离卷积、反卷积(转置卷积)、空洞卷积(扩张卷积)、感受野计算等。深度可分离卷积是将常规的卷积操作拆分为depthwise和pointwise两个部分,用来提取特征,相比常规卷积具有参数数量和运算成本较低的优势。 反卷积(转置卷积)是用于上采样或还原图像的操作,它可以将较小的特征映射变成较大的特征映射。 空洞卷积(扩张卷积)则是通过在卷积核中引入空洞(dilation)来扩大卷积核的感受野,从而增加了感受野的有效大小。 感受野计算是用来衡量卷积神经网络中每个神经元对输入特征的感知范围,计算感受野大小时需要考虑卷积核的大小、步长以及之前层的滤波器大小等因素。 综上所述,在深度学习CV面试中,可能会涉及到深度可分离卷积、反卷积、空洞卷积和感受野计算等内容。熟悉和理解这些概念和原理对于应聘者来说是很重要的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [深度学习八股文](https://blog.csdn.net/weixin_42693876/article/details/120345924)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值