卷积神经网络CNN(convolutional)
卷积神经网络CNN(convolutional)
卷积运算:原图像*卷积核=新图像,经常用来做边缘检测
人造核:手动指定权重,改善效果
指定核权重为变量,通过反向传播,学习卷积核的权重
补白和步幅决定了卷积后的
补白Padding
- Valid convolution:p = 0
\(n\times n * f\times f -> (n-f+1)\times (n-f+1)\) - Same convolution:n = n
\((n+2p)\times (n+2p) * f\times f -> n\times n\)
得到填充边缘宽度\(p = \frac{f-1}{2}\)
所以一般卷积核大小是奇数
## 步幅strides
s>1,图像也变小
三维卷积
对于RGB三通道图像,nc个滤波器,卷积叠加,得到深度为nc的图像
总结
趋势:缩减图片尺度,增加深度
CNN分类
卷积层Conv:
池化层Pool:减少图片宽度,用卷积核进行特征提取
欠采样(下采样),特征降维,压缩数据和参数,减小过拟合
只有超参数,没有参数
主要分类:
- 最大池化
- 平均池化
全连接层Fc:一般用来输出
总结
- 优势
- 参数共享:将卷积核的参数共享给每组被卷积对象运算
- 稀疏性联系:输出的值只与小部分输入相关
### 特点
CNN从前到后,维度缩减,参数增多
CNN案例
经典CNN
LeNet-5(sigmoid激活,softmax分类)
AlexNet
- VGGNet
残差网络
传统的plain network存在梯度指数现象
为了改善深度网络的梯度爆炸(消失)现象,使深度神经网训练可能
- Residual block
维数不一致的问题,可以通过构建权重矩阵,填充0元素或者其他方法进行适配
1x1 convolution
对image每个像素进行非线性函数映射,通过n个kernel,映射为n个特征,用于缩减图像特征深度
用法,生成中间量,减少运算量
直接5x5卷积
采用1x1卷积中间量,再用5x5卷积
Inception network
Main idea
Inception module
Inception network
- Inception module 的串联
- branches用于在中间预测结果,效果不差
Transfer learning
步骤
- 下载源码,模型,权重参数
- 修改末层结构,softmax分类或者
- 冻结前层参数
- 训练自己模型
Data Augmentation数据增强
可以预先处理,
也可以与训练并行处理
1、形状
- 镜像Mirroring
- 随机裁剪Random Cropping
- 旋转Rotation
- 倾斜Shearing
- 扭曲Local warping
2、色彩Color shifting
- 增减RGB通道值,改变量随机
- PCA,干扰主要元素
目标检测
概述
CV(computer vision)中,目标检测是并列与图像分类的一个重要应用
分类 -> 分类+定位 = 目标检测 -> 多目标检测
- 输出和cost function构造
输出\(Y = [p_c,b_x,b_y,b_h,b_w,c_1,c_2……]\)
包含有没有物体、坐标和物体类别 - cost function
当\(p_c\)=1,计算均方根误差
\(p_c\)= 0,其他的不计算
Landmark Detection
人脸特征标记
姿态特征标记
特征构建Y = \([是不是脸,b_x{1},b_y{1},……,b_x{n},b_{yn}]\)
目标检测几种思路
Sliding windows detection
- 滑窗获取图像
- 传给Classification
- 增大windows size 和 stride 重复1
缺点:
- 小步长,计算量高
- 大步长,计算粗略,精度差
### 用卷积实现Turning FC layer into convolutional layers
用1x1卷积实现权重线性组合
缺点
定位不精确
输出更精确的边界框——YOLO
YOLO算法 you only look once
构造输出Y.shape = (h,w,l)
h是高度图像分割的个数
w是宽度图像分割的个数
l方向是物体定位信息\([p_c,b_x,b_y,b_h,b_w,c_1,c_2……]\)
非极大值抑制
- 低于阈值,直接丢弃
- 找出最大值
- 与最大值重叠区域IoU>0.5,丢弃。多目标检测的话,运行多次IoU算法
Anchor Boxes
重叠物体检测,重建Y
矮胖,瘦长
人脸识别——单样本学习
Verification验证
input: 图片 姓名 140311199402071213
output:是否对应Recognition识别
n个人的数据库
input:图片
output:140311199402071213 of person(如果图片在库里)
相似度函数\(d(img1,img2)\),函数和照片没关系
孪生网络Siamese network
核心思想:NN生成编码,比较不同样本编码的范数
CNN的参数相同,
三重损耗函数 Triple loss
防止NN输出退化解,布置小于0
\(\alpha\) is margin
another相似性函数
风格转换Styler transfer
可视化hidden unit
浅层学习基本特征
深层学习宏观特征
cost function
Main idea: 和两张图片都很像
\(J(G) = \alpha J_{content}(C,G) + \beta J_{style}(S,G)\)
content cost function
Style cost function
\(\lambda\) 是 l 层的权重