声明:仅用于自学。部分内容来自于网络,如有问题,请联系删除。

英文原文的官方网站,仅供参考:https://www.deeplearningbook.org/

第四章:数值计算

4.2 病态条件

  条件数是指函数相对于其输入的微小变化而变化的快慢程度。 当输入受到轻微扰动时快速变化的函数可能会对科学计算产生问题,因为输入中的舍入误差会导致输出发生较大变化。
  考虑函数 f ( x ) = A − 1 x f(x)= A^{-1}x fx=A1x。 当 A ∈ R n × n A∈\mathbb{R}^{n×n} ARn×n具有特征值分解时,其条件数为:


                     m a x i , j ∣ λ i λ j ∣ max_{i,j}|\frac{\lambda_i}{\lambda_j}| maxi,jλjλi          (4.2)


  这是最大和最小特征值的大小之比。 当此数字很大时,矩阵求逆对输入中的误差特别敏感。
  这种敏感度是矩阵本身的固有特性,而不是矩阵求逆过程中舍入误差的结果。 即使当我们乘以完全正确的矩阵逆时,病态条件的矩阵会放大预先存在的误差。 在实践上,该错误将与求逆过程本身的数值误差进一步复合。

4.3 基于梯度的优化方法

  大多数深度学习算法都涉及某种优化。 优化是指通过改变x来最小化或最大化某些函数 f ( x ) f(x) fx的任务。 我们通常用最小化 f ( x ) f(x) fx来表达大多数最优化问题。最大化可以经由最小化 f ( x ) f(x) fx的最小化算法 − f ( x ) -f(x) fx来实现。
  我们要最小化或最大化的函数称为目标函数(objective function)判断事务的标准(criterion)。 当我们最小化它时,我们也可以称其为代价函数(cost function)损失函数(loss function)误差函数(error function)。 尽管某些机器学习著作赋予其中一些术语特殊含义,但在书中,我们可以交替使用这些术语。
  我们通常用上标∗表示使函数最小化或最大化的值x。 例如,我们可以说 x ∗ = a r g m i n f ( x ) x ^∗ = arg min f(x) x=argminfx
  我们假设读者已经熟悉微积分,但是在这里简要介绍了微积分概念与优化的联系。
  假设我们有一个函数 y = f ( x ) y = f(x) y=fx,其中两个x和y均为实数,该函数的导数(derivative)表示为 f ′ ( x ) f'(x) fx d y d x \frac{dy}{dx} dxdy。 导数 f ′ ( x ) f'(x) fx在点x处给出斜率 f ( x ) f(x) fx。 换句话说,它表明了如何缩放输入中的小变化以获得输出中的相应变化: f ( x + ϵ ) ≈ f ( x ) + ϵ f ’ ( x ) f(x +\epsilon )≈f(x)+\epsilon f’(x) fx+ϵfx+ϵfx
  因此,导数可用于最小化函数,因为它告诉我们如何更改x以来略微的改善y。 例如,我们知道足够小的 ϵ \epsilon ϵ来说, f ( x − ϵ s i g n ( f ′ ( x ) ) ) f(x-\epsilon sign(f'(x))) fxϵsignfx f ( x ) f(x) fx小。 因此,我们可以将 x 通过往导数的反方向移动一小步长来减少 f ( x ) f(x) fx。此技术称为梯度下降(gradient descent)(柯西,1847)。 有关此技术的示例,请参见图4.1。

《深度学习》学习笔记【第四章:数值计算】 4.2-4.3 病态条件,基于梯度的优化方法(1)

图4.1:梯度下降。 梯度下降算法如何使用函数的导数的图示,即将函数沿着下坡方向直到最小。

相关文章:

  • 2022-12-23
  • 2021-11-04
  • 2021-09-13
  • 2021-05-23
  • 2021-04-09
  • 2021-09-19
  • 2021-09-11
  • 2021-08-03
猜你喜欢
  • 2021-05-13
  • 2021-04-13
  • 2021-07-04
  • 2021-10-11
  • 2021-09-07
  • 2021-04-12
相关资源
相似解决方案