美文网首页
深度学习策略选择 | 优化器选择,权重初始化,损失函数选择

深度学习策略选择 | 优化器选择,权重初始化,损失函数选择

作者: yuanCruise | 来源:发表于2018-12-29 19:50 被阅读39次

1.CNN中优化器选择

  • 随机/批量梯度下降:批量梯度下降就是计算一个batch的梯度并统一更新。
  • Momentum:当前权值的改变会受到上一次权值改变的影响,类似于小球向下滚动的时候回带上惯性,因此可以加快小球向下的速度。
  • Nesterov:使得Momentum中的小球更加聪明,会大致计算小球的下一个位置来指导小球的方向。
  • Adagrad:基于SGD(随机梯度下降)的一种。适合用于类别分布不均的问题。对于数据集中比较常见的数据会给予较小的学习率,对于数据集中的比较罕见的数据会给予较大的学习率。其优点为不需要人为调整学习率;其缺点为随着迭代次数增多,学习率会越来越直到为0。
  • RMSprop:基于Adagrad改进了其缺点,使得不会出现越来越低的问题。
  • Adadelta:甚至不需要设置一个默认的学习率,也可达到一个较好的效果。
  • Adam:像Adadelta和Adagrad和RMSprop一样会存储之前衰减的平方梯度,同事也保存之前衰减的梯度。

2.CNN中权重初始化策略

  • Gaussian:均值为0,标准差0.01的高斯分布。
  • Xavier:每一层输出的方差尽可能相等。
  • msra:由于Xavier推导的时候假设激活函数是线性的,而msra适合relu等非线性激活单元。

若用全0的值初始化权重,则每个神经元节点的值多相等,在反向传播时,每个权重的梯度为输入该节点的值与上一层梯度的乘积,所以导致同等更新不具有差异性。

3.CNN中损失函数选择

回归损失
  • L1 Loss & L2 Loss

用L1能够对异常值更鲁棒。用L2能够更快的收敛。
L2比L1能更快速的收敛的原因在于接近与目标值的时候,L2曲线更加平滑。
L1比L2对异常值更加鲁棒的原因,是因为当出现异常值时,L2对异常值反应后的error会比L1大,因为一个是平方级的,一个是绝对值。这会导致用L2更新参数时,由于异常值的Loss大导致参数更新方向往异常值偏。所以说L1对异常值更加鲁棒。

L1和L2都存在的问题
若我们的真实目标集中有90%是150,10%是0-30。若我们用L1来做,会使得大部分的预测值为150(趋向于中位数)。而用L2来做,会使得有很多的预测值在0~30之间,这两种情况都不是我们希望见到的。

  • Huber loss

基于L1,L2损失函数的问题,因此提出了huber loss,其相当于利用超参数delta的范围将L1和L2组合起来。当残差比delta大时,HuberLoss就趋向于L1loss。当残差比delta小时,HuberLoss就趋向与L2loss。因此当delta趋向0时候,为L1loss;当delta趋向很大时,为L2loss。HuberLoss的好处就是结合了L1/L2的好处,但有个问题是要去学习或定义它的超参数delta。

  • Log_cosh Loss

预测误差的双曲余弦的对数log(cosh(yip−yi))log(cosh(yip−yi)),该loss的优点在于当x很小时,函数接近与x^2/2;当x很大时,函数接近与abs(x)-log(2)。所以说这个loss有Huberloss的所有的优点且不像Huberloss不仅要有超参数且并不是处处二次可微。为什么需要2d derivative呢?因为类似于XGBoost这种算法利用2d 可微函数对优化更有利。但这种loss函数对非常大的异常值仍然存在不友好的问题。

  • Quantile Loss

用来回归interval(间隔)而不是精准的回归到一个point(点)。

分类损失
  • HingeLoss
hige_y_val = tf.maxmim(0., 1.-tf.mul(target,x_vals))
  • 两类交叉熵损失函数
xentropy_y_val = tf.mul(target,tf.log(x_vals)) - tf.mul((1. - target), tf.log(1. - x_vals))
xentropy_y_out = sess.run(xentropy_y_val)
  • sigmod交叉熵损失函数
  • 加权交叉熵损失函数
  • softmax交叉熵损失函数
  • 稀疏softmax交叉熵损失函数

相关文章

  • 深度学习策略选择 | 优化器选择,权重初始化,损失函数选择

    1.CNN中优化器选择 随机/批量梯度下降:批量梯度下降就是计算一个batch的梯度并统一更新。 Momentum...

  • 无法收敛问题

    1、权重的初始化方案有问题2、正则化过度3、选择不合适的激活函数、损失函数4、选择了不合适的优化器和学习速率5、训...

  • 深度学习中的优化器

    深度学习的优化器有许多种类,同损失函数一样,我们只有清楚了它们的原理才能更好地选择。鉴于优化器的重要性以及难度,本...

  • 归零——CSS-第四天

    CSS学习 CSS权重 选择器 权重...

  • 李宏毅一天搞懂深度学习2016学习总结

    I 总体来说,深度学习分三步: 定义方法(网络结构)、选择损失函数、挑选出最佳的优化方法。 II 训练DNN的技巧...

  • CSS 基础

    一、样式选择器 特殊性:通用选择器*权重值为0,标签权重值为1,类选择器和伪类选择器权重值为10,ID选择器权重值...

  • 损失函数选择

    机器学习算法中最终优化的为模型的损失函数,而损失函数各种各样,对于不同的模型,选择什么样的损失函数才比较合适。本文...

  • day23-CSS属性

    1. 选择器的权重 选择器的权重:类型选择(元素选择器):0001class选择器:0010id选择器:0100伪...

  • CSS--常用属性

    选择器的权重 选择器的权重:类型选择器(元素选择器):0001class选择器:0010id选择器:0100层级(...

  • 2018-08-17day-23

    总结 1、选择器的权重 选择器的权重类型选择器(元素选择器):0001class选择器:0010id选择器:010...

网友评论

      本文标题:深度学习策略选择 | 优化器选择,权重初始化,损失函数选择

      本文链接:https://www.haomeiwen.com/subject/vimplqtx.html