计算机视觉与模式识别(CVPR) 期末复习 |
您所在的位置:网站首页 › 视觉与模式识别 › 计算机视觉与模式识别(CVPR) 期末复习 |
2022年CVPR期末考试题
计算机视觉为1-11题,模式识别为12-17题 卷积的性质及证明,卷积的计算 双线性插值,计算例子 双边滤波,原理,效果 六种二维几何变换矩阵具体是什么,及对应的性质 Canny边缘检测,具体步骤,什么是好的边缘(这里我没写,ppt里有不难) Harris角点检测检测,具体步骤,不变性与等变性 相机坐标变换,给出例子计算结果 三维的RANSAC阐述算法过程,计算得到至少一个正常点对概率p(三维和二维的区别就是把n=3) 极点和极限定义,根据基础矩阵求对极限(概念) 给出具体的基础矩阵,给像点求对极线,并求出左右极点 L-K光流估计,当物体移动较大时L-K估计的问题,解决方法Coarse-to-fine(Gauss金字塔) 3个简单选择题,例:多分类选择Softmax函数,二分类选sigmoid函数 最近邻,K近邻 排序题,五个选项,对随机梯度下降法操作顺序排序 给出输入大小,卷积核大小,给出输出的计算公式,计算输出大小 链式求导(流式梯度下降),只有两步非常简单,带sigmoid的计算图 Adam的设计思路和具体计算方法高斯核,中值滤波,双边滤波,fourier变换,频域和空间域的关系,图像变换和逆变换,插值,Gauss金字塔和Laplace金字塔(4题) tiny边缘检测,计算图像梯度,NMS,角点检测(平移不变性,旋转不变性),shift描述子(如何描述平移不变性和旋转不变性),UISIKe(3题) 相机标记,数目视觉,对极几何(4题) 运动场和光流场的区别,光流场反应的运动,光流约束,Gauss大运动转化为小运动(1题) 计算机视觉部分请见PDF: 下面为模式识别部分: 传统分类器 KNN中间空的区域原理,K≠1K\neq 1K=1的情况. 决策边界是两个不同分类区域之间的边界,决策边界可能是有噪声的;它会受到离群点的影响,如何平滑决策边界?使用更多的近邻! 当K>1时,不同类之间可能会出现间隙,这需要用某种方式消除! 贝叶斯分类器贝叶斯规则(贝叶斯公式) 多元高斯分布,确定 x\boldsymbol{x}x 的概率分布 线性分类器打分机制,从三种不同视角查看分类器结果(代数视角,视觉视角,几何视角) 支持向量机打分函数:Hinge损失 多分类的计算结果;交叉熵损失 交叉熵损失 vs SVM损失 深度神经网络如何描述非线性可分问题的解决思路(通过非线性变换) 神经网络作为可学习的特征转换 实现非线性变化的原理:激活函数(Sigmoid, tanh, ReLU)掌握梯度计算结果(用于梯度下降法). 梯度下降法(重点)通过上游梯度计算下游梯度,掌握梯度反向传播原理. 可能考察标量和矢量计算,不会考察矩阵计算. 流式传播可以便于求解梯度,计算速度更快. 其他激活函数的梯度 优化算法数值梯度,解析梯度. 随机梯度下降法(SGD) 动量(Momentum)的定义,掌握Adam算法原理,解释优化的道理. 上述定义中 α\alphaα 称为学习率(步长),两种动量定义: 牛顿动量:使用速度更新到达新的一点,计算这一点的梯度并与速度混合作为当前的更新方向,x~\tilde{x}x~ 为Newton动量中的参数位置,主要因为只想去更新 x~,f(x~)\tilde{x},f(\tilde{x})x~,f(x~) AdaGrad归一化原理:缩放每个参数反比于其所有梯度历史平方值总和的平方根,也称为“参数学习率”或“自适应学习率”。特点:沿着“陡峭”方向的前进受到阻碍; 沿“平坦”方向前进加快 . ws(i)←ws(i−1)+∣∣∇w(i)∣∣22,vi=−α∇w(i)ws(i)w_s^{(i)} \leftarrow w_s^{(i-1)} + ||\nabla w^{(i)}||_2^2,\quad \boldsymbol{v_i} = -\alpha\frac{\nabla w^{(i)}}{\sqrt{w_s^{(i)}}} ws(i)←ws(i−1)+∣∣∇w(i)∣∣22,vi=−αws(i)∇w(i) 其中 w(i)w^{(i)}w(i) 表示第 iii 次更新前的梯度值,ws(i)w^{(i)}_sws(i) 表示第 iii 次更新前全部梯度的二范数平方. RMSProp: “Leaky Adagrad”,带有衰减系数的Adagrad,令衰减系数为 δ∈(0,1)\delta\in (0,1)δ∈(0,1). ws(i)←δws(i−1)+(1−δ)∣∣∇w(i)∣∣22,vi=−α∇w(i)ws(i)w_s^{(i)} \leftarrow \delta w_s^{(i-1)} + (1-\delta)||\nabla w^{(i)}||_2^2,\quad \boldsymbol{v_i} = -\alpha\frac{\nabla w^{(i)}}{\sqrt{w_s^{(i)}}} ws(i)←δws(i−1)+(1−δ)∣∣∇w(i)∣∣22,vi=−αws(i)∇w(i) 自适应矩估计(Adam):RMSProp + Momentum,Adam同时兼顾了动量 v1\boldsymbol{v}_1v1 和RMSProp(动量修正 v2v_2v2)的优点. 将 v1\boldsymbol{v}_1v1 称为一阶矩(向量),v2v_2v2 称为二阶矩(常量) {v1←β1v1+(1−β1)∇wv2←β2v2+(1−β2)∣∣∇w∣∣22⇒v=−αvv2\left\{\begin{aligned} &\boldsymbol{v}_1\leftarrow \beta_1\boldsymbol{v}_1 + (1-\beta_1)\nabla w\\ &v_2\leftarrow \beta_2v_2+(1-\beta_2)||\nabla w||_2^2 \end{aligned}\right. \quad \Rightarrow \quad \boldsymbol{v} = -\alpha\frac{\boldsymbol{v}}{\sqrt{v_2}} {v1←β1v1+(1−β1)∇wv2←β2v2+(1−β2)∣∣∇w∣∣22⇒v=−αv2v 当 t=0t=0t=0 时,算法无法启动 v2v_2v2 几乎为 000,所以还需进行偏置修正(修正从原点初始化的一阶矩和二阶矩的估计): {v1′=v11−β1tv2′=v21−β2t⇒v=−αv′v2′\left\{\begin{aligned} &\boldsymbol{v}_1'= \frac{\boldsymbol{v}_1}{1-\beta_1^t}\\ &v_2'= \frac{v_2}{1-\beta_2^t} \end{aligned}\right. \quad \Rightarrow \quad \boldsymbol{v} = -\alpha\frac{\boldsymbol{v'}}{\sqrt{v_2'}} ⎩⎪⎪⎪⎨⎪⎪⎪⎧v1′=1−β1tv1v2′=1−β2tv2⇒v=−αv2′v′ Adam算法中取beta1 = 0.9, beta2 = 0.999, learning_rate = 1e-3, 5e-4, 1e-4对于很多模型来说是一个好的起始点! Adam 在很多情况下都是不错的默认选择 SGD+Momentum 可以优于Adam,但是需要更多的调整 如果你可以进行完整的批量更新,可以尝试使用 L-BFGS (不要忘记禁用所有噪声源)二阶牛顿法难于计算不考. 卷积神经网络 CNN 卷积的计算卷积核加入填充(padding),步伐(stride)后计算输出结果的大小. 掌握例子: 1x1卷积:堆叠1x1卷积层等价于对每个位置进行 全连接层。 池化的原理池化层: 另外一种下采样(downsmaple)方式,输出结果的大小: RNN的经典架构经典架构:[Conv, ReLU, Pool] x N, flatten, [FC, ReLU] x N, FC [Conv, ReLU, Pool]:称为一个卷积块,由卷积层,非线性函数(ReLU)和池化层组成. flatten:将卷积的输出图像 3×H×W3\times H\times W3×H×W 展平为一维向量. [FC, ReLU]:全连接层(Full connect)与非线性函数(ReLU)构成的全连接块. FC:最后用一个全连接层作为输出层. 归一化原理 批归一化(Batch Normalization)前面一层的输出维度为 DDD,如果是图像 3×H×W3\times H\times W3×H×W,则可以将 H×WH\times WH×W 展平后视为 DDD ,NNN 表示 mini-batch的大小. 估计参数时依赖整个mini-batch的数据,但在测试时不能这样做! 所以在测试时需利用训练数据的平均值进行代替. 批归一化优点: 使得网络更加容易训练! 允许使用更大的学习率,使网络收敛速度加快; 网络对于不同初始化值更加鲁棒; 归一化在训练的过程中起到正则化的作用; 测试时零开销: 可以与卷积层融合!批归一化缺点: 至今为止没有很好的理论上的解释;(仅能解释为减少“内部方差偏移”) 训练和测试上的操作行为不一致: 这是日常代码中一种常见的bug来源!层归一化(Layer Normalization): 实例归一化(Instance Normalization): CNN 网络结构神经网络架构:AlexNet,VGG,GoogleNet,ResNet. 掌握道理,每个神经网络解决了什么问题?通过神经网络结构判别神经网络架构. AlexNet227 x 227 的输入,5 个卷积层,最大池化层,3 个全联接层,ReLU 非线性激活函数. 特点: 多数存储开销是在位置靠前的卷积层; 接近所有参数都在全联接层; 大多数浮点运算计算量出现在卷积层上. VGGVGG-16比AlexNet大得多!VGG 设计规则: 所有卷积层为 3x3 大小,stride为1,pad为1; 所有最大池化层为 2x2 大小,stride为2; 池化层后,通道数加倍. GoogLeNetGoogLeNet为了实现高效性的创新: 减少参数量,存储空间和计算量. Stem network:在开始阶段积极地对输入进行下采样(回想在 VGG-16: 大多数计算集中在初始阶段) Inception 模块:局部单元由多个分支组成,局部结构在网络中重复出现多次,使用 1x1 “Bottleneck” 来在卷积操作前减少通道数. Global Average Pooling(全局均值池化层):不再在最后使用大型FC层! 改为使用 global average pooling 来进行维度压缩,并使用一个liner层计算分数. Auxiliary Classifiers(辅助分类器):使用loss没有将网络的靠后位置训练好:网络太大了,梯度无法精准传播,使用“auxiliary classifiers” 在网络的几个中间节点来对图片分类和接收loss. 但是,使用 BatchNorm 就不需要这个技巧了. ResNet 残差网络Residual Networks(ResNet) 是从一个问题上发现的:更深的网络比前层网络表现差!事实上,深层网络表现的是欠拟合,因为其在训练集上的效果仍然比浅层网络差. 但是理论上深层神经网络可以通过恒等变换来模拟浅层网络,至少比浅层网络效果要好. 所以考虑加入快捷通道,直接让神经网络自动选择是否直接使用恒等变换(复制上一层的结果). 问题:更深的模型更难优化,而且实际中无法得到恒等变换(identity functions)来模拟浅层网络. 解决:改变网络结构使多余的层能够容易的利用 identity functions! 残差层(Residual Block):加入shortcut通道直接跨过卷积层. Residual network 是多个residual blocks的堆叠 瓶颈模块(Bottleneck Block):通过 1x1 的卷积层,减少卷积计算量: 其他特点: 类似 GoogleNet 使用同样的 aggressive stem来在residual block; 类似 GoogLeNet, 没有大型全联接层: 而是在模型末端使用 global average pooling 和一个linear 层;优点: 可以训练非常深的网络; 更深的网络表现比浅层网络好 (同预期中一样); 在所有 ILSVRC 和 COCO 2015 比赛获得第一名; 现在还是广泛应用!比赛总结: VGG: 最多的存储和计算量 Inception-v4: Resnet + Inception:效果最好,利用Resnet加上Inceptio模块达到的. GoogLeNet: 非常高效! AlexNet: 低计算量, 高参数量. ResNet: 简单设计, 比较高效,高准确率.年度 ImageNet在2017后不再举办,改为Kaggle. CNN Architectures 总结: 早期工作 (AlexNet -> ZFNet -> VGG) 表明更大的网络效果更好 GoogLeNet 最开始关注于 efficiency (aggressive stem, 1x1 bottleneck convolutions, global avg pool 代替 FC layers) ResNet 告诉我们如何训练超大型网络– 被 GPU 的内存所限制! ResNet之后: Efficient networks 更加受重视: 我们应该如何在不增加复杂度的基础上提升准确率? 很多tiny networks 聚焦于移动设备: MobileNet, ShuffleNet, etc Neural Architecture Search 自动实现网络设计网络使用建议: 如果非常在意精度,可以使用 ResNet-50 或者 ResNet-101; 如果想要一个高效网络(比如要求实时,或移动端运行) 可以尝试 MobileNets 或者 ShuffleNets.开放性问题:根据题目条件选择网络结构. 人脸识别Viola-Jones人脸识别算法: 使用AdaBoost进行高效的特征选择 矩形特征+积分图像可以用于快速图像分析 快速分类产生级联分类器灰度图像最快速已知人脸检测器, Adaboost(Adaptive Boosting)Adaboost算法关键点: 强(非线性)分类器是由所有弱(线性)分类器的组合构建的。 前一个错误分类的样本将在以后的轮次中得到更多的强调。特征,积分图像 级联处理把二个以上的设备通过某种方式连接起来,能起到扩容的效果就是级联。 语义分割没啥想考的,理解对网络的要求 目标检测上述算法问题在于如果图中存在多个目标时,每张图片具有不同数量的输出值,难以处理. 滑动窗口将 CNN 应用于图像的许多不同裁剪(滑动窗口裁剪结果),CNN 将每个裁剪分类为对象或背景. 提问:考虑边界框的大小为h×w,在大小为H×W的图像中有多少个可能的边界框? 位置x的可能性: W – w + ,位置y的可能性: H – h + 1,全部可能的位置: (W – w + 1) * (H – h + 1) 可能的边界总数: ∑h=1H∑w=1W(W−w+1)(H−h+1)=H(H+1)2W(W+1)2\sum_{h=1}^H\sum_{w=1}^W(W-w+1)(H-h+1) = \frac{H(H+1)}{2}\frac{W(W+1)}{2} h=1∑Hw=1∑W(W−w+1)(H−h+1)=2H(H+1)2W(W+1) 遍历所有可能的区域太慢,所以需要生成候选区域:找到一小组的候选框尽可能地覆盖所有的目标对象;基于启发式:例如寻找类似斑点的图像区域;运行速度相对较快:例如在CPU上能几秒钟地选择性搜索出 2000 个候选区域. 检测评估标准 R-CNNR-CNN(Region-based CNN)是基于区域的CNN. 分为四种: “Slow” R-CNN: 每个区域独立通过CNN Fast R-CNN: 将可区分裁剪应用于共享的图像特征 Faster R-CNN: 利用CNN来计算候选区域 Single-Stage:全卷积检测器深度学习:R-CNN,每个版本解决了什么问题(要非常清楚). 细节:计算IoU,NMS,AP,mAP原理. Transformer比较新,前沿知识,知道原理,问答题借鉴它的思路. |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |