連續數學在數字計算機上的根本困難:我們需要通過有限數量的位模式來表示無限多的實數。計算機在表示實數時總會引入一些近似誤差,這些捨入誤差會導致上溢和下溢問題。
舉例:softmax函式:sof
tmax
(x)i
=exi
∑jn(
exj)
softmax(x)_ = \frac}}^(e^})}
softma
x(x)
i=∑
jn(
exj
)exi
當x
ix_i
xi非常大時會導致exi
e^ex
i上溢,同理,當x
ix_i
xi非常小時會導致exi
e^ex
i下溢,可以通過下面公式解決該問題(其中d為x
ix_i
xi中的最大值):
s i=
evi−
d∑i=
0cev
i−
ds_= \frac-d}}^e^-d}}
si=∑i
=0c
evi
−dev
i−d
基礎當導數等於0時,導數無法提供往哪個方向移動的資訊。
駐點有三種:區域性極小點,區域性極大點、鞍點。
梯度向量∇xf
(x
)\nabla_f(x)
∇xf(x
)指向上坡,負梯度向量指向下坡,我們在負梯度方向上移動可以減少f
ff,這被稱為最速下降法(method of steepest descent)或梯度下降法(gradient descent),更新公式:x『=
x−α∇
xf(x
)x^` = x - \alpha\nabla_f(x)
x『=x−α
∇xf
(x)
jacobian和hessian矩陣
定義:如果我們有乙個函式:f:r
m→
rf:r^m \rightarrow r
f:rm→r
,則海森矩陣h∈r
m×
mh\in r^
h∈rm×m
,其中hi,
j=∂2
∂xix
jf
h_ = \fracf
hi,j=
∂xi
xj∂
2f二階導數是對曲率的衡量,它告訴我們一階導數如何隨著輸入的變化而改變。
曲率為零⟹
\longrightarrow
⟹一階導數是常數⟹
\longrightarrow
⟹函式f是一條平坦的線⟹
\longrightarrow
⟹代價函式下降的速度與步長α
\alpha
α相等曲率為負時(即二階導數為負)函式向下凹陷,為正向上凹陷
hessian矩陣是實對稱矩陣,因此我們可以將其分解成一組是特徵值和一組特徵向量的正交基,最大的特徵值確定最大的二階導數,最小的特徵值確定最小的二階導數
某個特定方向d上的二階導數為dth
dd^thd
dthd
,當d是h的乙個特徵向量時,此方向上的二階導數就是對應的特徵值,對於其他方向d,方向的二階導數是所有特徵值的加權平均,權重在0和1之間,且與d的夾角越小的特徵向量權重越大。
二階導數可以用來確定最優步長,α∗=
gtgg
th
g\alpha^* = \frac
α∗=gth
ggtg
,其中g是梯度,最壞情況下梯度g與h最大特徵值λma
x\lambda_
λmax
對應的特徵向量對齊,此時α∗=
1λma
x\alpha^* = \frac}
α∗=λma
x1
二階導數可以用來確定乙個臨界點是否是區域性極大值、區域性極小值或鞍點。當hessian矩陣正定時,為區域性極小點、反之,負定時為區域性極大值;當hessian既有正特徵值也有負特徵值時,此臨界點很可能是鞍點;當包含零特徵值,且非零特徵值是同號時,無法確定。
一階優化演算法,如梯度下降法,只使用了函式的一階資訊,並沒有利用hessian矩陣中的曲率資訊,當hessian矩陣條件數很差時,會導致梯度下降法表現很差,可以通過對資料進行標準化處理來解決該問題。(另外,梯度下降法不會被卡在鞍點,但牛頓法,可能會)
二階優化演算法,如牛頓法, 會使用到hessian矩陣的資訊。
約束問題
假設我們希望在x的某些集合s中找f(x)的最大值或最小值,一般使用拉格朗日乘子法。
假設s
=s = \\ and\ \forall j, h^ \leq 0\}
s=第一步:我們設拉格朗日函式為:l(x
,λ,α
)=f(
x)+∑
iλig
(i)(
x)+∑
jαjh
(j)(
x)
l(x, \lambda, \alpha) = f(x) + \sum_i\lambda_ig^(x) + \sum_j\alpha_jh^(x)
l(x,λ,
α)=f
(x)+
i∑λ
ig(
i)(x
)+j∑
αj
h(j)
(x)第二步:優化min
xmax
λmax
α,α≥
0l(x
,λ,α
)min_x\ max_\ max_\ l(x,\lambda, \alpha)
minxm
axλ
maxα
,α≥0
l(x
,λ,α
)第三步:使用kkt條件來尋找最優點,kkt條件是必要條件,不一定是充分條件;
數值分析 深度學習中的數值計算技巧
overflow 浮點數上溢,數值逼近無窮大時出現 浮點數溢位,不論是上溢還是下溢,會使得最終的結果 undefined 比如為 nan 或者跟真實的結果相差很大的量級 softmax 函式用於 多分類問題,各個類別的概率輸出。softmax x i exp x i n j 1exp x j sof...
數值問題 深度學習 Softmax
softmax函式 上溢和下溢數值穩定 s of tmax xi exi iex softmax x i frac e softma x xi i ex exi 問題 假設所有的x ix i xi 都等於某個常數c textbf c,理論上對所有x ix i xi 上式結果為1 n frac n1 ...
oracle 中數值的計算
運算子 含義 加 加法 加 字串相加 減 減法 乘 乘法 除 除法 mod 模 返回乙個除法的整數餘數 例如,12 5 2,這是因為 12 除以 5,餘數為 2 示例 select5 6 5 nullfromdual select5 6fromdual select5 6fromdual selec...