中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

在洪雅網(wǎng)站做企業(yè)招聘seo技術(shù)外包

在洪雅網(wǎng)站做企業(yè)招聘,seo技術(shù)外包,網(wǎng)站怎樣制作 優(yōu)幫云,如何做網(wǎng)站里的子網(wǎng)站最小二乘問題和非線性優(yōu)化 0.引言1.最小二乘問題2.迭代下降法3.最速下降法4.牛頓法5.阻尼法6.高斯牛頓(GN)法7.萊文貝格馬夸特(LM)法8.魯棒核函數(shù) 0.引言 轉(zhuǎn)載自此處,修正了一點小錯誤。 1.最小二乘問題 在求解 SLAM 中的最優(yōu)狀態(tài)估計問題時,我們一般…

最小二乘問題和非線性優(yōu)化

    • 0.引言
    • 1.最小二乘問題
    • 2.迭代下降法
    • 3.最速下降法
    • 4.牛頓法
    • 5.阻尼法
    • 6.高斯牛頓(GN)法
    • 7.萊文貝格馬夸特(LM)法
    • 8.魯棒核函數(shù)

0.引言

轉(zhuǎn)載自此處,修正了一點小錯誤。

1.最小二乘問題

在求解 SLAM 中的最優(yōu)狀態(tài)估計問題時,我們一般會得到兩個變量,一個是由傳感器獲得的實際觀測值 z \boldsymbol{z} z,一個是根據(jù)目前估計的狀態(tài)量和觀測模型計算出來的預(yù)測值 h ( x ) h(\boldsymbol{x}) h(x)。求解最優(yōu)狀態(tài)估計問題時通常我們會嘗試最小化預(yù)測值和觀測值計算出的殘差平方(使用平方是為了統(tǒng)一正負(fù)號的影響),即求解以下最小二乘問題:

x ? = arg ? min ? x ∣ ∣ z ? h ( x ) ∣ ∣ 2 \boldsymbol{x}^* = \arg\min_{\boldsymbol{x}}||\boldsymbol{z} - h(\boldsymbol{x})||^2 x?=argxmin?∣∣z?h(x)2
如果觀測模型是線性模型,則上式轉(zhuǎn)化為線性最小二乘問題:

x ? = arg ? min ? x ∣ ∣ z ? H x ∣ ∣ 2 \boldsymbol{x}^* = \arg\min_{\boldsymbol{x}}||\boldsymbol{z} - \boldsymbol{H}\boldsymbol{x}||^2 x?=argxmin?∣∣z?Hx2
對于線性最小二乘問題,我們可以直接求閉式解: x ? = ? ( H T H ) ? 1 H T z \boldsymbol{x}^* = -(\boldsymbol{H}^T\boldsymbol{H})^{-1}\boldsymbol{H}^T\boldsymbol{z} x?=?(HTH)?1HTz 這里不進(jìn)行贅述。

實際的問題中,我們通常要最小化不止一個殘差,不同殘差通常會按其重要性(不確定性)分配一個相應(yīng)的權(quán)重系數(shù),且觀測模型也通常是非線性的,即求解以下問題:

e i ( x ) = z i ? h i ( x ) i = 1 , 2 , . . . , n ∣ ∣ e i ( x ) ∣ ∣ Σ i 2 = e i T Σ i e i x ? = arg ? min ? x F ( x ) = arg ? min ? x ∑ i ∣ ∣ e i ( x ) ∣ ∣ Σ i 2 \begin{aligned} \boldsymbol{e}_i(\boldsymbol{x}) &= \boldsymbol{z}_i - h_i(\boldsymbol{x}) \qquad i = 1, 2, ..., n\\ ||\boldsymbol{e}_i(\boldsymbol{x})||^2_{\Sigma_i} &= \boldsymbol{e}_i^T\boldsymbol{\Sigma}_i\boldsymbol{e}_i\\ \boldsymbol{x}^* &= \arg\min_{\boldsymbol{x}}F(\boldsymbol{x})\\ &= \arg\min_{\boldsymbol{x}}\sum_i||\boldsymbol{e}_i(\boldsymbol{x})||^2_{\Sigma_i} \end{aligned} ei?(x)∣∣ei?(x)Σi?2?x??=zi??hi?(x)i=1,2,...,n=eiT?Σi?ei?=argxmin?F(x)=argxmin?i?∣∣ei?(x)Σi?2??
我們想要獲得一個狀態(tài)量 x ? \boldsymbol{x}^* x?,使得損失函數(shù) F ( x ) F(\boldsymbol{x}) F(x) 取得局部最小值。

在具體求解之前,先考慮 F ( x ) F(\boldsymbol{x}) F(x) 的性質(zhì),對其進(jìn)行二階泰勒展開:

