DL方法论
深度学习在研究什么
- 设计数据集,标注各种实际业务中需要的数据集
- 设计网络层节点,
- 设计连接节点的框架,形成了各种各样的网络
- 设计优化器,策略:即如何训练网络,
- 最终提高网络泛化能力
- 核心思想是要得到一个general的model
主要步骤
-
网络结构设计:感知机层,激活函数,损失函数,归一化层
- 根据任务逻辑,设计合理的,能够提取较好特征的网络
- 损失函数,激活函数设计
- 前向传播过程,连接网络结构和激活函数,归一化函数等
-
训练过程设计:梯度优化过程,参数更新策略
- 优化器选择
- 学习率调整
- 正则惩罚和参数更新策略
多层感知机
- 主要是矩阵计算
- 单纯的感知机还是一个线性操作,隐藏层到输出层要加激活函数才有非线性因素
凸优化与梯度下降
- 凸优化问题的局部最优解就是全局最优解
- 如何将优化问题转为凸函数:拉格朗日乘子,KKT,对偶理论
- 鞍点:既不是极大值也不是极小值的临界点
拉格朗日乘子,KKT,对偶理论
-
拉格朗日乘子:将约束优化问题转为无约束优化形式表示
-
KKT:更加广义的拉格朗日变换,针对拉格朗日只能对原问题是等式的形式改进,可将不等式约束的约束优化问题转为无约束优化
-
对偶问题:使约束问题更容易求解,将KKT变换后等式进行转换求解
梯度下降
- 为什么梯度是下降最快的方向: 和法向量垂直,曲线的切线方向,是一个标量,有方向
- 有点:是一种贪心策略,能够得到解
- 缺点:
- 靠近极小值收敛速度减慢
- 得到的最优解不保证是全局最优
- 常见的梯度下降算法
- 随机梯度下降,SGD:每次一个样本的计算梯度,更新参数
- 批量梯度下降,BGD: 每次计算一个batch样本的梯度来更新参数
- 牛顿法:泰勒一阶展开等式求解
常见优化器
主要是结合梯度下降算法,设置合理的参数更新策略, 主要是对下式做改进:
[更新后参数 = 原参数 - (步长 x 梯度)]
AdaGrad:
- 动态调整学习步长,(学习平稳)
- 移动平均防止抖动,(结合历史梯度(方向)信息,收敛速度加快)
RMSProp:
- 在移动平均项上做了改进
Adam:
正向传播,链式法则,反向传播
- 正向传播就是按照计算图进行传播计算
- 反向传播,按照计算图,结合计算出来的损失反向计算每个节点的梯度,更新参数
softmax
- 主要针对分类问题,将输出归一化到一个量纲,得到不同类别的概率
激活函数
使网络具有非线性能力,且学习朝着活跃方向进行学习
-
Sigmoid:
- Logistic激活函数, 输出值在0-1之间
- 输出在接近0或者1的时候很平缓,梯度可能为0,容易造成梯度消失
- 输出中心不在0而在0.5附近
- 计算成本大
-
Tanh:
- 双曲正切激活函数(hyperbolic tangent activation function),输出在-1到1之间
- 梯度也会消失
-
Relu:
- 修正线性单元(rectified linear unit)
- 简单的阈值化->计算效率高,不会饱和因此不会梯度消失
- 不以0为输出中心,且0点没有梯度,一般用左侧或者右侧梯度表示
- x < 0 为非激活状态
-
LeakyRelu:
- 对relu负数部分的修正
训练优化操作
欠拟合,过拟合,正则化,标准化
主要都是针对训练过程的优化。
- 欠拟合,学习效果不佳,减小学习率,改善网络结构,残差结构
- 过拟合,线下好线上差,增加数据样本,损失函数增加惩罚项,减少网络结构
- 正则化是损失函数加惩罚项,使学习的参数不太过分,常见有L1正则,L2正则
- 标准化是对每一层输出进行变化,使其输出分布不太过分 一般在深度学习中过拟合比较严重,大多是针对过拟合提出改进
深度学习的困难:
- 每一层输入分布改变
- 梯度消失
- 过拟合
Skip-Connection
主要是为了能够合理的堆叠深层次网络,防止过拟合。
Dropout
主要是为了解决过拟合问题,类似于正则化惩罚,随机丢弃神经元
能够work的解释:
实现方式
DropConnect
Dropout在CNN上应用:
Dropout在RNN上的问题:
- 有几篇论文都是在RNN不同连接的地方尝试dropout
BatchNormalization
DNN训练需要
BN原理:
- 就是对每一个batch在训练的时候进行标准化
- 每一个隐藏层后面接BN层
- 训练过程要保留每一个batch的均值和方差,在测试过程使用
优点:
缺点:
- 即RNN中一个batch里面的数据可能步长不一样
- 改进LN或者数据进行padding(但是计算出来的标准差也很差)
LayerNormalization
- 是在每一个隐藏层维度进行归一化,只和隐藏层节点数量有关,和样本数量(batch)没关
- 也需要学习一个反变换的参数,保证信息不丢失