<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab

第一节课大多是理论知识和简介。

目录

前言

一、三大机器视觉任务

 图像分类:

 图像检测:

 图像分割:

二、OpenMMLab算法框架介绍

三、机器学习和神经网络简介

机器学习的基本流程(以分类器问题为例):

多分类任务:

四 、神经网络的训练

 神经网络的训练

损失函数 

 L1损失:

平方损失:

 交叉熵损失(Cross-Entropy Loss):

 梯度下降算法:

局限性: 

 梯度下降算法问题的改进:

随机梯度下降(SGD):

优化器:

 自适应梯度算法:

反向传播:

早停(Early Stopping):



前言

第一次课up主子豪兄介绍了openmmlab,机器视觉与网络方面,为初学者入门做铺垫。


提示:以下是本篇文章正文内容,下面案例可供参考

一、三大机器视觉任务

分类~检测~分割


 图像分类:

    图像分类即图像识别。

        指利用计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对象的技术,是应用深度学习算法的一种实践应用。(百度词条)

 图像检测:

        将边缘检测的思路扩展到识别整幅图像,通常达到判别被检测的图像是否属于已知图像数据库中的某一幅图像,或者经过综合判别后,推断该图像与某一幅已知的图像最相似的目的。图像检测有时也被用于从一幅已知图像中检索出某个给定的子图像。(百度词条)

 图像分割:

        图像分割分为语义分割和实例分割,全景分割。

        1.语义分割:对所有像素进行分类;

        2.实例分割:不仅将物体进行分割,并且实现图像检测;

        3.全景分割:在实例分割基础上对整个环境全景感知。(腾讯会议的虚拟背景就是全景分割)

        

二、OpenMMLab算法框架介绍

              框架名称 应用
 MMDetection: 目标检测,实例分割,全景分割
 MMDetection3D: 3D检测 7个数据集,17种算法,80+预训练模型
 MMClassification: 识别检测 40+预训练模型,主流数据集支持
 MMSegmentation: 无人驾驶汽车,遥感,医疗 420+预训练模型,30+论文复现
 MMPose&MMHuman3D: 人体姿态估计,体感游戏,健身应用,深蹲计数 表现形式:形状/关键点
 MMTracking: 视频目标检测,单目标检测,多目标检测 6个数据集,8种算法,20+预训练模型
 MMAction2: 行为识别,时序动作检测,时空动作检测

200+预训练模型,20+论文复现;

多io后端支持

 MMOCR: 文本检测,文本识别,关键信息提取
 MMEditing: 图像修复,超分辨率,图像生成,抠图 15种算法支持,30个预训练模型


三、机器学习和神经网络简介

让计算机从数据中学习去解决问题。

机器学习的基本流程(以分类器问题为例):

1.训练:采集一些数据,标注类别(监督式机器学习),从中选出一部分用于训练分类器,得到一个可以进行分类的分类器。

2.验证:从采集,标注的数据中另选一部分呢=,测试所得分类器的分类精度。验证所用数据不能和训练集重合,以保证分类器的泛化性能:在一部分数据上训练的分类器,可  以在其余数据上表现足够的分类精度。

    泛化性能:机器学习不希望计算机学习能力过强,将噪声也学习。要求其有泛化能力,学习到的模型对未知数据的预测能力。通常通过测试误差来评价学习方法的泛化能力。

泛化能力弱,训练对,测试错,为过拟合

                  训练错,测试也错,为欠拟合

3.应用:将经过验证的分类器集成到实际的业务系统中,实现对应的功能。在应用阶段,分类器面对的数据(即测试集)都是在训练,验证阶段没有见过的。

多分类任务:

多分类任务的神经网络输出有y1,y2,y3......

我们希望每一个分布的概率具有竞争性

  1. 每个分类的概率>=0
  2. 概率之和为1

引出softmax classifier:

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第1张图片

     e的幂函数将实数范围的输出映射到0-1上,再除以所有分布的幂函数之和,即该分布的概率。 


四 、神经网络的训练

 神经网络的训练

训练过程就是找到最小损失的w(权重)和b(偏移量)。

  1.  首先对w和b进行初始猜测。
  2. 根据损失进行修改w和b
  3. 重复2直到损失最低。

损失函数 

 L1与平方损失用于回归问题, 交叉熵损失用于分类问题。

 L1损失:

        | 模型预测值-标签实际值 |

平方损失:

        每个样本的平均平方损失。又称为L2损失均方误差(MSE)。

        是常用的损失函数。

        均方误差cost:

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第2张图片

 交叉熵损失(Cross-Entropy Loss):

        用于比较两个事件概率发生的接近程度

                计算均值: 

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第3张图片

 梯度下降算法:

        梯度导数变化最大的值,其方向导数变化最大的方向。

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第4张图片

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第5张图片 MSE损失对于w的函数

         假设△x>0,则对于增函数,梯度为上升方向,对于减函数,梯度为下降方向。如此方向都不是离极值点渐进的方向,因此需要取梯度下降的方向即梯度的反方向作为变化方向。 

        数学意义:找到w的值使得损失最小。

        根据梯度与学习率更新的W为:

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第6张图片

局限性: 

  1. 梯度下降算法容易进入局部最优解(非凸函数)

    但是实际问题中的局部最优点较少,或已经基本可以当成全局最优点。

  2. 梯度下降算法容易陷入鞍点。

 梯度下降算法问题的改进:

随机梯度下降(SGD):

        每次迭代随机选取一部分样本,称为mini-batch。

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第7张图片

         计算梯度,作为完整梯度的近似。

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第8张图片

        batch越大,每下降一步的计算量大,更稳定。 

优化器:

        动量Momentum SGD:将上一步的移动延续到本步,帮助逃离局部最小值和鞍点,缓解随机梯度下降的波动。

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第9张图片

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第10张图片

 自适应梯度算法:

         不同的参数需要不同的学习率,根据梯度的历史幅度自动更新学习率。

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第11张图片

反向传播:

        损失函数是参数的复杂函数,根据复合函数求导的链式法则,在神经网络中运用链式法则,许多计算是重复的。

        由于求导的链式法则,求得loss以后,前面的神经元会将∂loss/∂z的值反向传播给原先的神经元,在计算单元f(x,ω)中,将得到的∂loss/∂x与之前存储的导数相乘,即可得到损失值对于权重以及输入层的导数,即∂loss/∂x,以及∂loss/∂z。基于该梯度才进行权重的调整。

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第12张图片 反向传播过程

 早停(Early Stopping):

        将数据集划分为训练集和验证集,在训练集上训练,周期性在验证集上测试分类精度。

        分类精度达到最值时,停止训练,防止过拟合。

<OpenMMLab实战营第一讲>计算机视觉与OpenMMLab_第13张图片

你可能感兴趣的:(人工智能,神经网络)