F ( x + Δ x ) = F ( x ) + J Δ x + 1 2 Δ x T H Δ x + O ( ∣ ∣ Δ x ∣ ∣ 3 ) F(\boldsymbol{x} + \Delta\boldsymbol{x}) = F(\boldsymbol{x}) + \boldsymbol{J}\Delta\boldsymbol{x} + \frac{1}{2}\Delta\boldsymbol{x}^T\boldsymbol{H}\Delta\boldsymbol{x} + O(||\Delta\boldsymbol{x}||^3) F(x+Δx)=F(x)+JΔx+21?ΔxTHΔx+O(∣∣Δx3)
忽略高階余項,對二次函數(shù),有以下性質(zhì):

如果在點 x ? \boldsymbol{x}^* x? 處,導(dǎo)數(shù)為 0 \boldsymbol{0} 0,則這個點為穩(wěn)定點,根據(jù) Hessian 矩陣的正定性有不同性質(zhì):

  • 如果 H \boldsymbol{H} H 為正定矩陣,則 F ( x ? ) F(\boldsymbol{x}^*) F(x?) 為局部最小值
  • 如果 H \boldsymbol{H} H 為負(fù)定矩陣,則 F ( x ? ) F(\boldsymbol{x}^*) F(x?) 為局部最大值
  • 如果 H \boldsymbol{H} H 為不定矩陣,則 F ( x ? ) F(\boldsymbol{x}^*) F(x?) 為鞍點

在實際過程中,一般 F ( x ) F(x) F(x) 比較復(fù)雜,我們沒有辦法直接使其導(dǎo)數(shù)為 0 進(jìn)而求出該點,因此常用的是迭代法,即找到一個下降方向使損失函數(shù)隨 x \boldsymbol{x} x 的迭代逐漸減少,直到 x \boldsymbol{x} x 收斂到 x ? \boldsymbol{x}^* x?。下面整理以下常用的幾種迭代方法。

2.迭代下降法

上面提到,我們需要找到一個 x \boldsymbol{x} x 的迭代量使得 F ( x ) F(\boldsymbol{x}) F(x) 減少。這個過程分兩步:

找到 F ( x ) \boldsymbol{F(x)} F(x) 的下降方向,構(gòu)建該方向的單位向量 d \boldsymbolvxwlu0yf4 d
確定該方向的迭代步長 α \alpha α
迭代后的自變量 x + α d \boldsymbol{x} + \alpha\boldsymbolvxwlu0yf4 x+αd 對應(yīng)的函數(shù)值可以用一階泰勒展開近似(當(dāng)步長足夠小的時候):

F ( x + α d ) = F ( x ) + α J d F(\boldsymbol{x} + \alpha\boldsymbolvxwlu0yf4) = F(\boldsymbol{x}) + \alpha\boldsymbol{Jd} F(x+αd)=F(x)+αJd
因此,不難發(fā)現(xiàn),要保持 F ( x ) F(x) F(x) 是下降的,只需要保證 J d < 0 \boldsymbol{Jd} < 0 Jd<0。以下幾種方法都是以不同思路在尋找一個合適的方向進(jìn)行迭代。

3.最速下降法

基于上一部分,我們知道變化量為 α J d \alpha\boldsymbol{Jd} αJd,其中 J d = ∣ ∣ J ∣ ∣ cos ? θ \boldsymbol{Jd} = ||\boldsymbol{J}||\cos{\theta} Jd=∣∣J∣∣cosθ θ \theta θ 為梯度 J \boldsymbol{J} J d \boldsymbolvxwlu0yf4 d 的夾角。當(dāng) θ = ? π \theta = -\pi θ=?π 時, J d = ? ∣ ∣ J ∣ ∣ \boldsymbol{Jd} = -||\boldsymbol{J}|| Jd=?∣∣J∣∣ 取得最小值,此時方向向量為:

d = ? J T ∣ ∣ J ∣ ∣ \boldsymbolvxwlu0yf4 = \frac{-\boldsymbol{J}^T}{||\boldsymbol{J}||} d=∣∣J∣∣?JT?
因此,沿梯度 J \boldsymbol{J} J 的負(fù)方向可以使 F ( x ) F(\boldsymbol{x}) F(x),但實際過程中,一般只會在迭代剛開始使用這種方法,當(dāng)接近最優(yōu)值時這種方法會出現(xiàn)震蕩并且收斂較慢。

4.牛頓法

F ( x ) F(\boldsymbol{x}) F(x) 進(jìn)行二階泰勒展開有:

F ( x + Δ x ) = F ( x ) + J Δ x + 1 2 Δ x T H Δ x F(\boldsymbol{x} + \Delta\boldsymbol{x}) = F(\boldsymbol{x}) + \boldsymbol{J}\Delta\boldsymbol{x} + \frac{1}{2}\Delta\boldsymbol{x}^T\boldsymbol{H}\Delta\boldsymbol{x} F(x+Δx)=F(x)+JΔx+21?ΔxTHΔx
我們關(guān)注的是求一個 Δ x \Delta\boldsymbol{x} Δx 使得 J Δ x + 1 2 Δ x T H Δ x \boldsymbol{J}\Delta\boldsymbol{x} + \frac{1}{2}\Delta\boldsymbol{x}^T\boldsymbol{H}\Delta\boldsymbol{x} JΔx+21?ΔxTHΔx 最小,因此可以求導(dǎo)得:

? ( J Δ x + 1 2 Δ x T H Δ x ) ? Δ x = J T + H Δ x = 0 ? Δ x = ? H ? 1 J T \begin{aligned} \frac{\partial(\boldsymbol{J}\Delta\boldsymbol{x} + \frac{1}{2}\Delta\boldsymbol{x}^T\boldsymbol{H}\Delta\boldsymbol{x})}{\partial\Delta\boldsymbol{x}} &= \boldsymbol{J}^T + \boldsymbol{H}\Delta\boldsymbol{x} = 0\\ \Rightarrow \Delta\boldsymbol{x} &= -\boldsymbol{H}^{-1}\boldsymbol{J}^T \end{aligned} ?Δx?(JΔx+21?ΔxTHΔx)??Δx?=JT+HΔx=0=?H?1JT?
當(dāng) H \boldsymbol{H} H 為正定矩陣且當(dāng)前 x \boldsymbol{x} x 在最優(yōu)點附近時,取 Δ x = ? H ? 1 J T \Delta\boldsymbol{x} = -\boldsymbol{H}^{-1}\boldsymbol{J}^T Δx=?H?1JT 可以使函數(shù)獲得局部最小值。但缺點是殘差的 Hessian 函數(shù)通常比較難求。

5.阻尼法

在牛頓法的基礎(chǔ)上,為了控制每次迭代不要太激進(jìn),我們可以在損失函數(shù)中增加一項懲罰項,如下所示:

arg ? min ? Δ x { F ( x ) + J Δ x + 1 2 Δ x T H Δ x + 1 2 μ ( Δ x ) T ( Δ x ) } \arg\min_{\Delta\boldsymbol{x}}\left\{F(\boldsymbol{x}) + \boldsymbol{J}\Delta\boldsymbol{x} + \frac{1}{2}\Delta\boldsymbol{x}^T\boldsymbol{H}\Delta\boldsymbol{x} + \frac{1}{2}\mu(\Delta\boldsymbol{x})^T(\Delta\boldsymbol{x})\right\} argΔxmin?{F(x)+JΔx+21?ΔxTHΔx+21?μ(Δx)T(Δx)}
當(dāng)我們選的 Δ x \Delta\boldsymbol{x} Δx 太大時,損失函數(shù)也會變大,變大的幅度由 μ \mu μ 決定,因此我們可以控制每次迭代量 Δ x \Delta\boldsymbol{x} Δx 的大小。同樣在右側(cè)部分對 Δ x \Delta\boldsymbol{x} Δx 求導(dǎo)有:

J T + H Δ x + μ Δ x = 0 ( H + μ I ) Δ x = ? J T \begin{aligned} \boldsymbol{J}^T + \boldsymbol{H}\Delta\boldsymbol{x} + \mu\Delta\boldsymbol{x} &= 0\\ (\boldsymbol{H} + \mu\boldsymbol{I})\Delta\boldsymbol{x} = -\boldsymbol{J}^T \end{aligned} JT+HΔx+μΔx(H+μI)Δx=?JT?=0
這個思路我們后面在介紹 LM 法時也會用到。

6.高斯牛頓(GN)法

在前面的整理中實際上我們求解的是一系列殘差的和,求單個殘差的雅可比比較簡單,因此在后續(xù)的幾種方法中我們關(guān)注各個殘差的變化。將上述非線性最小二乘問題中的各個殘差寫成向量形式:

F ( x ) = E ( x ) = [ e 1 ( x ) e 2 ( x ) . . . e n ( x ) ] \boldsymbol{F}(\boldsymbol{x}) =\boldsymbol{E}(\boldsymbol{x}) =\begin{bmatrix} \boldsymbol{e}_1(\boldsymbol{x})\\ \boldsymbol{e}_2(\boldsymbol{x})\\ ...\\ \boldsymbol{e}_n(\boldsymbol{x})\\ \end{bmatrix} F(x)=E(x)= ?e1?(x)e2?(x)...en?(x)? ?

e ( x ) \boldsymbol{e}(\boldsymbol{x}) e(x) 進(jìn)行泰勒展開,有:

e ( x + Δ x ) = e ( x ) + J Δ x \boldsymbol{e}(\boldsymbol{x} + \Delta\boldsymbol{x}) = \boldsymbol{e}(\boldsymbol{x}) + \boldsymbol{J}\Delta\boldsymbol{x} e(x+Δx)=e(x)+JΔx
上式中, J \boldsymbol{J} J 是殘差矩陣 e ( x ) \boldsymbol{e}(\boldsymbol{x}) e(x) 對狀態(tài)量的雅可比矩陣。

