一、CNN基础
(1)CNN在CV方面的应用
image classification(图像识别)、object detection(目标检测)、neural style transfer(风格迁移)等。
(2) CNN
卷积层、池化层(maxpooling最常见)、全连接层
(3) Lenet-5参数数量计算:
(4) CNN 每一层输入输出feature map大小
各个参数的维度:
(5) CNN优势
减少参数数量: 参数共享 & 稀疏连接
(6) 训练方法
梯度下降优化
二、梯度下降与反向传播
CNN正向传播过程:
Z = conv(A_prev, W, b)
A = activation(Z)
反向传播求导:
dZ 已知:
其中dZ 可以通过池化层反向传播用dA计算。
三、CNN进展
(1)几种经典CNN结构
(2)Resnet
意义:
如果已经达到最优,继续加深网络不会降低网络的性能。
(3)1*1卷积层
Resnet中skip connection层与曾之间feature map数量不匹配时,使用1*1卷积层进行通道数量降维和升维。
(4) GoogleNet- Inception network
使用1*1卷积层进行通道整合和特征数降维
四、目标检测
(1)输出标签表示形式
(2)使用卷积层实现 sliding window
(3)评估定位精确程度
Intersection over Union
(4)非极大抑制(non-max suppression)
(5) anchor box
多目标检测,输出增加多目标分量
(6) 目标检测方法小结
传统方法步骤:
- sliding window框出候选区域;
- 提取候选区域特征,如HOG特征等;
- 分类器进别,如SVM等。
传统方法: DPM(Deformable Part Model),HOG+SVM,检测速度较慢。
深度学习方法:代表方法有R-CNN (Region-based Convolutional Neural Networks)和 YOLO。R-CNN是基于区域的卷积神经网络,结合Region Proposal和CNN,YOLO将图片分为S*S分区,每个分区检测中心点位于该分区的目标。其他方法包括SPP-net、Fast R-CNN、Faster R-CNN、R-FCN、SSD等
基于深度学习的目标检测方法大致分为两类:基于Region Proposal的和端到端(end-to-end)的,前者包括R-CNN、SPP-net、Fast R-CNN、Faster R-CNN、R-FCN,后者包括YOLO、SSD。
五、Siamese network
(1) one-shot learning & Siamese network
样本很少的情况, 类似于 knn 问题,关键在于找到相似度衡量方式
Siamese network是一种相似性度量方法,用于处理类别数多,但每个类别的样本数量少的情况的识别、分类等问题。主要思想是通过一个函数将输入图像映射到目标空间,在目标空间使用简单的距离(欧式距离等)进行相似度比较。在训练阶段,最小化来自相同类别的一对样本的损失函数值,最大化来自不同类别的一堆样本的损失函数值。
(2)triplet loss
Triplet Loss是一种损失函数,用于训练差异性较小的样本,数据包括锚(Anchor)、正(Positive)样例、负(Negative)样例。