吴恩达深度学习课程要点和概念记录三(卷积神经网络部分)

本文介绍了卷积神经网络的基础,包括卷积在边缘检测中的应用,过滤器、padding和步长的概念,以及卷积在网络中的线性组合和激活函数作用。还探讨了卷积层、池化层和全连接层的作用,以及为什么使用卷积层以减少参数和避免过拟合。进一步讨论了深度学习模型如ResNet,1x1卷积,Inception网络,数据增强,目标检测,关键特征点定位,人脸识别和神经风格迁移。最后提到了1D数据的卷积处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

卷积神经网络基础

用于边缘检测的卷积——卷积神经网络的前世

  • 计算机视觉中,传统的卷积一般用于边缘检测,如以下卷积能够检测垂直边缘。
    在这里插入图片描述

  • 在真实图片中,边缘不是严格垂直或者严格水平的,此时需要学习一个卷积,来对不规则的边缘进行检测,因此产生了卷积神经网络。

  • 一个卷积,在卷积神经网络中,称为filter,即过滤器。

  • 偏移量 b b b:一次卷积操作,相当于对于图片中的特征进行线性组合,其中大部分特征对应的参数为0,在卷积操作之后,对于得到的结果加上偏移量 b b b

  • 每个卷积都对应一个偏移量 b b b, 一层神经网络中多个卷积,再加偏移量操作,相当于神经网络中的线性组合操作:
    Z : = W x + b Z := Wx + b Z:=Wx+b
    然后,再使用Relu激活函数,即:
    A : = R e l u ( Z ) A := Relu(Z) A:=Relu(Z)
    A A A作为该层神经网络的输出,输入到下一层神经网络中。

过滤器与Padding

  • 一张 n ∗ n n*n nn的图片,若用 f ∗ f f*f ff的过滤器,处理步长为 s s s,那么操作后图片的大小
    ⌊ n − f s + 1 ⌋ \lfloor\frac{n-f}{s} + 1\rfloor snf+1

  • 如果需要令卷积后的图片与原图大小一致,那么需要进行padding,向图片周围分别补充 p p p个0像素点,卷积后的图片大小
    ⌊ n + 2 p − f s + 1 ⌋ \lfloor\frac{n + 2p -f}{s} + 1\rfloor sn+2pf+1
    令上述数值与 n n n相等,且 s = 1 s=1 s=1,有:
    p = f − 1 2 p = \frac{f-1}{2} p=2f1
    因此 f f f最好是单数。

  • n通道卷积操作:,应当采用 f × f × n f\times f \times n f×f×n的卷积进行操作,默认步长 s = 1 s=1 s=1,最终得到一张 ⌊ ( n − f + 1 ) ⌋ × ⌊ ( n − f + 1 ) ⌋ × 1 \lfloor(n-f+1)\rfloor \times \lfloor(n-f+1)\rfloor \times 1 (nf+1)×(nf+1)×1的结果

  • 在卷积神经网络中,对于第 l l l层的符号表示有如下规定:
    f i l t e r s i z e : f [ l ] p a d d i n g : p [ l ] s t r i d e : s [ l ] n u m b e r o f f i l t e r s : n c [ l ] filter size: f^{[l]}\\ padding: p^{[l]}\\ stride: s^{[l]}\\ number of filters: n_c^{[l]} filtersize:f[l]padding:p[l]stride:s[l]numberoffilters:nc[l]

  • l l l层过滤器的通道数是 n c [ l − 1 ] n_c^{[l-1]} nc[l1],对于第 l l l层参数有如下表示:
    输入维度: n h [ l − 1 ] × n w [ l − 1 ] × n c [ l − 1 ] n_h^{[l-1]} \times n_w^{[l-1]} \times n_c^{[l-1]} nh[l1]×nw[l1]×nc[l1]
    过滤器维度: f [ l ] × f [ l ] × n c [ l − 1 ] f^{[l]} \times f^{[l]} \times n_c^{[l-1]} f[l]×f[l]×nc[l1]
    权重维度: f [ l ] × f [ l ] × n c [ l − 1 ] × n c [ l ] f^{[l]} \times f^{[l]} \times n_c^{[l-1]} \times n_c^{[l]} f[l]×f[l]×nc[l1]×nc[l]
    偏移量维度: 1 × 1 × n c [ l ] 1 \times 1 \times n_c^{[l]} 1×1×nc[l]
    输出维度: n h [ l ] × n w [ l ] × n c [ l ] n_h{[l]} \times n_w^{[l]} \times n_c^{[l]} nh[l]×nw[l]×nc[l]

  • 简单的卷积神经网络包括:卷积层、池化层、全连接层

  • 卷积层(CONV):过滤器+偏移量+激活函数

  • 池化层(POOL):分为max poolingaverage pooling,跟滤波器操作类似,有size(大小)、stride(步长),用到padding。作用是减小图片的大小,提取显著特征,减少噪音

  • 全连接层(FC):普通的神经网络层

  • 为什么使用卷积:相比普通的神经网络层,卷积层参数明显要少,并且特征检测器的参数是可以重用的。也就是说,在图片一个位置上找到特征也能在其他位置上找到特征。同时由于参数较少,避免了过拟合现象。

深度卷积模型案例

复杂深度卷积模型例子

LeNet-5, AlexNet, VGG-16

残差网络(Residual Network):

在这里插入图片描述
普通网络随着深度增加,Training Error不降反升。
残差网络在深度逐渐增加时,仍能够继续实现对Training Error的下降。