注意到在原來的線性最小二乘問題中,對每個殘差還有一個權(quán)重矩陣 Σ \boldsymbol{\Sigma} Σ。這種情況下,我們只需要令 e i ( x ) = Σ i e i ( x ) \boldsymbol{e}_i(\boldsymbol{x}) = \sqrt{\boldsymbol{\Sigma}_i}\boldsymbol{e}_i(\boldsymbol{x}) ei?(x)=Σi? ?ei?(x) 即可。因此下式中暫不考慮 Σ \boldsymbol{\Sigma} Σ 的影響。

在這種形式下對 e ( x ) \boldsymbol{e}(\boldsymbol{x}) e(x) 進(jìn)行泰勒展開,有:

∣ ∣ e ( x + Δ x ) ∣ ∣ 2 = e ( x + Δ x ) T e ( x + Δ x ) = ( e ( x ) + J Δ x ) T ( e ( x ) + J Δ x ) = e ( x ) T e ( x ) + Δ x T J T e ( x ) + e ( x ) T J Δ x + Δ x T J T J Δ x \begin{aligned} ||e(\boldsymbol{x} + \Delta\boldsymbol{x}) ||^2&= \boldsymbol{e}(\boldsymbol{x} + \Delta\boldsymbol{x})^T\boldsymbol{e}(\boldsymbol{x} + \Delta\boldsymbol{x})\\ &= (\boldsymbol{e}(\boldsymbol{x}) + \boldsymbol{J}\Delta\boldsymbol{x})^T(\boldsymbol{e}(\boldsymbol{x}) + \boldsymbol{J}\Delta\boldsymbol{x})\\ &= \boldsymbol{e}(\boldsymbol{x})^T\boldsymbol{e}(\boldsymbol{x}) + \Delta\boldsymbol{x}^T\boldsymbol{J}^T\boldsymbol{e}(\boldsymbol{x}) + \boldsymbol{e}(\boldsymbol{x})^T\boldsymbol{J}\Delta\boldsymbol{x} + \Delta\boldsymbol{x}^T\boldsymbol{J}^T\boldsymbol{J}\Delta\boldsymbol{x} \end{aligned} ∣∣e(x+Δx)2?=e(x+Δx)Te(x+Δx)=(e(x)+JΔx)T(e(x)+JΔx)=e(x)Te(x)+ΔxTJTe(x)+e(x)TJΔx+ΔxTJTJΔx?
上式中,注意到: e ( x ) e(\boldsymbol{x}) e(x) 是一維的,因此 Δ x T J T e ( x ) = e ( x ) T J Δ x \Delta\boldsymbol{x}^T\boldsymbol{J}^T\boldsymbol{e}(\boldsymbol{x}) = \boldsymbol{e}(\boldsymbol{x})^T\boldsymbol{J}\Delta\boldsymbol{x} ΔxTJTe(x)=e(x)TJΔx,因此化簡得:

F ( x + Δ x ) = e ( x ) T e ( x ) + 2 e ( x ) T J Δ x + Δ x T J T J Δ x = F ( x ) + 2 e ( x ) T J Δ x + Δ x T J T J Δ x \begin{aligned} F(\boldsymbol{x} + \Delta\boldsymbol{x}) &= \boldsymbol{e}(\boldsymbol{x})^T\boldsymbol{e}(\boldsymbol{x}) + 2\boldsymbol{e}(\boldsymbol{x})^T\boldsymbol{J}\Delta\boldsymbol{x} + \Delta\boldsymbol{x}^T\boldsymbol{J}^T\boldsymbol{J}\Delta\boldsymbol{x}\\ &= F(\boldsymbol{x}) + 2\boldsymbol{e}(\boldsymbol{x})^T\boldsymbol{J}\Delta\boldsymbol{x} + \Delta\boldsymbol{x}^T\boldsymbol{J}^T\boldsymbol{J}\Delta\boldsymbol{x} \end{aligned} F(x+Δx)?=e(x)Te(x)+2e(x)TJΔx+ΔxTJTJΔx=F(x)+2e(x)TJΔx+ΔxTJTJΔx?
通過這種方式,我們同樣將其近似一個二次函數(shù),并且和我們之前展開的結(jié)果比較,不難發(fā)現(xiàn)在這里我們實際上是用 J T e \boldsymbol{J}^T\boldsymbol{e} JTe 來近似 Jacobian 矩陣,用 J T J \boldsymbol{J}^T\boldsymbol{J} JTJ 來近似 Hessian 矩陣。因此,當(dāng) J \boldsymbol{J} J 滿秩時,我們可以保證在上式導(dǎo)數(shù)為 0 的地方可以確保函數(shù)取得局部最小值。同樣,在上式右側(cè)部分對 Δ x \Delta\boldsymbol{x} Δx 求導(dǎo)并使其為 0 有:

