深度学习基本概念(1)

1.卷积
原始卷积

  • 原始图像大小\(n*n\),卷积核大小\(f*f\),步长(stride)为s,采用padding操作 feature map的大小可用下面公式来描述:

\[\lfloor\frac{n+2p-f}{s}+1\rfloor*\lfloor\frac{n+2p-f}{s}+1\rfloor \]

  • 不使用Padding:
    • 经过卷积操作图像会变小
    • 边缘和角落只能卷积一次,丢失的信息会很多
    • 对于中心点来说则恰恰相反
  • Padding
    • SAME:意味着p取为\(\frac{f-1}{2}\)
    • VALID:意味着p取为0
  • 3维卷积
    输入图像:\(n\times n \times n_c\),卷积fliter:\(f \times f \times n_c\),特征层:

    \[(\frac{n+2p-f}{s}+1 )\times (\frac{n+2p-f}{s}+1) \times n_c' \]

    这里的\(n_c'\)是filter的个数
    Note:Tensorflow与Ng的记法不同
    • SAME:

    \[ \lceil \frac{n}{s} \rceil \]

    • VALID:

    \[ \lceil \frac{n-f+1}{s} \rceil \]

depwise_conv:
与原始卷积不同,先分开对图像的每一个维度进行卷积,然后用1*1的卷积进行融合,具体说来:
  假设输入卷积层维度为:\((1,D_F,D_F,M)\),用\((D_k,D_k,M,N)\)的filter进行原始卷积操作(步长为1,Padding = SAME),输出为\((1,D_F,D_F,N)\),运算复杂度:\(D_F \times D_F \times N \times D_k \times D_k \times M\).
  反之,运用depwise_conv+pointwise_conv组成的depthwise separabale filter,将原始卷积分为两步:
  depthwise:\((1,D_F,D_F,M)\)经过\((1,D_K,D_K,M)\),输出特征为\((1,D_F,D_F,M)\),运算复杂度:\((D_F \times D_F \times M \times D_K \times D_K)\)
  pointwise:\((1,D_F,D_F,M)\)经过\((1,1,M,N)\),输出为\((1,D_F,D_F,N)\),运算复杂度:\(D_F \times D_F \times N \times M\).
  相比较而言,计算量对比为:

\[\frac{D_F \times D_F \times M \times D_K \times D_K+D_F \times D_F \times N \times M}{D_F \times D_F \times N \times D_K \times D_K \times M} = \frac{1}{N}+\frac{1}{D_K^2} \]

posted @ 2019-02-20 21:16  __Blog  阅读(272)  评论(0编辑  收藏  举报