深度学习-数值计算

1、上溢和下溢

连续数学在计算机上的根本困难是,我们需要通过有限数量的位模式来表示无限多的实数。这意味着我们在计算机中表示实数时,总会引入一些近似误差。
一种极具毁灭性的舍入误差是下溢(underflow)。当接近零的数被四舍五入为零时发生下溢。
另一个极具破坏力的数值错误形式是上溢(overflow),当大量的数被近似为正无穷或负无穷时发生上溢。进一步的运算通常会导致这些无限值变为非数字。
必须对上溢和下溢进行数值稳定的一个例子是softmax函数(softmax function)。softmax 函数经常用于预测与 Multinoulli 分布相关联的概率,定义为
在这里插入图片描述

2、病态条件

条件数表征函数相对于输入的微小变化而变化的快慢程度。输入被轻微扰动而迅速改变的函数对于科学计算来说可能是有问题的,因为输入中的舍入误差可能导致输出的巨大变化。
在这里插入图片描述

3、基于梯度的优化方法

大多数深度学习都涉及某种形式的优化。优化指的是改变x以最小化或最大化某个函数f(x)的任务。我们通常以最小化f(x)指代大多数优化问题。最大化可以由-f(x)来实现。
我们把要最小化或最大化的函数称为目标函(objective function)或准则(criterion)。当我们对其进行最小化时,我们也把它称为代价函数(cost function)、损失函数(loss function)或误差函(error function)。
我们通常使用一个上标表示最小化或最大化函数的x值。记为x=argmin f(x)。
导数对于最小化函数很有用,因为它告诉我们如何更改x来略微地改善y。例如,我们知道对于足够小的 ϵ来说f(x − ϵsign(f ′ (x))) 是比 f(x) 小的。因此我们可以将 x 往导数的反方向移动一小步来减小 f(x)。这种技术被称为梯度下降
(gradient descent)
梯度下降。梯度下降算法如何使用函数导数的示意图,即沿着函数的下坡方向(导数反方向)直到最小
使 f(x) 取得绝对的最小值(相对所有其他值)的点是全局最小点(global minimum)在深度学习的背景下,我们要优化的函数可能含有许多不是最优的局部极小点,或者还有很多处于非常平坦的区域内的鞍点。尤其是当输入是多维的时候,所有这些都将使优化变得困难。因此,我们通常寻找使 f 非常小的点,但这在任何形式意义下并不一定是最小。
最小近似化。当存在多个局部极小点或平坦区域时,优化算法可能无法找到全局最小点。在深度学习背景下,即使找到的解不是真正最小的,但只要他们对应于代价函数显著低的值,我们就能接受这样的解
最速下降建议新的点为
x ′ = x − ϵ∇ x f(x) 其中 ϵ 为学习率(learning rate),是一个确定步长大小的正标量。我们可以通过几种不同的方式选择 ϵ。普遍的方式是选择一个小常数。有时我们通过计算,选择使方向导数消失的步长。还有一种方法是根据几个 ϵ 计算 f(x − ϵ∇ x f(x)),并选择其中
能产生最小目标函数值的 ϵ。这种策略被称为线搜索。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值