J T e ( x ) + J T J Δ x = 0 ? J T J Δ x = ? J T e ( x ) ? H Δ x = b \begin{aligned} \boldsymbol{J}^T\boldsymbol{e}(\boldsymbol{x}) + \boldsymbol{J}^T\boldsymbol{J}\Delta\boldsymbol{x} = 0\\ \Rightarrow \boldsymbol{J}^T\boldsymbol{J}\Delta\boldsymbol{x} &= -\boldsymbol{J}^T\boldsymbol{e}(\boldsymbol{x})\\ \Rightarrow \boldsymbol{H}\Delta\boldsymbol{x} &= \boldsymbol \end{aligned} JTe(x)+JTJΔx=0?JTJΔx?HΔx?=?JTe(x)=b?
上式中,我們令 H = J T J , b = ? J T e \boldsymbol{H} = \boldsymbol{J}^T\boldsymbol{J}, \boldsymbol = -\boldsymbol{J}^T\boldsymbol{e} H=JTJ,b=?JTe。這樣我們獲得了高斯牛頓法的求解過程:

  • 計算殘差矩陣關(guān)于狀態(tài)值的雅可比矩陣 J \boldsymbol{J} J
  • 利用雅可比矩陣和殘差構(gòu)建信息矩陣和信息向量 H , b \boldsymbol{H}, \boldsymbol H,b
  • 計算當(dāng)次迭代量: Δ x = H ? 1 b \Delta\boldsymbol{x} = \boldsymbol{H}^{-1}\boldsymbol Δx=H?1b
  • 如果迭代量足夠小則結(jié)束迭代,否則進(jìn)入下一次迭代

7.萊文貝格馬夸特(LM)法

LM 法是在高斯牛頓法的基礎(chǔ)上按照阻尼法的思路加入阻尼因子,即求解以下方程:

( H + μ I ) Δ x = b (\boldsymbol{H} + \mu\boldsymbol{I})\Delta\boldsymbol{x} = \boldsymbol (H+μI)Δx=b
上式中,阻尼因子的作用有:

  • 添加進(jìn) H \boldsymbol{H} H 保證 H \boldsymbol{H} H 是正定的

  • 當(dāng) μ \mu μ 很大時, Δ x = ? ( H + μ I ) ? 1 b ≈ ? 1 μ b = ? 1 μ J T E ( x ) \Delta\boldsymbol{x} = -(\boldsymbol{H}+\mu\boldsymbol{I})^{-1}\boldsymbol\approx-\frac{1}{\mu}\boldsymbol=-\frac{1}{\mu}\boldsymbol{J}^T\boldsymbol{E}(\boldsymbol{x}) Δx=?(H+μI)?1b?μ1?b=?μ1?JTE(x),接近最速下降法

  • 當(dāng) μ \mu μ 很小時,則接近高斯牛頓法
    因此,合理的設(shè)置阻尼因子,能夠達(dá)到動態(tài)對迭代速度進(jìn)行調(diào)節(jié)。阻尼因子的設(shè)置分為兩部分:

  • 初始值的選取

  • 隨迭代量變化的更新策略

先來看初始值選取方法,阻尼因子的大小應(yīng)該根據(jù) J T J \boldsymbol{J}^T\boldsymbol{J} JTJ 的大小來選取,對 J T J \boldsymbol{J}^T\boldsymbol{J} JTJ 進(jìn)行特征值分解,有: J T J = V Λ V T \boldsymbol{J}^T\boldsymbol{J} = \boldsymbol{V}\boldsymbol{\Lambda}\boldsymbol{V}^T JTJ=VΛVT Λ = diag ( λ 1 , λ 2 , . . . , λ n ) , V = [ v 1 , . . . , v n ] \boldsymbol{\Lambda} = \text{diag}(\lambda_1, \lambda_2,..., \lambda_n), \boldsymbol{V} = [\boldsymbol{v}_1, ..., \boldsymbol{v}_n] Λ=diag(λ1?,λ2?,...,λn?),V=[v1?,...,vn?],因此,迭代公式化簡為:

( V Λ V T + μ I ) Δ x = b Δ x = ( V Λ V T + μ I ) ? 1 b = ? ∑ i v i T b λ i + μ v i \begin{aligned} (\boldsymbol{V\Lambda}\boldsymbol{V}^T + \mu\boldsymbol{I})\Delta\boldsymbol{x} &= \boldsymbol\\ \Delta\boldsymbol{x} &= (\boldsymbol{V\Lambda}\boldsymbol{V}^T + \mu\boldsymbol{I})^{-1}\boldsymbol\\ &= -\sum_i\frac{\boldsymbol{v}_i^T\boldsymbol}{\lambda_i + \mu}\boldsymbol{v}_i \end{aligned} (VΛVT+μI)ΔxΔx?=b=(VΛVT+μI)?1b=?i?λi?+μviT?b?vi??
因此,將 μ \mu μ 選為 λ i \lambda_i λi? 接近即可,一個簡單的思路是設(shè) μ 0 = τ max ? ( J T J ) i i \mu_0 = \tau\max{(\boldsymbol{J}^T\boldsymbol{J})_{ii}} μ0?=τmax(JTJ)ii?,實際中一般設(shè) τ ≈ [ 1 0 ? 8 , 1 ] \tau \approx [10^{-8}, 1] τ[10?8,1]

