深度学习
反向传播的作用:
梯度下降法中需要利用损失函数对所有参数的梯度来寻找局部最小点;
反向传播是用于计算梯度的具体方法,本质是利用链式法则对每个参数求偏导
激活函数
使用激活函数的目的是为了向网络中加入非线性隐藏层;加强网络的表达能力,解决线性模型无法解决的问题
某些数据是线性可分的,所以用一条线就可以将数据分开
但有些数据不是线性可分的,就需要引入非线性模型,增强网络的表示能力
常见的激活函数
常用的激活函数有:Relu、Sigmod、tanh、softmax
tanh和sigmod的图像大致相同,区别是tanh值域为(-1,1);sigmod值域为(0,1)
Relu相比Sigmod的优势:
- 避免梯度消失:sigmod函数在输入取绝对值非常大的正值或负值时会出现饱和现象---在图像变现为变得很平,此时对输入的微小变化不敏感---造成梯度消失
- 减缓过拟合:Relu在负半区的输出为0。一旦神经元的激活值进入负半区,那么该激活值就不会产生梯度(不被训练),造成网络的稀疏激活
- 加速运算:Relu的运算不涉及浮点运算,速度更快
正则化
Batch Normalization(批标准化)
BN是一种正则化方法(减少泛化误差),主要作用有:
- 加速网络的训练
- 防止过拟合
- 降低参数初始化的要求
动机
- 训练的本质是学习数据分布。如果训练数据与测试数据的分布不同会降低模型的泛化能力。因此在开始训练前对所有输入数据做归一化处理。
- 在神经网络中,因为每个隐层的参数不同,会使下一层的输入也发生变化;如果每层的输入数据分布不一致,致使网络在每次迭代中都需要拟合不同的数据分布,增大了网络的训练难度与过拟合的风险。
基本原理
BN方法会针对每一批数据,在网络的每一层输入之前增加归一化处理,使输入的均值为0,标准差为1。目的是将数据限制在统一的分布下。
L1/L2范数正则化
相同点:限制模型的学习能力---通过限制参数的规模,使模型偏好于权值较小的目标函数,防止过拟合(参数相对较小,数据偏移对结果影响不大,抗干扰能力强)。
不同点:
L1正则化可以产生更稀疏的权值矩阵
L2正则化适用于特征之间没有关联的情况
稀疏矩阵的作用:
稀疏矩阵:很多元素为0,只有少数元素是非零值的矩阵。通常机器学习中特征数量很多,但是在预测或者分类任务中,太多的特征容易难以选择。如果代入这些特征的是一个稀疏矩阵,表示只有少数特征对这个模型有作用,此时只需要关注系数是非零的矩阵即可。