原因:残差网络能够有效学习恒等式,因此即使网络深度增加,残差网络仍然能够学习到一个相对简单的网络结构。普通网络过深,每一层如果都强行采用非线性函数,必然加深网络复杂度。

1 × 1 1 \times 1 1×1 卷积

相当于每个像素点的所有通道上的特征值进行线性组合,与全连接层类似,不同的是,全连接层需要将输入的所有像素的所有值缕成一维向量,而 1 × 1 1\times1 1×1卷积则是将2维平面上所有像素点对应的特征向量分别进行卷积操作。

Inception网络

网络结构作为一种超参数,调试网络结构消耗大量时间,因此研究者提出Inception网络,让神经网络自己学习最优化的网络结构
在这里插入图片描述

数据增强(data augmentation)

  • 图片镜像、图片裁剪
  • 颜色转换:RGB通道颜色微调

目标检测

目标检测用以下维度来描述图片中物体的位置和种类,基于以下y值,设计损失函数

  • P c P_c Pc: 是否有物体
  • b x b_x bx: 物体中心点x坐标,百分比
  • b y b_y by: 物体中心点y坐标,百分比
  • b h b_h bh: 物体的高度,百分比
  • b w b_w bw: 物体的宽度,百分比
  • c a t e g o r y category category: 物体的类别,根据类别数量而定

目标检测的方法有:

  • 滑动窗口算法
  • 使用卷积并行实现滑动窗口算法
  • Yolo:将图片划分为多个网格区域(例如 3 × 3 3 \times 3 3×3 19 × 19 19 \times 19 19×19),在每个网格中预测物体中心点是否存在。使用非最大值抑制方法去掉多余的bounding box。方法是计算IOU(交并比),通过对比交并比,去掉次优的结果。

关键特征点定位

在物体上标记特征点,将这些特征点的坐标作为标签值,使用卷积神经网络进行学习,就能够在其他图片上标记类似特征点。

人脸识别

  • 人脸识别:输入一张人脸,判断人脸是否是K个样本中的一个,属于一对多问题

  • 人脸验证:输入一张人脸,判断是否与模板是否属于同一个人,属于1对1问题

  • One-shot Learning:训练样本中,每个人人脸只有一张,样本较少,不适合采用softmax方法

  • Siamese网络:不直接对输入图片进行分类,而是对输入图片与模板图片的相似性进行表征。要保证输入图片与对应模板的相似性要高于该图片与无关模板的相似性。

    具体方法如下:

    1. Triplet loss: 基于卷积神经网络,计算图片的特征表示,基于该表示,计算两个图片的距离,例如基于L2距离的计算方法:
      d = ∣ ∣ f ( x ( i ) ) − f ( x ( j ) ) ∣ ∣ 2 d = ||f(x^{(i)}) - f(x^{(j)})||_2 d=f(x(i))f(x(j))2

      l o s s loss loss函数定义,其中 d p d_p dp表示图片与对应模板的距离, d n s d_ns dns表示图片与
      l o s s = m a x ( d p − d n + α , 0 ) loss = max(d_p - d_n + \alpha, 0) loss=max(dpdn+α,0

    2. 基于二分类的相似度学习方法: 基于卷积神经网络,计算图片的特征表示,给定两个图片的特征表示,直接将其转化为二分类问题。以下公式中, k k k表示两个图片在基于神经网络层的特征表示下的第 k k k个分量。
      x k = ∣ ∣ a k ( i ) − a k ( j ) ) ∣ ∣ x_k = ||a^{(i)}_k - a^{(j)}_k)|| xk=ak(i)ak(j))

神经风格迁移

神经风格迁移代价函数包括两部分:内容代价风格代价

内容代价:被建模为内容图片 C C C与生成图片 G G G的特征表示之间的欧几里得距离。

风格代价:多个通道的卷积结果,可以类比油画的不同图层,西方油画的创作方式就是按照图层的方式逐渐添加颜料。因此,利用不同通道之间的correlation表征图片的风格。
J = α J c o n t e n t ( C , G ) + β J s t y l e ( S , G ) J c o n t e n t ( C , G ) = 1 2 ∣ ∣ a [ l ] C − a [ l ] G ∣ ∣ 2 G k k ′ = ∑ ∑ a i j k a i j k ′ J s t y l e [ l ] ( S , G ) = 1 2 n H [ l ] n W [ l ] n C [ l ] ∑ ∑ ∣ ∣ G k k ′ [ l ] S − G k k ′ [ l ] G ∣ ∣ 2 J s t y l e [ l ] ( S , G ) = ∑ λ J s t y l e [ l ] ( S , G ) J = \alpha J_{content}(C, G) + \beta J_{style}(S, G) \\ J_{content}(C,G) = \frac{1}{2} ||a^{[l]C} - a^{[l]G}||^2 \\ G_{kk^{'}} = \sum \sum a_{ijk}a_{ijk^{'}} \\ J_{style}^{[l]}(S, G) = \frac{1}{2n_H^{[l]} n_W^{[l]} n_C^{[l]}} \sum \sum || G_{kk^{'}}^{[l]S} - G_{kk^{'}}^{[l]G}||^2\\ J_{style}^{[l]}(S,G) = \sum \lambda J_{style}^{[l]}(S, G) J=αJcontent(C,G)+βJstyle(S,G)Jcontent(C,G)=21a[l]Ca[l]G2Gkk=aijkaijkJstyle[l](S,G)=2nH[l]nW[l]nC[l]1Gkk[l]SGkk[l]G2Jstyle[l](S,G)=λJstyle[l](S,G)

1 D数据

采用 n × 1 n \times 1 n×1过滤器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值