接下來看 μ \mu μ 的更新策略,先定性分析應(yīng)該怎么更新阻尼因子:

  • 當(dāng) Δ x \Delta\boldsymbol{x} Δx F ( x ) F(\boldsymbol{x}) F(x) 增加時,應(yīng)該提高 μ \mu μ 來降低 Δ x \Delta\boldsymbol{x} Δx 即通過減少步長來降低本次迭代帶來的影響
  • 當(dāng) Δ x \Delta\boldsymbol{x} Δx F ( x ) F(\boldsymbol{x}) F(x) 減少時,應(yīng)該降低 μ \mu μ 來提高 Δ x \Delta\boldsymbol{x} Δx 即通過增加步長來提高這次迭代的影響

下面進(jìn)行定量分析,令 L ( Δ x ) = F ( x ) + 2 E ( x ) T J Δ x + 1 2 Δ x T J T J Δ x L(\Delta\boldsymbol{x}) = F(\boldsymbol{x}) +2\boldsymbol{E}(\boldsymbol{x})^T\boldsymbol{J}\Delta\boldsymbol{x} + \frac{1}{2}\Delta\boldsymbol{x}^T\boldsymbol{J}^T\boldsymbol{J}\Delta\boldsymbol{x} L(Δx)=F(x)+2E(x)TJΔx+21?ΔxTJTJΔx考慮以下比例因子:

ρ = F ( x ) ? F ( x + Δ x ) L ( 0 ) ? F ( Δ x ) \rho = \frac{F(\boldsymbol{x}) - F(\boldsymbol{x} + \Delta\boldsymbol{x})}{L(\boldsymbol{0}) - F(\Delta\boldsymbol{x})} ρ=L(0)?F(Δx)F(x)?F(x+Δx)?
Marquardt 提出一個策略:

  • 當(dāng) ρ < 0 \rho < 0 ρ<0,表示當(dāng)前 Δ x \Delta\boldsymbol{x} Δx 使 F ( x ) F(\boldsymbol{x}) F(x) 增大,表示離最優(yōu)值還很遠(yuǎn),應(yīng)該提高 μ \mu μ 使其接近最速下降法進(jìn)行較大幅度的更新
  • 當(dāng) ρ > 0 \rho > 0 ρ>0 且比較大,表示當(dāng)前 Δ x \Delta\boldsymbol{x} Δx 使 F ( x ) F(\boldsymbol{x}) F(x) 減小,應(yīng)該降低 μ \mu μ 使其接近高斯牛頓法,降低速度更新至最優(yōu)點
  • 如果 ρ > 0 \rho > 0 ρ>0 但比較小,表示已經(jīng)到最優(yōu)點附近,則增大阻尼 μ \mu μ,縮小迭代步長

Marquardt 的具體策略如下:

if rho < 0.25: mu = mu * 2
else if rho > 0.75: mu = mu /3

一個使用 Marquardt 策略進(jìn)行更新的過程如下:
在這里插入圖片描述

可以發(fā)現(xiàn),效果并不算很好,隨著迭代次數(shù)的增加, μ \mu μ 開始進(jìn)行震蕩,表示迭代量周期性的使 F ( x ) F(\boldsymbol{x}) F(x) 增加又下降。

因此,Nielsen 提出了另一個策略,也是 G2O 和 Ceres 中使用的策略:

if rho > 0:mu = mu * max(1/3, 1 - (2 * rho - 1)^3)v = 2
else:mu = mu * vv = 2 * v

使用這種策略進(jìn)行優(yōu)化的例子如下:

可以看到, μ \mu μ 隨著迭代的進(jìn)行可以比較平滑的持續(xù)下降直至達(dá)到收斂。
在這里插入圖片描述

8.魯棒核函數(shù)

在進(jìn)行最小二乘問題中,我們會遇到一些異常觀測值使得觀測殘差特別大,如果不對這些異常點做處理會影響在優(yōu)化過程中,優(yōu)化器會嘗試最小化異常的殘差項,最后影響狀態(tài)估計的精度,魯棒核函數(shù)就是用來降低這些異常觀測值造成的影響。

將魯棒核函數(shù)直接作用在每個殘差項上,將最小二乘問題變成如下形式:

F ( x ) = ∑ i ρ ( ∣ ∣ e i ( x ) ∣ ∣ 2 ) F(\boldsymbol{x}) = \sum_i\rho(||e_i(\boldsymbol{x})||^2) F(x)=i?ρ(∣∣ei?(x)2)
使用魯棒核函數(shù)時求解非線性最小二乘的過程
在這個形式下對帶有魯棒核函數(shù)的殘差進(jìn)行二階泰勒展開:

