计算机视觉 18 Convolutional Networks2
VGG: Deeper Networks, Regular Design
核心思想:更深,卷积层数更多;标准化模块,卷积有标准化
VGG设计规则:
All conv are 3x3 stride 1 pad 1
All max pool are 2x2 stride 2
After pool, double #channels,在分辨率压缩的同时保持信息量
VGG的5个stages:
Stage 1: conv-conv-pool
Stage 2: conv-conv-pool
Stage 3: conv-conv-pool
Stage 4: conv-conv-conv-[conv]-pool
Stage 5: conv-conv-conv-[conv]-pool
VGG19比VGG16在stage4和5中多一个卷积层
Why 3x3 layers?
标准化,容易加速
多个3x3的卷积核可以形成大卷积核:two 3x3 layers – 5x5 receptive field;three 3x3 layers – 7x7 receptive field
多个3 ...
计算机视觉 17 Convolutional Networks1
Convolutional Neural NetworksReview: Multilayer Perceptions
MLP的层被称为全连接层,层与层之间通过激活函数相连
MLP的第一步是将图像拉成长向量
缺点:没有遵从像素间的关系,没有利用邻域之间关系
Three Important Priors in Vision
平移不变性:左右平移,语义内容保持不变,feature map跟着平移。显然MLP因为拉成长向量,平移后的长向量运算完可能输出不同,因而MLP不具备平移不变性
局部性:局部+权重共享的参数量少,而MLP作为全连接层有全局的感受野,参数量非常大
尺度不变性:尺度改变,语义内容不变;尺度改变会形成层级结构,逐步增加感受野,形成特征金字塔
Convolution Layer
全连接层输出是weight和x矩阵的点乘结果:
卷积层则具有局部性,和局部对应的可以训练的weight(称为kernel)进行点乘,然后让kernel划过每个位置进行运算
卷积层可以理解为局部的权重共享的MLP,因而具有平移不变性(权重不变)
kernel的参数 ...
计算机视觉 16 Back Propagation
Neural Networks as Computational Graphs
有了梯度即可用SGD或AdamW优化器更新梯度训练neutral network,关键问题是如何计算梯度
神经网络可以看作是有向无环计算图
每个节点代表一个函数,每条边代表一个特征
任何神经网络可以画成如下形式的计算图,左侧是输入图像,中间是神经网络而右侧得到损失
Back Propagation
先考虑一个结点:
反向传播:从输出端反传到输入端,计算思路:
先写前向运算的计算图
算forward,并且算出loss
从后往前计算梯度,利用链式法则
可以认为loss函数的上游梯度为1
可以对部分计算进行合并,例如画框的部分可以合并为sigmoid函数,合并的过程又称神经网络编译
Common Patterns in Gradient Flow
+:直接反传
*:反乘
复制:反加
max:沿着大的分支传回,小的置0
Back Propagation: Flat Implementation
在定义前向计算时显式写入后向计算,例如:
Back Propaga ...
计算机视觉 15 Neural Networks
Linear Classifiers的局限性
Linear Classifiers无法解决线性不可分的问题:
Idea #1:将低维特征进行高维非线性的特征变换从而得到高维的线性可分
Idea #2:HoG for Linear Classifier:
将图像分成8x8的区域
对每个区域计算梯度直方图
使用SVM作为分类器
HoG方法可以很好的描述图像内容并且丢弃不重要的内容,对小变化具有鲁棒性
Idea #3:线性分类器的高维特征压缩:提取多个feature图,拼在一起映射到高维空间,再用PCA降维
连接多个图像特征:维度越高越好
使用 PCA 压缩并提取 Fisher 向量以减小维度
使用 SGD 进行一对多 SVM 学习
Neural NetworksSingle-Layer Perceptron
单层感知机SLP无法解决一些非常简单的问题(XOR),点乘完后激活从而完成分类任务
Contributed to the so-called AI winter.(不能解决异或问题)
Multiple Layer Neural Networks ...
计算机视觉 14 Optimization
OptimizationOptimization with Grid Search
均匀采集样本点,遍历样本点遇到损失值更小的就进行更新
123456best, bestScore = None, Inffor d1 in range1: for d2 in range2: w = [d1, d2] if L(w) < bestScore: best, bestScore = w, L(w)
优点:简单,只需要评估模型,对函数没有要求
缺点:计算代价高,高维求值困难
Optimization with Random Search
随机采样,与问题维度无关
123456best, bestScore = None, Inffor iter in range(numIters): w = random(N,1) # sample score = 𝐿(𝒘) # evaluate if score < bestScore: best, bestScore = w, score
...
计算机视觉 13 Image Recognition
Introduction to Recognition
Recognition:从图像中重建语义
Challenges: Semantic Gap(语义鸿沟)
从图像中重建语义,传统编程可能不使用:image可能有遮挡,并且模式不好找
Learn Semantics from Data:训练是隐式的,让神经网络学习某种准则,完成输入到输出的映射
输入:图像,标签
有监督学习:有x有y,目的是学习一个从x到y的函数映射。可以分为两类:
分类问题:预测种类,结果是离散的
回归问题:从图像中预测连续的值
无监督学习:有x无y,目的是了解数据中重要的基础结构或者分布
Linear Regression ModelLinear Regression
总思想:线性回归,最小二乘求解。给定数据data,定义模型并写成点乘形式,定义损失函数。然后拟合误差,使得argmin(Loss(x)),即为训练过程
Solve Linear Regression with Least Squares
问题:我们不太关心训练集的性能;我们想知道模型如何泛化到新数据。 ...
计算机视觉 12 Optical Flow
Optical Flow
光流是图像中亮度模式的变化,也就是颜色的变化,由相机运动、物体运动或照明变化引起
Optical Flow vs. Motion Field
光流并非正相关与运动场,可能出现有光流但是物体静止,也可能出现物体运动但是没有光流
光流和运动场不一致可能导致视觉错觉
Optical Flow vs. Scene Flow
场景流 (Scene flow) 是世界中点的三维运动场
输入:由多个摄像机捕获的动态场景的多个图像
输出:每个点在时间上每个时刻的 3D 形状和完整 3D 运动
光流的应用
Reconstruct Motion from Images
运动是感知的途径,可以帮助理解图像
光学鼠标
对视频进行插帧、编辑
识别微表情,放大运动
声音相机:声音引起物体的轻微振动,根据振动来复原声音
3D重建场景中的运动,找correspondence
Optical Flow Probleminput
输入是多张照片或者视频 I(x,y,c,t)其中c是通道数,x,y,t用于参数化视频
Problem Definitio ...