回归与分类等监督学习是机器学习中最常见的一类学习问题, 它提供了包含输入数据和目标数据的训练数据集。为了探讨输入与目标之间的关系,需要先建立含参数的表示模型,再通过最小化所有样本的平均损失函数来获得最优的参数, 此处的优化模型通常为经验风险最小化ERM。梯度下降法是求解ERM模型最常用的方法,也是二阶方法和黎曼优化的重要基础。
传统的梯度下降法在计算目标函数的梯度时, 需计算每个样本对应的梯度, 总计算复杂度线性地依赖于样本数目。随着数据规模的日益增大, 求解所有样本的梯度需要相当大的计算量, 因而传统的梯度下降算法在解决大规模机器学习问题时往往不再奏效。
随机梯度下降算法SGD源于1951年Robbins 和Monro提出的随机逼近, 最初应用于模式识别和神经网络。这种方法在迭代过程中随机选择一个或几个样本的梯度来替代总体梯度, 从而大大降低了计算复杂度。1958 年Rosenblatt研制出的感知机采用了随机梯度下降法的思想, 即每轮随机选取一个误分类样本, 求其对应损失函数的梯度, 再基于给定的步长更新参数。1986年Rumelhart 等分析了多层神经网络的误差反向传播算法, 该算法每次按顺序或随机选取一个样本来更新参数, 它实际上是小批量梯度下降法的一个特例。近年来, 随着深度学习的迅速兴起, 随机梯度下降算法已成为求解大规模机器学习优化问题的一类主流且非常有效的方法。目前, 随机梯度下降算法除了求解逻辑回归、岭回归、Lasso、支持向量机和神经网络等传统的监督机器学习任务外, 还成功地应用于深度神经网络、主成分分析、奇异值分解、典型相关分析、矩阵分解与补全、分组最小角回归、稀疏学习和编码、相位恢复以及条件随机场等其他机器学习任务。
随着大数据的不断普及和对优化算法的深入研究, 衍生出随机梯度下降算法的许多不同版本。这些改进算法在传统的随机梯度下降算法的基础上引入了许多新思想, 从多个方面不同程度地提升了算法性能。搜索方向的选取和步长的确定是梯度下降算法研究的核心,按照搜索方向和步长选取的方式不同, 将随机梯度下降算法的改进策略大致分为动量、方差缩减、增量梯度和自适应学习率等四种类型。其中, 前三类方法主要是校正梯度或搜索方向,适用于逻辑回归、岭回归等凸优化问题; 第四类方法针对参数变量的不同分量自适应地设置步长, 适用于深度神经网络等非凸优化问题。在传统梯度下降算法的基础上添加动量项可以有效避免振荡, 加速逼近最优解. 采用动量更新策略的方法主要包括经典动量算法和Nesterov 加速梯度算法。简单版本的随机梯度下降算法在随机取样的过程中产生了方差并且随着迭代次数的增加而不断累加, 无法保证达到线性收敛。为此研究者们相继提出了一系列基于方差缩减的随机梯度下降算法, 主要包括随机方差缩减梯度算法、近端随机方差缩减梯度算法、Katyusha和MiG等。
随机梯度下降算法如何进一步改进
1) 与二阶算法相比, 随机梯度下降算法的收敛速度相对较慢, 且需要更多的迭代次数。第2代和第3代改进算法虽然有效地提升了收敛速度, 但耗费了较大的时间成本和内存成本。随着数据规模的扩大和模型复杂度的提升, 单线程下的随机梯度下降算法已经不能满足大规模机器学习应用的需求。并行式随机梯度下降算法SimuParallelSGD适合于大规模学习范式和MapReduce 框架;Hogwild 算法对稀疏数据采用无锁异步更新策略, 从而有效地减少了特征更新时的冲突。目前, 研究者们已经实现了SVRG、SAGA 和MiG等改进算法的分布式和并行化版本, 但收敛速度却有待进一步提升。如何根据算法特点、数据对象和应用平台,设计并实现不同改进策略下的随机梯度下降算法的分布式与并行化版本, 使其在实际应用中发挥出较高的性能水平, 这是未来值得探索的问题。
2)随机梯度下降算法在每轮迭代过程中计算复杂度较低, 但只利用了一阶梯度, 忽略了目标函数的二阶信息及曲率, 从而限制了实际性能和收敛速度。如何结合一阶与二阶方法各自的长处,进一步设计迭代效率俱佳的随机梯度下降算法,是未来值得研究的问题。
3) 近年来, 研究者们将目光投向非凸的ERM模型, 并且提出了一些行之有效的解决方案, 其中具有代表性的策略包括添加动量跳出局部最优解、使用方差缩技术减少梯度方差和添加梯度噪声逃离鞍点等。然而, 对于更为一般的非凸、非光滑的优化问题却并未取得太大的突破, 目前仅有Prox-SAGA、Prox-SVRG+等算法, 但性能并不理想。随机梯度下降算法在非凸、非光滑条件下的策略研究, 不仅是当前面临的困局, 也是未来最具有应用价值的研究方向。
4) 对于非凸的优化问题, 梯度下降法通常存在两个缺陷: 易于陷入局部最优、无法逃离鞍点。而演化计算/智能计算无需计算梯度和确定步长, 且往往具有较好的全局收敛性。如何将随机梯度下降算法与演化计算/智能计算方法相结合, 将是一个非常值得关注的研究方向。
知乎咨询:哥廷根数学学派
擅长现代信号处理(改进小波分析系列,改进变分模态分解,改进经验小波变换,改进辛几何模态分解等等),改进机器学习,改进深度学习,机械故障诊断,改进时间序列分析(金融信号,心电信号,振动信号等)
算法代码地址,浏览器打开:mbd.pub/o/GeBENHAGEN