神经网络
- ANN(artificial neural network):神经网络具有以下三个部分:
-
结构(Architecture)结构指定了网络中的变量和它们的拓扑关系。
-
激励函数(Activity Rule)
-
学习规则(Learning Rule)学习规则指定了网络中的权重如何随着时间推进而调整。
DeepLearning(机器之心)
- 深度学习是机器学习的分支,它试图使用包含复杂结构或者由多重非线性变换构成的多个处理层 对数据进行高层抽象的算法 。简单的说,深度学习就是一个函数集.
基础
-
数学基础:掌握数学分析、线性代数、概率论和凸优化四门数学课程包含的数学知识,熟知机器学习的基本理论和方法,是入门深度学习技术的前提。
-
计算机基础:C++、python; ubuntu; CUDA
理论
- 基础结构单元
全连接层、pooling层、dropout层、BN层、RNN/LSTM
- 卷积层/反卷积层
卷积核大小:较大的卷积核会使得网络难以发散,可以使用 1×1 的核来减少特征的数目
卷积核size为奇数:
保护位置信息:保证了锚点刚好在中间,方便以模块中心为标准进行滑动卷积,避免了位置信息发生 偏移。
padding时对称:保证padding 时,图像的两边依然相对称 。
空洞卷积(Dilated Convolution)在卷积核的权重之间使用空格。这使得网络不用增加参数数目就能够指数级地扩展感受野,也就是说根本没有增加内存消耗。已经证明,空洞卷积可以在微小的速度权衡下就能增加网络准确率。
- 激活函数
很好的一个经验法则就是从 ReLU 开始。
- Softmax等损失函数
softmax loss、sigmoid交叉镝
-
网络训练方法,包括BP、Mini-batch SGD和LR Policy。
-
深度网络训练中的两个至关重要的理论问题:梯度消失和梯度溢出。
经典网络结构
- 网络加深
VGG16 VGG19 MSRAnet
- 增强卷积模块功能
NIN GoogleNet Inception V3 Inception V4
融合上述两类
ResNet Inception ResNet PVANet DenseNet PlayNet
- ==BaseModel==:
先用ResNet-50来验证算法的有效性;
当该算法在ResNet-50上切实有效后,如果要追求算法速度(例如落地到移动端),则将basemodel替换为Xception(较常用的是Xception-145)、ShuffleNet;如果要追求精度(例如发论文、打比赛刷榜),则将basemodel替换为ResNet-101/ResNeXt/DPN。
- 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等
关注点
-
新的网络结构
-
新的优化方法
-
使用 Adam,中间换到 SGD,能够以最容易的方式达到最好的准确率。
-
《Learning gradient descent bygradientdescent》以及SWISH激活函数
-
当前的优化方法或ReLU激活函
-
新的学习技术。深度强化学习和生成对抗网络(GAN)。
-
新的数据集
博客资源
使用巧妙的卷积设计来减少运行时间和内存消耗
-
MobileNets使用深度分离的卷积来极大地减少运算和内存的消耗
-
XNOR-Net使用二进制卷积,也就是说,卷积运算只涉及两个可能的数值:0 或者 1。通过这种设计,网络可以具有较高程度的稀疏性,易于被压缩而不消耗太多内存。
-
ShuffleNet使用点组卷积和通道随机化来极大地减少计算代价
-
Network Pruning是为了减少运行时间和内存消耗而删除 CNN 的部分权重的技术
在线课程
- C231n
文本资源
-
西瓜书
-
deepleaning( theory)
扩展
项目实践
-
[开源 Intel发布神经网络压缩库Distiller:快速利用前沿算法压缩PyTorch模型](https://mp.weixin.qq.com/s/A5ka8evElmcuHdowof7kww) - GluonCV
提供了 CV 方向的顶尖深度学习模型实现。