convolutional neural network 课程笔记

一、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) 目标检测方法小结

传统方法步骤:

  1. sliding window框出候选区域;
  2. 提取候选区域特征,如HOG特征等;
  3.  分类器进别,如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)样例。

 

 

 

posted @ 2018-07-25 16:36  smartweed  阅读(620)  评论(0编辑  收藏  举报