深度学习三部曲
step1:搭建神经网络结构
step2:找到一个合适的损失函数
step3:找到一个合适的优化函数,更新参数
传统神经网络VS卷积神经网络
传统神经网络能用到计算机视觉上吗?为什么还需要卷积神经网络?
- 全连接网络处理图像的问题,参数太多。比如一个1000×1000的图片,如果使用全连接层需要10001000hidden units个参数
- 卷积神经网络的解决方式
(1)局部关联:全连接是一个神经元和图片全部有关系,而卷积是和一个局部块儿(即一个kernalSize大小的块)
(2)参数共享:对比全连接和卷积神经网络,一个1000×1000图片,全连接需要参数1000×1000hidden units,而卷积需要(kernal_w×kernal_h+1)×hidden units少了很多参数
卷积神经网络结构
卷积层
卷积操作,下图表示很清楚,两个3*3的kernal。最后output左上角的那个1=(1+ -1 +0 )+1
关于卷积操作后的特征图计算
n
=
⌊
n
+
2
p
−
f
s
+
s
⌋
n= ⌊ \frac {n+2p-f}{s} +s ⌋
n=⌊sn+2p−f+s⌋
池化层
作用:保留了主要特征的同时减少参数和计算量,防止过拟合,提高模型泛化能力
特点:一般位于卷积层和卷积层之间,全连接层与全连接层之间
类型:
- max pooling 最大值池化
- average pooling 平均池化
- Global Average Pooling 全局池化层:在yolo中见到,就是对特征图每层全部数值求平均,而不是一个kernal size内
全连接层
特点:
- 两层之间所有神经元都有权重链接
- 通常全连接层在卷积神经网络尾部
- 全连接层参数量通常最大