笔记 - 卷积神经网络设计 理论部分(一)

思考

1. 卷积神经网络如何减少参数量和计算量
  • relu激活函数
  • dropout
  • 使用1×1卷积核进行减少参数量和计算量
  • 对标准卷积的拆分(使用深度可分离卷积)
2. 各类经典卷积网络的特点
3. 卷积计算量的计算
4. 注意区分1x1 PW conv 和 1x1 GConv 

经典卷积网络

LetNet

笔记 - 卷积神经网络设计 理论部分(一)_第1张图片

通常 简单的分类网络结构:
输入 - 卷积池化(层数未定) - 全连接(层数未定) - 输出

AlexNet

笔记 - 卷积神经网络设计 理论部分(一)_第2张图片

两条分支是因为当时硬件资源有限,将网络分开上下两部分进行训练

笔记 - 卷积神经网络设计 理论部分(一)_第3张图片

  • Relu
1.计算速度更快 (相比于有指数运算的激活函数)
2. x>0部分不会出现梯度消失
3. 作为非饱和型函数,可以更好地表现出x对y的影响
  • LRN
局部归一化

不过听说作用不大,目前几乎不使用了
  • dropout
一般在全连接层使用

但听说也有在卷积层使用的,然后用贝叶斯进行解释

笔记 - 卷积神经网络设计 理论部分(一)_第4张图片

实验证明复杂模型的有效性

ZFNet

笔记 - 卷积神经网络设计 理论部分(一)_第5张图片

将AlexNet中 11×11的卷积核设置成7×7,4步长设置成2步长

用更小的卷积核以及更小的步长提取出了更好地特征

笔记 - 卷积神经网络设计 理论部分(一)_第6张图片

浅层特征 - 轮廓 纹理信息
深层特征 - 语义信息

VGG

笔记 - 卷积神经网络设计 理论部分(一)_第7张图片

80%的参数量集中在FC层

笔记 - 卷积神经网络设计 理论部分(一)_第8张图片

网络设计更规范化

笔记 - 卷积神经网络设计 理论部分(一)_第9张图片

GoogleNet

笔记 - 卷积神经网络设计 理论部分(一)_第10张图片
笔记 - 卷积神经网络设计 理论部分(一)_第11张图片

使用1×1卷积核进行计算量压缩,参数减少

笔记 - 卷积神经网络设计 理论部分(一)_第12张图片
笔记 - 卷积神经网络设计 理论部分(一)_第13张图片

进一步对卷积核进行拆分

eg:3×3 -> 1x3 和 3x1 
好处:减少参数量计算量,增加深度及非线性变化
注意:在中间层使用比较好

笔记 - 卷积神经网络设计 理论部分(一)_第14张图片

在输入层,由于通道数比较少,所以可以采用稍大的点的卷积核,如:5x5,7x7
但中间层通道数比较深,一般采用3x3和1x1 (在Inception结构中使用1×3,3×1)

ResNet

笔记 - 卷积神经网络设计 理论部分(一)_第15张图片

使用averge pooling替代全连接 (how to get there)

注意:resnet占用缓存可能比较多

深度学习| 用global average pooling 代替最后的全连接层
笔记 - 卷积神经网络设计 理论部分(一)_第16张图片

写出resnet的反向传播具体过程

笔记 - 卷积神经网络设计 理论部分(一)_第17张图片
笔记 - 卷积神经网络设计 理论部分(一)_第18张图片
笔记 - 卷积神经网络设计 理论部分(一)_第19张图片
笔记 - 卷积神经网络设计 理论部分(一)_第20张图片


笔记 - 卷积神经网络设计 理论部分(一)_第21张图片


轻量级卷积网络

笔记 - 卷积神经网络设计 理论部分(一)_第22张图片
笔记 - 卷积神经网络设计 理论部分(一)_第23张图片

Expand层有点Inception结构的味道
不同size的卷积核为1x1 和 3x3

笔记 - 卷积神经网络设计 理论部分(一)_第24张图片
笔记 - 卷积神经网络设计 理论部分(一)_第25张图片
笔记 - 卷积神经网络设计 理论部分(一)_第26张图片

分组卷积 :
将通道分组进行卷积(减少了每个卷积核的通道数)

缺点:
单纯的分组卷积无法学习到特征图之间的关系
  • 引入了深度可分离卷积(每个通道为一组的分组卷积 + 点卷积 [ 也就是1x1卷积 ] )

对深度可分离卷积、分组卷积、扩张卷积、转置卷积(反卷积)的理解
笔记 - 卷积神经网络设计 理论部分(一)_第27张图片

使用点卷积完成跨通道信息整合

为什么1×1卷积能够实现跨通道的交互和信息的整合至关重要

笔记 - 卷积神经网络设计 理论部分(一)_第28张图片

N表示输出通道的大小

笔记 - 卷积神经网络设计 理论部分(一)_第29张图片

很多芯片对分组卷积支持不是特别好是什么意思
++++++++++++++++++++++++++++++++
硬件层面上的不支持怎么理解
eg:某些操作gpu不支持,cpu支持

笔记 - 卷积神经网络设计 理论部分(一)_第30张图片

mobile net v2 PW后面没接非线性变化,减少对信息的破坏

笔记 - 卷积神经网络设计 理论部分(一)_第31张图片
笔记 - 卷积神经网络设计 理论部分(一)_第32张图片

shuffle不是指随机的打乱
而是按照一定的顺序将特征图映射到不同位置
分组卷积与深度卷积最大的不同就是分组的划分不同
深度卷积的分组数等于输入通道数
这样的话,逐点分组卷积确实也有通道融合的计算

点态组卷积(pointwise group convolution)和通道随机混合(channel shuffle)
万字长文带你看尽深度学习中的各种卷积网络
笔记 - 卷积神经网络设计 理论部分(一)_第33张图片
笔记 - 卷积神经网络设计 理论部分(一)_第34张图片
笔记 - 卷积神经网络设计 理论部分(一)_第35张图片
笔记 - 卷积神经网络设计 理论部分(一)_第36张图片

shufflenet v2 果断恢复到正常1x1卷积(取消了逐点分组卷积)

这里估计涉及到相关卷积运算硬件层面是怎么完成的

笔记 - 卷积神经网络设计 理论部分(一)_第37张图片
笔记 - 卷积神经网络设计 理论部分(一)_第38张图片

很多轻量级网络都采用了跳连

多分支卷积网络

笔记 - 卷积神经网络设计 理论部分(一)_第39张图片

度量问题?度量学习?

Metric Learning——度量学习
度量学习 度量函数 metric learning deep metric learning 深度度量学习
笔记 - 卷积神经网络设计 理论部分(一)_第40张图片
笔记 - 卷积神经网络设计 理论部分(一)_第41张图片

学习计算出两张图片的相似度

笔记 - 卷积神经网络设计 理论部分(一)_第42张图片
笔记 - 卷积神经网络设计 理论部分(一)_第43张图片
笔记 - 卷积神经网络设计 理论部分(一)_第44张图片
笔记 - 卷积神经网络设计 理论部分(一)_第45张图片

直观含义是计算 当前照片与相似的图片的距离尽可能小,与不相似的图片的距离尽可能大

问题是具体实现如何完成?
Anchor,Positive,Negative如何准备
...

笔记 - 卷积神经网络设计 理论部分(一)_第46张图片

能区分是否是同一个人

笔记 - 卷积神经网络设计 理论部分(一)_第47张图片

loss 也更复杂了
引入了两个负例,进一步缩小了类内距离
体现在loss上 d(a,p)  -  d(n1, n2) 
难道是要同正例之间的距离要小于同负例之间的距离?

笔记 - 卷积神经网络设计 理论部分(一)_第48张图片


笔记 - 卷积神经网络设计 理论部分(一)_第49张图片

  • 注意力机制

笔记 - 卷积神经网络设计 理论部分(一)_第50张图片

  • 在对特征图元素加权
    笔记 - 卷积神经网络设计 理论部分(一)_第51张图片

感觉计算量挺大的

  • 对通道进行加权
    笔记 - 卷积神经网络设计 理论部分(一)_第52张图片

模型压缩

笔记 - 卷积神经网络设计 理论部分(一)_第53张图片
笔记 - 卷积神经网络设计 理论部分(一)_第54张图片

  • eg:某些权重为0的连接就不要了
    笔记 - 卷积神经网络设计 理论部分(一)_第55张图片
    笔记 - 卷积神经网络设计 理论部分(一)_第56张图片
    笔记 - 卷积神经网络设计 理论部分(一)_第57张图片
有点格式转换的味道
记录浮点转成整型的公式,对整型进行操作,最后再转换成浮点输出

笔记 - 卷积神经网络设计 理论部分(一)_第58张图片

用大网络的输出给小网络训练,喵喵喵??暂时没有想通使用模型的过程

你可能感兴趣的:(AI,深度学习)