ρ ( s + Δ s ) = ρ ( x ) + ρ ′ ( x ) Δ s + 1 2 ρ ′ ′ ( x ) Δ 2 s \rho(s + \Delta s) = \rho(x) + \rho'(x)\Delta s + \frac{1}{2}\rho''(x)\Delta^2s ρ(s+Δs)=ρ(x)+ρ(x)Δs+21?ρ′′(x)Δ2s
上式中,變化量 Δ s \Delta s Δs 的計算方式如下:

Δ s k = ∣ ∣ e i ( x + Δ x ) ∣ ∣ 2 ? ∣ ∣ e i ( x ) ∣ ∣ 2 = ∣ ∣ e i ( x ) + J i Δ x ∣ ∣ 2 ? ∣ ∣ e i ( x ) ∣ ∣ 2 = 2 e i ( x ) T J i Δ x + Δ x T J i T J i Δ x \begin{aligned} \Delta s_k &= ||e_i(\boldsymbol{x}+\Delta\boldsymbol{x})||^2 - ||e_i(\boldsymbol{x})||^2\\ &= ||e_i(\boldsymbol{x})+\boldsymbol{J}_i\Delta\boldsymbol{x}||^2 - ||e_i(\boldsymbol{x})||^2\\ &= 2e_i(\boldsymbol{x})^T\boldsymbol{J}_i\Delta\boldsymbol{x}+\Delta\boldsymbol{x}^T\boldsymbol{J}_i^T\boldsymbol{J}_i\Delta\boldsymbol{x} \end{aligned} Δsk??=∣∣ei?(x+Δx)2?∣∣ei?(x)2=∣∣ei?(x)+Ji?Δx2?∣∣ei?(x)2=2ei?(x)TJi?Δx+ΔxTJiT?Ji?Δx?
Δ s \Delta s Δs 代入 ρ ( s + Δ s ) \rho(s + \Delta s) ρ(s+Δs) 可得:

ρ ( s + Δ s ) = ρ ( s ) + ρ ′ ( s ) ( 2 e i ( x ) T J i Δ x + Δ x T J i T J i Δ x ) + 1 2 ρ ′ ′ ( s ) ( 2 e i ( x ) T J i Δ x + Δ x T J i T J i Δ x ) 2 ≈ ρ ( s ) + 2 ρ ′ ( s ) e i ( x ) T J i Δ x + ρ ′ ( s ) Δ x T J i T J i Δ x + 2 ρ ′ ′ ( s ) Δ x T J i T e i ( x ) e i ( x ) T J i Δ x \begin{aligned} \rho(s + \Delta s) =& \rho(s) + \rho'(s)(2e_i(\boldsymbol{x})^T\boldsymbol{J}_i\Delta\boldsymbol{x}+\Delta\boldsymbol{x}^T\boldsymbol{J}_i^T\boldsymbol{J}_i\Delta\boldsymbol{x}) \\ &+ \frac{1}{2}\rho''(s)(2e_i(\boldsymbol{x})^T\boldsymbol{J}_i\Delta\boldsymbol{x}+\Delta\boldsymbol{x}^T\boldsymbol{J}_i^T\boldsymbol{J}_i\Delta\boldsymbol{x})^2\\ \approx& \rho(s) + 2\rho'(s)e_i(\boldsymbol{x})^T\boldsymbol{J}_i\Delta\boldsymbol{x}+\rho'(s)\Delta\boldsymbol{x}^T\boldsymbol{J}_i^T\boldsymbol{J}_i\Delta\boldsymbol{x} \\ &+ 2\rho''(s)\Delta\boldsymbol{x}^T\boldsymbol{J}_i^Te_i(\boldsymbol{x})e_i(\boldsymbol{x})^T\boldsymbol{J}_i\Delta\boldsymbol{x} \end{aligned} ρ(s+Δs)=?ρ(s)+ρ(s)(2ei?(x)TJi?Δx+ΔxTJiT?Ji?Δx)+21?ρ′′(s)(2ei?(x)TJi?Δx+ΔxTJiT?Ji?Δx)2ρ(s)+2ρ(s)ei?(x)TJi?Δx+ρ(s)ΔxTJiT?Ji?Δx+2ρ′′(s)ΔxTJiT?ei?(x)ei?(x)TJi?Δx?
按照之前的思路,對上式求導(dǎo)并使其為 0,可得:

