调整渐变下降的学习率

在大多数监督性机器学习问题中,我们需要定义一个模型并基于训练数据集预估其参数。计算这些参数的广泛且容易使用的一个技术是通过梯度下降来最小化模型的误差。梯度下降通过在每个步骤最小化成本函数来在许多迭代中估计模型的权重。

梯度下降算法

以下是算法:

Repeat until convergence {

Wj = Wj - λ θF(Wj)/θWj

}

其中Wj是我们的一个参数(或者一个带有参数的向量),F是我们的代价函数(估计我们模型的误差),θF(Wj)/θWj是它对Wj的一阶导数,λ是学习率。

如果我们的F是单调的,那么这个方法将在多次迭代之后给出我们对使成本函数最小化的Wj权重的估计。注意,如果导数不是单调的,我们可能被困在本地的最小值。在这种情况下,一个简单的方法来检测这是通过重复不同的初始Wj值的过程,并比较新的估计参数的成本函数的值。

梯度下降并不总是计算权重的最佳方法,但它是一种相对快速简单的方法。如果您想了解更多关于梯度下降的信息,请查看吴恩达的斯坦福大学机器学习课程的笔记。

调整学习率

为了使梯度下降起作用,我们必须将λ(学习率)设置为适当的值。这个参数决定了我们朝着最佳权重移动的速度有多快。如果λ非常大,我们将跳过最优解。如果它太小,我们将需要大量的迭代来收敛到最佳值。所以使用合适的λ是至关重要的。

根据不同的数据集大小调整学习率的值

根据将要选择的成本函数F,我们可能会遇到不同的问题。当选择平方和误差作为我们的成本函数时,随着训练集的增大,θF(Wj)/θWj的值越来越大。因此λ必须适应明显较小的值。

解决这个问题的一种方法是用1 / N来划分λ,其中N是训练数据的大小。所以算法的更新步骤可以改写为:

Wj = Wj - (λ/N)*θF(Wj)/θWj

你可以从Wilson等人的论文“ 梯度下降学习的批量训练的一般低效率 ”中获得更多信息。

最后,解决这个问题的另一种方法是选择一个不受我们使用的训练样本数量影响的成本函数,如均方误差。

在每次迭代中调整学习率

另一个好的方法是在每次迭代中调整λ的值。这背后的想法是,离最佳值越远,向最佳值移动的速度越快,因此λ的值应该更大。越接近解决方案,其值越小。不幸的是,由于你不知道实际的最佳值,你也不知道你在每一步中离他们有多近。

为了解决这个问题,可以通过在每次迭代结束时使用模型的估计参数来检查误差函数的值。如果自上次迭代以来错误率降低了,可以尝试将学习率提高5%。如果错误率实际上增加了(意味着跳过了最佳点),你应该将Wj的值重置为先前迭代的值,并将学习率降低50%。这种技术被称为Bold Driver

额外提示:标准化您的输入向量

在许多机器学习的问题中,对输入向量进行归一化是相当普遍的做法。在一些技术中,归一化是必需的因为它们在内部使用距离或特征方差,因此没有归一化结果将受到具有最大方差或尺度的特征的严重影响。标准化您的输入也可以帮助您的数值优化方法(如渐变下降)更快更准确地收敛。

即使有多种方法来标准化变量,[0,1]标准化(也称为最小 - 最大)和z-score标准化是其中使用最广泛的两种。下面是你如何计算他们两个:

XminmaxNorm = (X - min(X))/(max(X)-min(X));

XzscoreNorm = (X - mean(X))/std(X);

希望这对你有用!

你喜欢这篇文章吗?请花一点时间在Twitter上分享。

本文的版权归 lemoon1993 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏深度学习

机器学习、深度学习 知识点总结及面试题

一、反向传播思想: 1、计算出输出与标签间的损失函数值,然后计算其相对于每个神经元的梯度,根据梯度方向更新权值。 (1)将训练集数据输入到ANN的输入层,经过隐...

3967
来自专栏机器学习、深度学习

二值人脸对齐--Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face Alignment

Binarized Convolutional Landmark Localizers for Human Pose Estimation and Face A...

3025
来自专栏企鹅号快讯

如何使用Keras集成多个卷积网络并实现共同预测

在统计学和机器学习领域,集成方法(ensemble method)使用多种学习算法以获得更好的预测性能(相比单独使用其中任何一种算法)。和统计力学中的统计集成(...

3999
来自专栏专知

【前沿】R-FCN每秒30帧实时检测3000类物体,马里兰大学Larry Davis组最新目标检测工作

【导读】美国马里兰大学、复旦大学和Gobasco人工智能实验室联合提出R-FCN-3000实时3000类目标检测框架,对R-FCN框架中的物体检测和分类进行解耦...

5356
来自专栏机器之心

深度 | 像玩乐高一样拆解Faster R-CNN:详解目标检测的实现过程

45312
来自专栏目标检测和深度学习

从RCNN到SSD,这应该是最全的一份目标检测算法盘点

1392
来自专栏IT派

深度学习入门必看秘籍

导语:本文是日本东京 TensorFlow 聚会联合组织者 Hin Khor 所写的 TensorFlow 系列介绍文章,自称给出了关于 TensorFlow ...

3446
来自专栏机器学习原理

机器学习(11)——非线性SVM

前言: 上一篇介绍了线性SVM还有一些尾巴没有处理,就是异常值的问题。 软间隔 线性可分SVM中要求数据必须是线性可分的,才可以找到分类的超平面,但是有的时候...

4175
来自专栏大数据挖掘DT机器学习

机器学习、深度学习 知识点总结及面试题

1、反向传播思想: 计算出输出与标签间的损失函数值,然后计算其相对于每个神经元的梯度,根据梯度方向更新权值。 (1)将训练集数据输入到ANN的输入层,经过隐藏...

1K8
来自专栏IT派

最全的DNN概述论文:详解前馈、卷积和循环神经网络技术

本论文技术性地介绍了三种最常见的神经网络:前馈神经网络、卷积神经网络和循环神经网络。且该文详细介绍了每一种网络的基本构建块,其包括了基本架构、传播方式、连接方式...

3784

扫码关注云+社区

领取腾讯云代金券