0 补课:语义分割——卷积神经网络基础

B站指路:1.1 卷积神经网络基础_哔哩哔哩_bilibili

  • 卷积的特性:

    • 局部感知机制
    • 权值共享
  • 一个普通卷积层示例如下:

    • 卷积核的channel与输入的特征层的channel(比如原图像的RGB三个通道,表示有3个channel)相同
    • 输出的特征矩阵的channel与卷积核的个数相同,如图所示,两个卷积核都有3个通道,输出矩阵的特征是2层,即通道为2。
      查看源图像
  • 使用非线性因素——激活函数,使得神经网络可以模拟非线性问题的模型

    • sigmoid激活函数:梯度消失问题严重,当变量取很大的负数或者正数的时候,sigmoid函数接近饱和,函数的导数接近于0,如下图所示,权重基本无法更新,所以当网络层数较深时,靠近输入层的隐藏层权值更新缓慢或停滞更新。

    查看原图像

  • 卷积层的矩阵大小

    • 计算公式为:

      N

      =

      (

      W

      F

      +

      2

      P

      )

      /

      S

      +

      1

      N=(W-F+2P)/S+1

      N=(WF+2P)/S+1

      输入图像为

      W

      ×

      W

      W×W

      W×W,卷积核Filter大小为

      F

      ×

      F

      F×F

      F×F,步长为S,padding的像素为P,一般是填充2P。

  • 池化层

    • 没有训练参数
    • 不改变特征层的个数,即channel,只改变特征矩阵的宽和高
    • 一般将池化核大小与步长设置相同
  • 反向传播的过程

    • 文字描述:输入x乘以权重w加上偏置值再经过激活函数处理得到一个网络层的输出yy再经过类似的处理直到最后一层,得到最终的输出z,然后使用zz的真实标签计算出损失Loss(比如说交叉熵),然后对损失函数求导,进行反向传播,要更新的参数是每个隐藏层的权重,也就是要使w是沿着损失下降最快的方向进行更新,那就是损失函数对w求偏导(因为不止一个权重(矩阵)),然后依次求出每一层的的损失对应权重的导数。接下来就是按照怎样的策略来更新这些权重,最简单的方法就是直接

      w

      =

      w

      l

      e

      ×

      w_新 =w_旧-le×导数

      w=wle×,le是学习率,此表达式表示权重在沿着损失下降最快的方向进行更新,也就是导数为负的方向。

    • 优化:上述更新权重的策略可能会导致进入局部最优,因为使用bach批次训练的损失是沿着当前批次下降最快的方向,并不是全局最优方向。所以使用优化器来更新权重,可以使网络更快地收敛。

      • SGD(Stochastic gradient descent)随机梯度下降:

        W

        =

        W

        α

        W_新=W_旧-α·损失梯度

        W=Wα。易受样本噪声影响;可能陷入局部最优解。收敛慢

      • SGD+Momentum优化器:

        v

        t

        =

        η

        v

        t

        1

        +

        α

        g

        (

        w

        t

        )

        v_t=eta cdot v_{t-1}+alpha cdot gleft(w_tright)

        vt=ηvt1+αg(wt)

        w

        t

        +

        1

        =

        w

        t

        v

        t

        w_{t+1}=w_t-v_t

        wt+1=wtvt.

        η

        eta

        η表示动量系数,

        g

        (

        w

        t

        )

        gleft(w_tright)

        g(wt),表示损失梯度(t时刻对参数

        w

        t

        w_t

        wt的损失梯度),

        α

        alpha

        α表示学习率。加上动量部分即既考虑当前的梯度,还会将上一次的梯度也加入进来,后可以理解成是在纠正上一次梯度的错误,抑制样本噪声的干扰,如下图所示:
        image-20221121220014605

      • Adagrad优化器(自适应学习率):学习率下降太快可能还没收敛就停止训练了。

      • RmSprop(自适应学习率)

      • Adam(自适应学习率):一阶动量;二阶动量一起控制学习率衰减。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>