机器学习基础学习笔记(四)优化算法

以下内容均为https//nndl.github.io/nndl-book.pdf的学习笔记。
在确定了训练集????、假设空间ℱ 以及学习准则后,如何找到最优的模型????(????, ????∗) 就成了一个最优化(Optimization)问题.机器学习的训练过程其实就是最优化问题的求解过程.

优化算法

1.参数与超参数

优化又可以分为参数优化和超参数优化。
参数:模型????(????; ????) 中的???? 称为模型的参数,可以通过优化算法进行学习。
超参数:用来定义模型结构或优化策略的的参数。
常见的超参数包括:聚类算法中的类别个数、梯度下降法中的步长、正则化 分布项的系数、神经网络的层数、支持向量机中的核函数等。

超参数的选取一般都是组合优化问题,很难通过优化算法来自动学习。
超参数优化是机器学习的一个经验性很强的技术,通常是按照人的经验设定,或者通过搜索的方法对一组超参数组合进行不断试错调整.

2.梯度下降法

数学:凸优化

最简单、常用的优化算法就是梯度下降法,即首先初始化参数????0,然后按下面的迭代公式来计算训练集???? 上风险函数的最小值:
机器学习基础学习笔记(四)优化算法
中???????? 为第???? 次迭代时的参数值,???? 为学习率

3.提前停止以及测试集(Validation Set)

针对梯度下降的优化算法,除了加正则化项之外,还可以通过提前停止来防止过拟合.除了训练集和测试集之外,有时也会使用一个验证集(Validation Set)来进行模型选择,测试模型在验证集上是否最优.
在每次迭代时,把新得到的模型
????(????; ????)在验证集上进行测试,并计算错误率.如果在验证集上的错误率不再下降,就停止迭代.这种策略叫提前停止(Early Stop)
.如果没有验证集,可以在训练集上划分出一个小比例的子集作为验证集.

机器学习基础学习笔记(四)优化算法

4.随机梯度下降法(SGD)

批量梯度下降法(Batch Gradient Descent,BGD):目标函数是整个训练集上的风险函数.是从真实数据分布中采集???? 个样本,并由它们计算出来的经验风险的梯度来近似期望风险的梯度.
随机梯度下降法(Stochastic Gradient Descent,SGD):优化目标是单个样本的损失函数。在每次迭代时只采集一个样本,计算这个样本损失函数的梯度并更新参数,经过足够次数的迭代时,收敛到局部最优解。具有算法实现简单,收敛速度快的优点。算法如下所示:
机器学习基础学习笔记(四)优化算法
本质随机梯度下降相当于在批量梯度下降的梯度上引入了随机噪声,非凸优化问题中,随机梯度下降更容易逃离局部最优点.
缺点:无法利用计算机的并行能力。

5.小批量梯度下降法

***小批量梯度下降法(Mini-Batch Gradient Descent)***是批量梯度下降和随机梯度下降的折中.每次迭代时,我们随机选取一小部分训练样本来计算梯度并更新参数,这样既可以兼顾随机梯度下降法的优点,也可以提高训练效率.

第???? 次迭代时,随机选取一个包含???? 个样本的子集????????,计算这个子集上每个样本损失函数的梯度并进行平均,然后再进行参数更新:
机器学习基础学习笔记(四)优化算法

技巧:

机器学习基础学习笔记(四)优化算法

在实际应用中,小批量随机梯度下降法有收敛快、计算开销小的优点,因此逐渐成为大规模的机器学习中的主要优化算法.