1. 常用函数的有用性质
1.1 logistic sigmoid函数:
logistic sigmoid函数通常用来产生Bernouli分布中的参数 Φ , 因为它的范围是(0, 1), 处在 Φ 的有效取值范围内。sigmoid函数在变量取绝对值非常大的正值或负值时会出现饱和 (saturate)现象,函数会变得很平,并且对输入的微笑改变会变得不敏感。
1.2 softplus 函数
softplus函数可以用来产生正态分布的 β 和 α 参数,因为它的范围是(0, ∞ ). 当处理包含sigmoid函数的表达式时,它也经常出现。softplus函数名来源于它的另一个函数的平滑称软化形式,这个函数为:
x+=max(0,x)
1.2.1 应该背下来的性质
1.3 softmax函数
softmax 函数经常用于预测与Multinoulli分布相关联的概率,定义为:
softmax(x)i=exi∑nj=1exj
1.3.1 上溢和下溢
使用softmax函数的时候,经常需要对其进行上溢和下溢处理。当 xi 等于c时,如果c是非常小的负数,exp(c)就会下溢,此时分母为0. 当c是非常大的正数时,exp(c)就会上溢。
解决办法是,计算softmax(z), z=x−maxixi , 注:这里的z和x为粗体大写。softmax的函数值不会因为从输入向量减去或加上标量而改变。减去 maxixi 导致exp的最大参数为0,这排除了上溢的可能性。同样,分母中至少有一个值为1的项,排除了因分母下溢而导致被零除的可能性。
计算log softmax(x),先计算softmax再把结果传给log函数,会错误地得到 −∞ 。此时,应该使用相同的方法来稳定log softmax函数。
1.4 基于梯度的优化方法(重点)
大多数深度学习算法都涉及某种形式的优化。优化指的是改变x以最小化或最大化某个函数f(x)的任务。
通常我们以最小化f(x)指代大多数最优化问题。最大化可经由最小化算法最小化 -f(x)来实现。
我们把要最小化或最大化的函数称为目标函数 objective function 或准则 criterion。当我们对其进行最小化时,也把它称为代价函数 cost function、损失函数 loss function 或误差 error function。
通常,使用一个上标*表示最小化或者最大化函数的x值,如, x∗=argminf(x) .
对于一维输入,可以求其导数。对于多维输入,需要用到偏导数 partial derivative。
梯度 gradient是相对一个向量求导的导数: f的导数是包含所有偏导数的向量,记为 ∇xf(x) 。梯度的第i个元素是f关于 xi 的偏导数。在多维输入的情况下,临界点是梯度中所有元素都为零的点。
在 μ⃗ 单位向量方向的方向导数 directional derivative 是函数f在 μ⃗ 方向的斜率。也就是说,方向导数是函数 f(x⃗ +αμ⃗ ) 关于 α 的导数,在 α=0 时取得。使用链式法则,我们可以看到,当 α=0 时, ∂∂αf(x⃗ +αμ⃗ )=μT∇xf(x⃗ ) .
为了最小化f,我们希望找到使f下降的最快的方向,计算方向导数:
minμ⃗ ,μ⃗ Tμ⃗ =1μ⃗ T∇x⃗ f(x⃗ )=minμ⃗ ,μ⃗ Tμ⃗ =1∥μ⃗ ∥2∥∇x⃗ f(x⃗ )∥2cosθ
其中, θ 是 μ⃗ 与梯度的夹角。将 ∥μ⃗ ∥2=1 代入,并忽略与 μ⃗ 无关的项,就能简化得到 minμ⃗ cosθ 。这在 μ⃗ 与梯度方向相反时取得最小。也就是说,梯度向量指向上坡,负梯度向量指向下坡。我们在负梯度方向上移动可以减小f。这被称为最速下降法 method of steepest descent 或梯度下降 gradient descent。最速下降建议新的点为:
x⃗ ′=x⃗ −ϵ∇xf(x⃗ )
其中, ϵ 为学习率 learning rate, 是一个确定步长大小的正标量。我们可以通过几种不同的方式选择 ϵ 。普遍的方式是选择一个小常数。有事我们通过计算,选择使方向导数消失的步长。还有一种方法是根据几个 ϵ 计算 f(x⃗ −ϵ∇xf(x⃗ )) ,并选择其中能产生最小目标函数值的 ϵ 。这中策略称为线搜索。最速下降在梯度的每一个元素为零时收敛,或在实践中,很接近零时。在某些情况下,我们也许能够避免运行该迭代算法,并通过解方程 ∇xf(x⃗ )=0 直接跳到临界点。
虽然梯度下降被限制在连续空间中的优化问题,但不断向更好的情况移动一小步,即近似最佳的小移动,的一般概念可以推广到离散空间。递增带有离散参数的目标函数称为盘山 hill climbing算法。
1.5 条件概率的链式法则
条件概率:
P(y=y∣x=x)=P(y=y,x=x)P(x=x)
任何多维随机变量的联合概率分布,都可以分解成只有一个变量的条件概率相乘的形式:
P(x(1),⋯,x(n))=P(x(1))∏i=2nP(x(i)∣x(1),⋯,x(i−1))
这个规则被称为概率的链式法则 chain rule 或者乘法法则 product rule。