深度学习技术总结

深度学习在图像领域的各层面都取得了骄人的成绩,包括分割、识别等高级任务,以及去噪、二值化、超分辨率等低级任务。在语音以及自然语言处理等方面也在快速发展。总结一下深度学习技术关键要点。

数据收集与扩充

数据是深度学习成功的重要因素,并且随着各种深度学习框架的普及,数据越来越成为最重要的门槛。数据一般有2种来源,其一是来自于业务场景的真实数据(包括人工标注的数据),其二是模拟真实场景仿造的数据。真实数据昂贵不易获得,很多时候就需要产生大量的模拟数据以满足深度学习的要求。模拟数据因尽可能的接近真实数据的分布情况。在图像领域,产生模拟数据的手段包括但不限于如下技术:

  • 旋转
  • 剪切
  • 翻转
  • 缩放
  • 加噪声
  • 水印
  • 有损压缩(JPEG、Mpeg等)

基础深度学习模型

应该理解并能编程实现基础的深度学习模型(可参考:EasyCNN,EasyTF),包括如下基础模型:

  • MLP
  • CNN
  • LSTM
    需要理解高级深度学习模型,并能够通过通用框架(如TensorFlow、Keras等)实现

  • AlexNet

  • VGG
  • GoogleNet (Inception v1-v4, Xception)
  • ResNet
  • Network-in-network
  • SqueezeNet
  • E-Net
  • R-CNN、SSD、YOLO
  • Stack RNN/LSTM/GRU
  • Seq2Seq
  • CRNN

训练深度学习模型的时候,有时候各种trick能起到很好的效果。应该了解其大致作用和原理。

  • Dropout
  • Batch Normalization
  • Local Response Normalization
  • L1/L2正则化
  • 各种Operator

在现代深度学习框架中,普遍都有Operator这样的抽象概念,需要了解一些重要的OP的原理和推导。

  • Conv
  • Pool
  • RNN/LSTM
  • Element-wise op
  • Softmax
    -CTC

参数初始化

参数初始化,了解其作用即可。

  • xavier
  • constant
  • gaussian
  • uniform
  • bilinear

激活函数

激活函数,了解其作用即可。

Sigmoid
Tanh
RELU
Leaky ReLU
ELU
Maxout
损失函数

不同的任务选用不同的损失函数。

Absolute loss
Square loss
Log loss
Cross-Entroy loss
Zeor-one loss
Hinge loss
Perceptron loss
Exponential loss
CTC loss
优化方法

优化方法影响模型精度和模型收敛速度,一般选择SGD+Momentum。

**SGD
Momentum**
Nesterov
Adagrad
Adadelta
RMSprop
Adam
Adamax
Nadam
框架实现

框架用多了,自然就了解框架的大概模块和原理了。也可以尝试自己实现一遍框架,这时候不只是考量深度学习基本知识,还考验工程架构能力。

  • 框架设计
  • 计算图与其优化
  • 数据并行与模型并行
  • 分布式
  • 理论与实际

深度学习发展非常快,隔不了几个月就有新概念,一般关注一下相关的新闻和最新的论文即可。一些实际问题在踩坑和交流的过程中会有答案。

  • Zero-center
  • 梯度消失
  • 梯度爆炸
  • 如何调参
  • Finetune
  • 增强学习
  • 模型压缩
  • 速度优化(low bit)

应用

各种深度学习的应用,“没有做不到,只有想不到”。

OCR
语音识别
自然语言处理
风格转移
人脸定位 & 人脸识别
手势识别
物体追踪
图像检索
超分辨率重建
去噪&去马赛克

猜你喜欢

转载自blog.csdn.net/weixin_41038905/article/details/82557795