上溢下溢与softmax函数
下溢:当接近零的数被四舍五入为零时发生下溢。
上溢:极具破坏力的数字错误形式是上溢。
softmax函数公式
s
o
f
t
m
a
x
(
x
)
i
=
e
x
p
(
x
i
)
∑
j
=
1
n
e
x
p
(
x
j
)
softmax(x)_i = \frac{exp(x_i)}{\sum_{j=1}^nexp(x_j)}
softmax(x)i=∑j=1nexp(xj)exp(xi)
上溢和下溢可以通过z = softmax(z)同时解决,
z
=
x
i
−
m
a
x
i
x
i
z = x_i - max_i x_i
z=xi−maxixi,z = 的最大值为零,并且必有一个值为零。所以分母中至少有一个值为1。
基于梯度的优化方法
优化:改变x的值以最小化,或最大化(最值)某个函数f(x)的任务。
- 在反向传播使用广泛。
- 上标*的x表示目标x的值,记作 x ∗ = a r g m i n f ( x ) x^* = argminf(x) x∗=argminf(x)
- 假设有一个函数 y = f ( x ) y = f(x) y=f(x),可以得到 f ( x + α ) = f ( x ) + α f ‘ ( x ) f(x+\alpha) = f(x)+\alpha f^`(x) f(x+α)=f(x)+αf‘(x)可以看做是求导数公式的变形。可以比较直观的发现导数的负方向是函数因变量较少的方向。
- 有 f ( x − α s i g n ( f ‘ ( x ) ) ) f(x-\alpha sign(f^`(x))) f(x−αsign(f‘(x)))<f(x).
- 梯度下降:往导数的反方向移动一小步来较少f(x)的技术。
- 局部极小值点:临界点是斜率为零的点,其值低于相邻点。
- 局部极大值,其值高于相邻点,同时存在更高和更低的相邻点。
- 优化:想要找到全局最下的点,面临的问题:1.多个局部最小2 存在很多处于非常平坦的区域的鞍点(局部极小)。
- 在深度学习背景下,并不需要征得找到最小,只要在实际应用找到代价函数显著低的值,就能接受。
- 最小化具有多维输入的函数 f ( R n ) − > R f(R^n) - > R f(Rn)−>R后者据观察是一维标量多对1,需要应用到偏导数(partial derivative)。
- 一维 - > 多维 - > 梯度:相对于一个向量的求导的导数,f的导数是包含所有偏导数的向量,记为
▽
x
f
(
x
)
\bigtriangledown_xf(x)
▽xf(x)
梯度的第i个元素是f关于 x i x_i xi的偏导数,临界点是:梯度中所有元素都为零的点。换句话说方向导数是函数 f ( x + α u ) f(x+\alpha u) f(x+αu)关于 α \alpha α导数:
∂ f ( x + α u ) ∂ α = u T ▽ x f ( x ) \frac{\partial f(x+\alpha u)}{\partial \alpha} = u^T\bigtriangledown_xf(x) ∂α∂f(x+αu)=uT▽xf(x)
to optimize function, we want to find the min direction:
min u , u T u u T ▽ x f ( x ) = min u , u T u ∥ u ∥ 2 ∥ ▽ x f ( x ) ∥ 2 cos θ \min_{u, u^Tu}u^T\bigtriangledown_xf(x) = \min_{u, u^Tu}\parallel u\parallel_2 \parallel\bigtriangledown_xf(x)\parallel_2\cos{\theta} u,uTuminuT▽xf(x)=u,uTumin∥u∥2∥▽xf(x)∥2cosθ考虑到u为单位向量并且忽略掉与u无关的项得到 min u , u T u cos θ \min_{u, u^Tu}\cos{\theta} minu,uTucosθ,可以发现梯度方向相反时取得最下,换句话说,梯度向量指向上坡,负梯度向量指下坡,在负方向上移动可以减少f。这被称为最速下降法或梯度下降法。
new point: x ‘ = x − ϵ ▽ x f ( x ) x^` = x - \epsilon \bigtriangledown_x f(x) x‘=x−ϵ▽xf(x)
ϵ \epsilon ϵ为学习率(learning rate)是一个确定步长的正标量。
选择学习率的方法: - 普遍的方式是选择一个很小的常数,通过计算选择使方向导数消失的步长,还有一种方法是根据
几个 ϵ \epsilon ϵ计算 f ( x − ϵ ▽ x f ( x ) ) f(x-\epsilon \bigtriangledown_x f(x)) f(x−ϵ▽xf(x))选择能产生最小目标函数值的 ϵ \epsilon ϵ。
梯度之上 Jacobian 和 Hessian 矩阵
如果有一个function: R m ⟶ R n R^m \longrightarrow R^n Rm⟶Rn,f的Jacobian矩阵被定义为 J ∈ R ( n ∗ m ) J \in R^{(n*m)} J∈R(n∗m)定义为 J i , j = ∂ f ( x ) i x j J_{i,j} = \frac{\partial f(x)_i}{x_j} Ji,j=xj∂f(x)i。