计算机视觉是一门让计算机学会“看”的学科,研究如何自动理解图像和视频中的内容
1960-1980 边缘检测
1990-2000 统计机器学习与模式识别(以人工设计特征算子为主导)
2006-2010 ImageNet诞生
2012-至今 深度学习时代
1、提供统一先进的底层架构
2、覆盖计算机视觉众多方向
3、提供最经典、最前沿的算法支持
4、提供统一的基准和开箱即用的工作
OpenMMLab2.0特性:
通用:
OpenMMLab2.0架构提供了强大的训练器Runner2.0:负责构建模型、数据等组件,各算法库构造Runner即可;
统一:
1、模块抽象,清理了函数式定义,在MMEngine、MMCV中增加模块或模块方法;
2、训练流程,统一20多个算法任务的训练流程,支持自监督、半监督、少样本训练;
3、数据接口,N个算法库,一套接口定义;多模态、多任务训练的统一接口;半监督、自监督、少样本学习的统一接口。
灵活:
1、统一信息交流渠道;
2、优化和数据增强策略动态调整;
3、任意位置信息能进行可视化分析。
分类问题
1、线性分类器:
h w , b ( x ) = w T x + b = ( w 1 , w 2 , … , w d , b ) ( x 1 x 2 … x d 1 ) h_{w, b}(x)=w^{\mathrm{T}} x+b=\left(w_{1}, w_{2}, \ldots, w_{d}, b\right)\left(\begin{array}{c} x_{1} \\ x_{2} \\ \ldots \\ x_{d} \\ 1 \end{array}\right) hw,b(x)=wTx+b=(w1,w2,…,wd,b) x1x2…xd1
其中权重组成的向量为分界面的法向量,线性分类器组成感知器,利用分错样本对权重进行修正:
w ← w + α x i y i w\leftarrow w+\alpha x_i y_i w←w+αxiyi
2、神经网络
添加非线性激活函数,使其能够解决非线性分类问题,堆叠多层即为多层感知器,单一分类则结果为一个输出即可;若多分类任务,则激活函数使用softmax,保证每个类别输出大于0,输出概率和为1
softmax ( x ) i = e x i ∑ j = 1 n e x j \operatorname{softmax}(x)_{i}=\frac{e^{x_{i}}}{\sum_{j=1}^{n} e^{x_{j}}} softmax(x)i=∑j=1nexjexi
神经网路的训练,即找到最好的可学习参数值,其流程为:计算样本的损失 -> 计算样本损失的梯度 -> 根据梯度信息更新参数
1、loss – 衡量神经网络的性能
交叉熵损失 Cross-Entropy Loss 输入 P P P为 s o f t m a x softmax softmax概率输出, y y y为类别真值
L ( P , y ) = − l o g P y L(P,y)=-logP_y L(P,y)=−logPy
2、梯度下降算法
基于梯度下降算法寻找最优参数,即沿着损失函数曲面的负梯度方向下降
3、梯度计算
复合函数求导的链式法则
问题与改进:
1、随机梯度下降,每次选取一部分样本,梯度取均值来计算;
2、优化器,Momentum,梯度计算时,保留一定上一步的移动,避免陷入局部极小值和鞍点;
3、自适应优化器,Adam;
4、欠拟合、过拟合、拟合,与模型参数量与数量之间关系有关;
5、早停,当验证集的分类精度达到最值时,停止训练,防止过拟合;
对于图像,卷基层输入输出之间的连接仅存在于局部空间,且连接的权重在不同输出单元之间是共享的;
卷积核类似于滤波器,将图像过滤成不同特征的图像,卷积核越多则输出的特征数则越多,即通道越多;
卷积的变形(填充、步长等)参考nn.Conv2d;
激活层,即让线性分类器变为非线性的激活函数,ReLU等;
池化层,计算局部区域的最大值或者平均值,从而降低图像分辨率,节省计算量,提高特征的空间鲁棒性;
全连接层,类似于线性分类器;