∑ i J i T ( ρ ′ ( s ) + 2 ρ ′ ′ ( s ) e i ( x ) e i ( x ) T ) J Δ x = ? ∑ i ρ ′ ( s ) J i T e i ( x ) \sum_i\boldsymbol{J}_i^T(\rho'(s) + 2\rho''(s)e_i(\boldsymbol{\boldsymbol{x}})e_i(\boldsymbol{x})^T)\boldsymbol{J}\Delta\boldsymbol{x} = -\sum_i\rho'(s)\boldsymbol{J}_i^Te_i(\boldsymbol{x}) i?JiT?(ρ(s)+2ρ′′(s)ei?(x)ei?(x)T)JΔx=?i?ρ(s)JiT?ei?(x)
對比之前的矩陣 J T J Δ x = ? J i T e ( x ) \boldsymbol{J}^T\boldsymbol{J}\Delta\boldsymbol{x} = -\boldsymbol{J}_i^T\boldsymbol{e}(\boldsymbol{x}) JTJΔx=?JiT?e(x) 可得,當(dāng)我們使用了魯棒核函數(shù)之后,只需要將各項殘差的核函數(shù)的一階二階導(dǎo)數(shù)值計算出,再按照以上形式對信息矩陣和信息向量進(jìn)行更新即可。

常用的魯棒核函數(shù)
柯西魯棒核函數(shù):

ρ ( s ) = c 2 log ? ( 1 + s c 2 ) ρ ′ ( s ) = 1 1 + s c 2 ρ ′ ′ ( s ) = ? 1 c 2 ( ρ ′ ( s ) ) 2 \begin{aligned} \rho(s) &= c^2\log{(1+\frac{s}{c^2})}\\ \rho'(s) &= \frac{1}{1+\frac{s}{c^2}}\\ \rho''(s) &= -\frac{1}{c^2}(\rho'(s))^2 \end{aligned} ρ(s)ρ(s)ρ′′(s)?=c2log(1+c2s?)=1+c2s?1?=?c21?(ρ(s))2?
其中, c c c 為控制參數(shù)。當(dāng)殘差是正態(tài)分布,Huber c 選為 1.345,Cauchy c 選為 2.3849。不同魯棒核函數(shù)的效果如下圖所示:
在這里插入圖片描述

http://www.risenshineclean.com/news/50650.html

相關(guān)文章:

  • 企業(yè)網(wǎng)站維護(hù)服務(wù)seo文章代寫一篇多少錢
  • 國外高大上設(shè)計網(wǎng)站百度小說app下載
  • 做服裝團(tuán)購網(wǎng)站網(wǎng)絡(luò)營銷是以什么為中心
  • 臨海市建設(shè)局網(wǎng)站什么是口碑營銷
  • 一個空間兩個wordpress湖北短視頻搜索seo
  • wordpress開發(fā)服務(wù)搜索引擎優(yōu)化的報告
  • 做公關(guān)用的網(wǎng)站寧波seo推廣外包公司
  • 搜狗推廣管家石家莊seo排名公司
  • 在線做效果圖的網(wǎng)站網(wǎng)頁設(shè)計與制作軟件有哪些
  • 印刷 網(wǎng)站源碼營銷型網(wǎng)站建設(shè)
  • 長沙做網(wǎng)站公司 上聯(lián)網(wǎng)絡(luò)引擎網(wǎng)站推廣法
  • wordpress php教程專業(yè)網(wǎng)站優(yōu)化推廣
  • 沈陽有資質(zhì)做網(wǎng)站的公司有哪些百度推廣開戶費用多少
  • 網(wǎng)站建設(shè)創(chuàng)客開網(wǎng)站需要什么流程
  • 網(wǎng)站實現(xiàn)隸書繁體搜外滴滴友鏈
  • app網(wǎng)站開發(fā)湖南武漢大學(xué)人民醫(yī)院光谷院區(qū)
  • 網(wǎng)站的網(wǎng)站地圖怎么做seo推廣外包
  • 企夢網(wǎng)站建設(shè)成功的網(wǎng)絡(luò)營銷案例及分析
  • 最新章節(jié) 62.一起來做網(wǎng)站吧網(wǎng)絡(luò)營銷有哪些
  • 網(wǎng)站建設(shè)及網(wǎng)絡(luò)營銷百度推廣關(guān)鍵詞排名在哪看
  • 網(wǎng)站開發(fā)設(shè)計思想最新疫情最新情況
  • 茂名建站公司模板秦潔婷seo博客
  • 上海浦東建筑建設(shè)網(wǎng)站推廣方案怎么做
  • 阿里云免費網(wǎng)站建設(shè)模板廣告聯(lián)盟大全
  • ??涤蛎W(wǎng)站百度一下首頁百度一下知道
  • 網(wǎng)站廣告聯(lián)盟怎么做的域名注冊需要什么條件
  • 做一個醫(yī)院網(wǎng)站多少錢鏈接檢測工具
  • wordpress調(diào)用tag鞏義關(guān)鍵詞優(yōu)化推廣
  • 網(wǎng)站建設(shè)公司上海做網(wǎng)站公司哪家好國內(nèi)永久免費的云服務(wù)器
  • 北京 工業(yè)網(wǎng)站建設(shè)公司價格引流推廣