openmmlab实战营1-简介基础和超算云平台-爱代码爱编程
视觉领域人工智能
计算机视觉任务
- 图像分类(图像识别)
- 目标检测
- 语义分割
- 实例分割
- 图像生成
- 风格迁移
- 基于视频的视觉
以图像分类为backbone,添加不同的head,就可以完成不同的任务。
深度学习:以深度学习网络解决数据挖掘问题。
同济子豪兄中文精讲:
cs231n计算机视觉
cs24w图机器学习
模型部署
MMDeploy 可以转化为硬件支持的模型格式
例如:
针对 Jetson nano 的模型格式:TensorRT
针对 Intel 神经计算棒的模型格式:OpenVINO
MMLab 算法库
MMDetection: 目标检测,实例分割,全景分割
MMDetection3D: 3D目标检测(使用激光雷达点云数据获得目标的3D位置信息)
MMClassification: 图像分类
MMSegmentation: 语义分割
MMPose: 人体姿态估计
MMHuman3D: 人体3D重建
MMAction2: 视频行为理解
MMOCR:光学文本识别
MMEditing: 图像底层视觉,图像修复,抠图(matting),超分辨率,图像生成
MMRazor:模型压缩,模型剪枝,模型蒸馏
为什么要用 OpenMMLab?
- 底层使用pytorch,当前流行的深度学习框架
- MMLab大多都是必看论文的代码实现,方便学习
- 一键调用较好的预训练数据,方便直接与自己的模型比较或者调参,包括前沿模型,易于跑分,横向比较方便
机器学习和神经网络简介
机器学习基础概念
也称为统计学习,程序从数据中学习
算法设计和机器学习的比较
算法设计
机器学习
机器学习典型范式
监督学习
无监督学习
强化学习
机器学习开发过程:
-
训练
-
验证
-
应用
神经网路的训练
给定一个神经网络如何能找到达到最高性能的可学习参数的值?
- 如何衡量神经网络的性能
- 错误率
- 损失函数
- 怎么找到最优参数
- 梯度下降法
- 随机梯度下降法
- 动量法
- Adam
损失函数
交叉熵损失 Cross-Entropy Loss
对于预测的类别概率 P ∈ [ 0 , 1 ] K P \in [0, 1]^K P∈[0,1]K和类别真值 Y ∈ [ 0 , 1 ] K Y \in [0, 1]^K Y∈[0,1]K,交叉熵损失定义为:
L ( P , y ) = − log P y L(P, y) = - \log P_y L(P,y)=−logPy
神经网络的训练目标:找到一组比较好的可学习参数w的值,使得神经网路性能最好(找到一组参数w的值,使得损失函数L的值最小)
基于梯度下降算法寻找最优参数
梯度下降算法
目标:寻找损失函数曲面 L ( w ) L(w) L(w)的谷点
- 随机选择一个起始点 w ( 0 ) w^(0) w(0)
- 寻找梯度下降最快的方向,即负梯度方向 δ w L ( w ( 0 ) ) \delta_w L(w^(0)) δwL(w(0)),并前进一步,得到 w ( 1 ) w^(1) w(1)
w ( 1 ) = w ( 0 ) − η δ w L ( w ( 0 ) ) w^{(1)} = w^{(0)} - \eta \delta_w L(w^{(0)}) w(1)=w(0)−ηδwL(w(0))
- 重复步骤2,直到收敛
Stochastic Gradient Descent (SGD) 随机梯度下降
优化器
Momentun SGD 动量
自适应梯度算法: Adagrad, Adam/AdamW
卷积神经网络
常用激活函数
Sigmoid
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+e−x1
Leaky ReLU
max 0.1 x , x \max{0.1x, x} max0.1x,x
tanh
t a n h ( x ) tanh(x) tanh(x)
PRelu
max ( α x , x ) \max(\alpha x, x) max(αx,x)
ReLU
max ( 0 , x ) \max(0, x) max(0,x)