对于诸位「MLer」而言,梯度下降这个概念一定不陌生,然而从直观上来看,梯度下降的复杂性无疑也会让人「敬而远之」。本文作者 Suraj Bansal 通过对梯度下降背后的数学原理进行拆解,并配之以简单的现实案例,以轻松而有趣的口吻带大家深入了解梯度下降这一在机器学习领域至关重要的方法。「敏捷软件开发」定义了迭代产品开发的过程,以下步骤可通过这一过程执行。1)市场调研后进行产品构建2)产品商业化并进入市场3)评估消费者满意度和市场渗透率4)对反馈及时回应,并更新迭代产品5)重复上述过程这个过程实质上是将市场测试、 收集反馈和产品迭代反复进行,直到能以最小的误差实现最大的市场渗透率。此循环重复多次,并确保消费者可以在每个步骤中提供一定的反馈来影响产品的更改策略。实际上,这种看似简单的反复迭代过程很好地体现在梯度下降原理中。梯度下降能够通过首先计算出成本函数的梯度、然后更新梯度对应的现有参数从而最小化成本函数来处理。梯度将具有众多变量的函数转换为一个向量(稍后我们将对该话题进行讨论)。了解梯度下降背后的多元演算听起来可能会让人十分畏惧……别怕,下面我将对梯度下降背后的原理做出解释并且仅跟大家探讨理解梯度下降所需的数学概念。
https://www.datadriveninvestor.com/2019/03/03/editors-pick-5-machine-learning-books/该方法的误差梯度和收敛速度较为稳定,可以实现足够水平的计算效率。但是,由于该模型仅在分析了整个训练集之后才对权重进行迭代,此时的收敛状态可能不是最优的状态,事实上,该模型还可以优化以达到更精确的结果!2、第二种变体:随机梯度下降下面进入……随机梯度下降!这两种方法之间的根本区别在于,随机梯度下降法随机化了整个数据集并对每个单独的训练样本进行权重和参数的更新,而批量梯度下降是在分析了整个训练集之后对参数进行更新。对模型连续更新可以提供更高的准确率和更快的计算速度。但是,频繁的更改会产生更多的梯度噪声,这意味着它会在误差最小值区域(成本函数最低的点)内来回振荡。因此,每次运行测试都会存在一些差异。好的,这两种方法都有一些明显的优缺点,那么到底哪种方法更适合你的机器学习模型?这也不是什么很难的问题——都不是!3、第三种变体:迷你批量梯度下降再接下来进入……迷你批次梯度下降!它基本上结合了批量梯度下降的效率和随机梯度下降的整体鲁棒性。该方法通过将数据集聚类为更小的批量(通常在30–500个训练点数之间),并且模型对每个单独批量执行迭代。它通过使用高度优化的矩阵来提高效率和准确性,这有效减小了参数更新的方差。所有梯度下降变体都将使用以下公式进行建模。每当模型进行反向传播后,都会执行此迭代,直到成本函数达到其收敛点为止。
权重向量存在于 x-y 平面中,将对应每个权重的损失函数的梯度与学习率相乘,然后用向量减去二者的乘积。偏导数是用于更新参数 θ0、θ1和alpha(学习率)的梯度,而alpha是需要用户自己给定的非常重要的超参数。M 代表更新的次数,i 代表梯度更新的起始点。
想象自己站在函数 f 以一定间隔排列的点(x0,y0…)之中。向量∇f(x0,y0…)将识别出使 f函数值增加的最快行进方向。有趣的是,梯度矢量∇f(x0,yo…)也垂直于函数 f 的轮廓线!假设偏导数是具有 n 个偏导数的 n 次导数,这些偏导数可以将每个单独的变量与其他看作常数的变量隔离开来。而梯度将每个偏导数组合成一个向量。
下面的公式将 x 表示为输入的训练数据(参数为单变量或单输入变量),假设进行了监督学习,则 y 表示数据的标签。让我们通过以下示例对此做进一步了解。Elon 在 salesx 担任兼职市场总监,他收集了过去一年的促销工作促销活动的付款额与销售额的数据,给未来销售和促销提供一些指导性建议。Elon认为该数据应该是线性的,所以用散点图的方式来呈现这些信息,横纵坐标分别为新客户数量和花费的成本。Elon构造了回归线,其目的是为了更好地理解和预测salesx将通过新的营销理念获得多少客户。9、多项式回归线性回归可以很好地显示数据集中两个相关变量中存在的结构和趋势。但是,考虑到线性函数的行为,而由于在非线性关系中依然可以清楚地表现出一定的相关性,它们无法将非线性的回归关系进行准确反映。多项式回归能够对 n 次方函数之间的关系进行建模,并且可以以低于线性回归的误差函数值拟合某些数据集。尽管多项式回归可以更好地拟合函数的曲率,并且可以最准确地表示两个变量之间的关系,但它们对异常值极为敏感,那些异常值很容易造成数据偏离。