㈠ Metropolis法和Metropolis-Hastings法有什麼區別嗎各自的優點是什麼呢感謝大神
原文鏈接:http://tecdat.cn/?p=19664
MCMC是從復雜概率模型中采樣的通用技術。
蒙特卡洛
馬爾可夫鏈
Metropolis-Hastings演算法
問題
如果需要計算有復雜後驗pdf p(θ| y)的隨機變數θ的函數f(θ)的平均值或期望值。
最受歡迎的見解
1.用R語言模擬混合制排隊隨機服務排隊系統
2.R語言中使用排隊論預測等待時間
3.R語言中實現馬爾可夫鏈蒙特卡羅MCMC模型
4.R語言中的馬爾科夫機制轉換(Markov regime switching)模型
5.matlab貝葉斯隱馬爾可夫hmm模型
6.用R語言模擬混合制排隊隨機服務排隊系統
7.Python基於粒子群優化的投資組合優化
8.R語言馬爾可夫轉換模型研究交通傷亡人數事故預測
9.用機器學習識別不斷變化的股市狀況——隱馬爾可夫模型的應用
㈡ LOAM點雲匹配演算法解析與雅克比矩陣推導
LOAM點雲匹配部分是LOAM框架的核心,其運算速度快,精度高,自14年發布以來,直到現在仍然被廣泛使用。然而,在後續的推廣中仍然存在一些問題,本文將對其進行解析並記錄自己應用中的問題。
演算法解析:演算法具體解析的文章有很多,這里只簡單介紹相關流程和原理。大致流程如下:線/面特徵與線/面地圖的殘差與對應優化向量計算。
線/面特徵與線/面地圖的殘差與對應優化向量計算:讀過LOAM的都知道,點雲匹配部分是一個點到線ICP加一個點到面ICP。優化時可以理解為都是計算點到點的殘差,只不過一個是在對應線上找到目標點,一個是在對應面上找到目標點,然後分別計算源點到目標點的殘差,這樣兩種ICP的殘差計算方程就統一了。後續計算雅克比矩陣時需要用到源點到目標點的距離(即殘差)以及源點到目標點的單向量,具體為什麼需要它們會在雅克比推導中給出。
LM演算法推導:後面的過程要了解下LM演算法才能繼續。
LM演算法的推導參考了LOAM-LM方法,雅克比推導參考了LeGO-LOAM中的數學公式推導,這里重新捋了一遍,並且推導了基於Tait-Bryan xyz extrinsic rotations的歐拉角的雅克比矩陣,原版LOAM中雅克比為基於Tait-Bryan zyx extrinsic rotations的歐拉角。
主體部分推導:重點在於每個點的殘差計算方程以及它對系統狀態偏導數,其中指每個點到線/面對應點的殘差計算方程,指當前系統狀態,即當前求解的位姿,由旋轉R和平移T構成,表示為,ROS中,歐拉角為Tait-Bryan xyz extrinsic rotations類型,即繞固定軸,先繞x軸,再繞y軸,最後繞z軸旋轉roll,pitch,yaw角度的方式,首先定義的形式,我們先去掉i,就以單一一個點來推導:
其中為兩點間距離,為當前幀的點在局部坐標系下坐標,為當前幀的點在世界坐標系下坐標,為對應線/面上目標點在世界坐標系的坐標。開始計算偏導:
其中:可以看到,這個V就是兩點間方向的單位向量,求殘差時已經得到了。偏導剩餘部分要分為對平移量T的求導和對歐拉角的求導兩部分,先看平移部分:
旋轉部分比較麻煩,以對roll的求導來看,我們用ex代替roll、ey代替pitch、ez代替yaw簡化表示:
實際上就是求旋轉矩陣分別對roll、pitch、yaw的偏導。
基於Tait-Bryan xyz extrinsic rotations的雅克比推導:不同類型的歐拉角表達方式其對應的旋轉矩陣是不同的,可以參考Euler angles,中給出的結,這里直接貼出Tait-Bryan xyz extrinsic rotations的歐拉角對應的旋轉矩陣
123對應ZYX,c為cos,s為sin,那麼偏導就容易了:
於是:
至此,雅克比就被求解了,剩下的套LM公式就好。
代碼剖析:代碼太多了,而且很多文字都對應剖析了,這里就提下雅克比部分就好: