Deep leaning

My personal notes

Posted by GY on August 28, 2018

神经网络

  • ANN(artificial neural network):神经网络具有以下三个部分:
  1. 结构(Architecture)结构指定了网络中的变量和它们的拓扑关系。

  2. 激励函数(Activity Rule)

  3. 学习规则(Learning Rule)学习规则指定了网络中的权重如何随着时间推进而调整。

DeepLearning(机器之心)

  • 深度学习是机器学习的分支,它试图使用包含复杂结构或者由多重非线性变换构成的多个处理层 对数据进行高层抽象的算法 。简单的说,深度学习就是一个函数集.

基础

  1. 数学基础:掌握数学分析、线性代数、概率论和凸优化四门数学课程包含的数学知识,熟知机器学习的基本理论和方法,是入门深度学习技术的前提。

  2. 计算机基础:C++、python; ubuntu; CUDA

理论

  1. 基础结构单元

全连接层、pooling层、dropout层、BN层、RNN/LSTM

  • 卷积层/反卷积层

卷积核大小:较大的卷积核会使得网络难以发散,可以使用 1×1 的核来减少特征的数目

卷积核size为奇数

保护位置信息:保证了锚点刚好在中间,方便以模块中心为标准进行滑动卷积,避免了位置信息发生 偏移。

padding时对称:保证padding 时,图像的两边依然相对称 。

空洞卷积(Dilated Convolution)在卷积核的权重之间使用空格。这使得网络不用增加参数数目就能够指数级地扩展感受野,也就是说根本没有增加内存消耗。已经证明,空洞卷积可以在微小的速度权衡下就能增加网络准确率。

  1. 激活函数

很好的一个经验法则就是从 ReLU 开始。

  1. Softmax等损失函数

softmax loss、sigmoid交叉镝

  1. 网络训练方法,包括BP、Mini-batch SGD和LR Policy。

  2. 深度网络训练中的两个至关重要的理论问题:梯度消失和梯度溢出。

经典网络结构

AlexNet

  • 网络加深

VGG16 VGG19 MSRAnet

  • 增强卷积模块功能

NIN GoogleNet Inception V3 Inception V4

融合上述两类

ResNet Inception ResNet PVANet DenseNet PlayNet

  1. ==BaseModel==:

先用ResNet-50来验证算法的有效性;

当该算法在ResNet-50上切实有效后,如果要追求算法速度(例如落地到移动端),则将basemodel替换为Xception(较常用的是Xception-145)、ShuffleNet;如果要追求精度(例如发论文、打比赛刷榜),则将basemodel替换为ResNet-101/ResNeXt/DPN。

  1. Basemodel部分,一般直接导入现成训练好的。之后在自己的数据集上fine-tune整个网络
  • 从分类任务到检测任务

YOLO SSD

SPP-net R-CNN Fast R-CNN Faster R-CNN MASK R-CNN

FPN + Faster R-CNN

  • 增加新的功能单元

Inception V2(BN) FCN FCN+CRF ST-Net CNN+RNN/LSTM GAN

Benchmark

Inception 和 ResNet 的选择确实是速度和准确率的权衡:要准确率,用超深层的 ResNet;要速度,用 Inception

  • 人脸识别领域

LFW和MegaFace

  • 图像识别领域与物体检测领域

ImageNet、Microsoft COCO

  • 图像分割领域

Pascal VOC等

关注点

  • 新的网络结构

  • 新的优化方法

  1. 使用 Adam,中间换到 SGD,能够以最容易的方式达到最好的准确率。

  2. 《Learning gradient descent bygradientdescent》以及SWISH激活函数

  3. 当前的优化方法或ReLU激活函

  • 新的学习技术。深度强化学习和生成对抗网络(GAN)。

  • 新的数据集

博客资源

使用巧妙的卷积设计来减少运行时间和内存消耗

  1. MobileNets使用深度分离的卷积来极大地减少运算和内存的消耗

  2. XNOR-Net使用二进制卷积,也就是说,卷积运算只涉及两个可能的数值:0 或者 1。通过这种设计,网络可以具有较高程度的稀疏性,易于被压缩而不消耗太多内存。

  3. ShuffleNet使用点组卷积通道随机化来极大地减少计算代价

  4. Network Pruning是为了减少运行时间和内存消耗而删除 CNN 的部分权重的技术

在线课程

  • C231n
  1. Tutorial

  2. translation

  3. assignment1-3

文本资源

  • NN & DL

  • 西瓜书

  • deepleaning( theory)

  1. English PDF

  2. Chinese PDF

  3. website

扩展

项目实践

  • DL 项目合集

  • [开源 Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型](https://mp.weixin.qq.com/s/A5ka8evElmcuHdowof7kww)
  • GluonCV

提供了 CV 方向的顶尖深度学习模型实现。

others