tft每日頭條

 > 生活

 > 馬爾可夫鍊與蒙特卡洛算法

馬爾可夫鍊與蒙特卡洛算法

生活 更新时间:2024-12-21 07:54:10

最近,小編在公司接手了一個項目,涉及随機過程和馬可夫鍊。這幾天,文獻、博客看了很多相關内容。這篇文章我們主要闡述一下随機過程和馬可夫鍊。

面試問題

小編之前面試銀行,被問過一道面試題,題幹如下:

一個醉漢的家離懸崖有10米遠。一天,醉漢站在了離家6米遠的地方,身後4米既是懸崖。每次醉漢都會随機的往家的方向或者往懸崖的方向走一米,往前往後概率均為50%。最後,醉漢墜崖的概率是多少呢?

大家先思考一下這個問題,我們先講講随機過程和馬可夫鍊。

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)1

醉漢

随機過程

在概率論概念中,随機過程是随機變量的集合。 ------ 維基百科

維基百科固然很好,但是有很多概念說的太不具體,有時候讓人很難理解。

舉個例子:

擲骰子、投硬币都是随機事件。比如擲骰子,1到6點。每次擲骰子,每個面是随機出現的(假設篩子沒有被做過手腳)。那麼,當我們每次追篩子的時候,就會産生一個随機變量X。我們不停的擲骰子,就會産生一系列的随機變量,X1, X2 ... Xn。而這些随機變量序列的集合,便組成了一個随機過程。

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)2

随機過程

馬可夫鍊

前面介紹的随機過程,每一次擲骰子都是獨立存在的。也就是說,我現在擲骰子的行為和點數和之前之後擲篩子都沒關系。每次抛擲的結果相互獨立。

但是現實中,真正的随機變量之間,往往存在着互相依賴的關系。

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)3

馬可夫鍊 - 熊市、牛市和平穩市場

我們已股票市場舉例,牛市、熊市和之間的平穩市場都不會突然來臨和随機變換。比如這周是牛市,突然下周就變成熊市,再下周又牛市了。這種頻繁突變基本不可能出現。今天是牛市,大多數情況下,明天還是處在牛市之中。

什麼是馬可夫鍊呢?

馬爾科夫鍊是一個随機過程,同時馬爾科夫鍊的記憶類似于“金魚的記憶隻有3秒”,非常的健忘。

1 - 2 - 3 - 4 - 5 - 6

比如說,你現在站在5對6 進行預測,根據馬爾科夫鍊,6的狀态隻和5有關,而前面1到2, 2到3, 3到4,4到5的整個過程無關。

馬爾科夫鍊認為 過去所有的信息都被保存在了現在的狀态下了

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)3

馬可夫鍊 - 熊市、牛市和平穩市場

從上面股市圖中,假如今天是牛市(Bull Market),那麼明天依舊是牛市的概率是0.9,是熊市(Bear Market)的概率是0.075,是平穩市場的概率是0.025。這樣就形成了三種市場相互依賴、相互轉變的随機過程 - 馬可夫過程

馬可夫鍊應用

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)5

股市随機過程

理解馬可夫鍊,首先要明确整個過程有幾種狀态,如股市随機過程中存在三種狀态:‘Bull Market’, ‘Bear Market’和‘Stagnant Market’。而各個狀态之間的相互轉變概率如上圖所示。注意,每一行的概率之和都為1。

各個狀态之間的轉變關系表一般叫做過渡矩陣(Transition Matrix)。

其次要明确的是現在的狀态。因為馬可夫随機過程所有的信息都存在于當前狀态中。

假設,我們現在身處熊市。那麼,怎麼用向量表示呢?

當前狀态 = [0, 1, 0]. 從左到右依次為牛市、熊市和平穩市場。1表示處在該狀态。

那麼,明天的狀态就可以通過矩陣相乘:當前狀态 * 過度矩陣。

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)6

明天有1.5%的可能性為牛市,80%概率是熊市,5%的概率是平穩市場。

如果我們需要預測100天之後市場的情況,隻需要将當前狀态 乘以 100次過渡矩陣

具體代碼如下:定義一個遞歸函數f_func

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)7

那麼,100天後市場有62.5%是牛市,31.25%是熊市,6.25%是平穩市場。

醉漢墜崖問題計算

第一步:整個過程有11個狀态,0(墜崖),1,2,3,..., 10(家裡);

第二步:當前狀态,醉漢站在4的位置上,[0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]

第三部:過渡矩陣:

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)8

過渡矩陣

怎麼去理解這個過渡矩陣呢?比如:

第一行,0行。當前狀态即為0,由于已經墜崖,醉漢不可能爬上來,那麼醉漢會永遠處于0的狀态,也就是概率為1。0到其他狀态的概率為0。

第二行,1行。當前狀态為1,醉漢往前和往後的概率都是50%。也就是說下一個狀态是0或者2的概率為0.5,其他狀态為0.

依次類推。。。

如果想知道最終醉漢到家或者墜崖的概率分别為多少的話?同樣可以使用上面的遞歸函數f_func将當前狀态同過渡矩陣乘1000次或者更多。

馬爾可夫鍊與蒙特卡洛算法(你不可不知的随機過程和馬可夫鍊)9

醉漢墜崖

1000次後,醉漢墜崖概率是60%,而到家的概率是40%。

總結

馬可夫随機過程和馬可夫鍊在金融、生物等都有着很廣泛的應用。有興趣的朋友可以自行閱讀專業文章。

大家有沒有發現,醉漢離家6米,離懸崖4米,懸崖離家10米。而墜崖的概率是60% = 6 /10,而回家的概率是40% = 4/10。

原來結果可以直接以距離的商計算出來。這個是可以通過公式推導出來的,有興趣的朋友可以自行理解推導。推導的關鍵在于當前狀态和下一狀态直接的關系推導。

喜歡我的文章請點個贊或者轉發。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved