Home
avatar

Tolshao

卷积神经网络CNN(convolutional)

卷积神经网络CNN(convolutional)

卷积运算:原图像*卷积核=新图像,经常用来做边缘检测 人造核:手动指定权重,改善效果 -w615

指定核权重为变量,通过反向传播,学习卷积核的权重 补白和步幅决定了卷积后的

补白Padding

  • Valid convolution:p = 0 n×nf×f>(nf+1)×(nf+1)n\times n * f\times f -> (n-f+1)\times (n-f+1)
  • Same convolution:n = n (n+2p)×(n+2p)f×f>n×n(n+2p)\times (n+2p) * f\times f -> n\times n得到填充边缘宽度p=f12p = \frac{f-1}{2}所以一般卷积核大小是奇数

步幅strides

s>1,图像也变小 -w600

三维卷积

对于RGB三通道图像,nc个滤波器,卷积叠加,得到深度为nc的图像 -w710

总结

-w697

趋势:缩减图片尺度,增加深度

-w693

CNN分类

卷积层Conv:

-w695

池化层Pool:减少图片宽度,用卷积核进行特征提取

采样(下采样),特征降维,压缩数据和参数,减小过拟合 只有超参数,没有参数 主要分类:

  • 最大池化
  • 平均池化

-w730

全连接层Fc:一般用来输出

-w743 -w732 -w661

总结

  • 优势
  1. 参数共享:将卷积核的参数共享给每组被卷积对象运算
  2. 稀疏性联系:输出的值只与小部分输入相关

特点

CNN从前到后,维度缩减,参数增多

CNN案例

经典CNN

  • LeNet-5(sigmoid激活,softmax分类) -w767

  • AlexNet

-w772

  • VGGNet -w775

残差网络

传统的plain network存在梯度指数现象 -w596

为了改善深度网络的梯度爆炸(消失)现象,使深度神经网训练可能

  • Residual block -w777

-w770 维数不一致的问题,可以通过构建权重矩阵,填充0元素或者其他方法进行适配

-w723

1x1 convolution

对image每个像素进行非线性函数映射,通过n个kernel,映射为n个特征,用于缩减图像特征深度 -w662

用法,生成中间量,减少运算量

直接5x5卷积 -w576 采用1x1卷积中间量,再用5x5卷积 -w685

Inception network

Main idea

-w667

Inception module

-w678

Inception network

  • Inception module 的串联
  • branches用于在中间预测结果,效果不差 -w678

Transfer learning

步骤

  1. 下载源码,模型,权重参数
  2. 修改末层结构,softmax分类或者
  3. 冻结前层参数
  4. 训练自己模型

Data Augmentation数据增强

可以预先处理, 也可以与训练并行处理

1、形状

  • 镜像Mirroring
  • 随机裁剪Random Cropping
  • 旋转Rotation
  • 倾斜Shearing
  • 扭曲Local warping

2、色彩Color shifting

  • 增减RGB通道值,改变量随机
  • PCA,干扰主要元素

目标检测

概述

CV(computer vision)中,目标检测是并列与图像分类的一个重要应用 分类 -> 分类+定位 = 目标检测 -> 多目标检测 -w788

  • 输出和cost function构造 输出Y=[pc,bx,by,bh,bw,c1,c2]Y = [p_c,b_x,b_y,b_h,b_w,c_1,c_2……]包含有没有物体、坐标物体类别
  • cost function 当pcp_c=1,计算均方根误差 pcp_c= 0,其他的不计算

Landmark Detection

人脸特征标记 姿态特征标记 特征构建Y = [是不是脸,bx1,by1,,bxn,byn][是不是脸,b_x{1},b_y{1},……,b_x{n},b_{yn}]

目标检测几种思路

Sliding windows detection

  1. 滑窗获取图像
  2. 传给Classification
  3. 增大windows size 和 stride 重复1

缺点:

  • 小步长,计算量高
  • 大步长,计算粗略,精度差

用卷积实现Turning FC layer into convolutional layers

用1x1卷积实现权重线性组合 -w670

-w669

缺点

定位不精确

输出更精确的边界框——YOLO

YOLO算法 you only look once 构造输出Y.shape = (h,w,l) h是高度图像分割的个数 w是宽度图像分割的个数 l方向是物体定位信息[pc,bx,by,bh,bw,c1,c2][p_c,b_x,b_y,b_h,b_w,c_1,c_2……]-w668

非极大值抑制

  1. 低于阈值,直接丢弃
  2. 找出最大值
  3. 与最大值重叠区域IoU>0.5,丢弃。多目标检测的话,运行多次IoU算法

-w671

Anchor Boxes

重叠物体检测,重建Y 矮胖,瘦长 -w673

人脸识别——单样本学习

  • Verification验证 input: 图片 姓名 140311199402071213 output:是否对应

  • Recognition识别 n个人的数据库 input:图片 output:140311199402071213 of person(如果图片在库里)

相似度函数d(img1,img2)d(img1,img2),函数和照片没关系

孪生网络Siamese network

核心思想:NN生成编码,比较不同样本编码的范数 CNN的参数相同, -w663

三重损耗函数 Triple loss

防止NN输出退化解,布置小于0 α\alphais margin -w662

another相似性函数

-w413

-w672

风格转换Styler transfer

-w670

可视化hidden unit

浅层学习基本特征 深层学习宏观特征 -w667

cost function

Main idea: 和两张图片都很像 J(G)=αJcontent(C,G)+βJstyle(S,G)J(G) = \alpha J_{content}(C,G) + \beta J_{style}(S,G)

-w682

content cost function

-w698

Style cost function

-w603 λ\lambda是 l 层的权重 -w468

卷积1D和3D形式

1D形式

-w707

3D形式

-w695

深度学习 CNN 卷积神经网络