计算机视觉与OpenMMLab开源算法体系
计算机视觉是什么
计算机视觉是一门让计算机学会“看”的学科,研究如何自动理解图像和视频中的内容
计算机视觉的发展
1960-1980 边缘检测
1990-2000 统计机器学习与模式识别(以人工设计特征算子为主导)
2006-2010 ImageNet诞生
2012-至今 深度学习时代
OpenMMLab
OpenMMLab2.0优势:
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等;
池化层,计算局部区域的最大值或者平均值,从而降低图像分辨率,节省计算量,提高特征的空间鲁棒性;
全连接层,类似于线性分类器;
概率输出层,即
s
o
f
t
m
a
x
softmax
softmax函数的输出;