Random Walk


隨機游走

幾何布朗運動

  幾何布朗運動(Brownian motion)

  布朗運動是將看起來連成一片的液體,在高倍顯微鏡下看其實是由許許多多分子組成的。液體分子不停地做無規則的運動,不斷地隨機撞擊懸浮微粒。當懸浮的微粒足夠小的時候,由於受到的來自各個方向的液體分子的撞擊作用是不平衡的。在某一瞬間,微粒在另一個方向受到的撞擊作用超強的時候,致使微粒又向其它方向運動,這樣,就引起了微粒的無規則的運動就是布朗運動。(布朗運動指的是分子迸出的微粒的隨機運動,而不是分子的隨機運動。)即布朗運動代表了一種隨機漲落現象。


隨機游走

  英文:Random Walk

  定義:隨機游走,概念接近於布朗運動,是布朗運動的理想數學狀態。

  核心概念:任何無規則行走者所帶的守恆量都各自對應着一個擴散運輸定律。

  隨機游走算法的基本思想是:

    • 從一個或一系列頂點開始遍歷一張圖。在任意一個頂點,遍歷者將以概率 $1-a$ 游走到這個頂點的鄰居頂點,以概率 $a$ 隨機跳躍到圖中的任何一個頂點,稱 $a$ 為跳轉發生概率,每次游走后得出一個概率分布,該概率分布刻畫了圖中每一個頂點被訪問到的概率。用這個概率分布作為下一次游走的輸入並反復迭代這一過程。當滿足一定前提條件時,這個概率分布會趨於收斂。收斂后,即可以得到一個平穩的概率分布。

一維的隨機游走

  一維的隨機游走可定義如下:每過一個單位時間,游走者從數軸位置 $x$ 出發以固定概率隨機向左或向右移動一個單位。不妨將 $n$ 時刻游走者的位置記為 $L_n$,則有
    $L_{n}=x+X_{1}+\cdots+X_{n}$

  其中 $X_1,X_2,…,X_n$ 為相互獨立的隨機變量,滿足

    $P\left(X_{i}=1\right)=p=1-P\left(X_{i}=-1\right)$

  最經典的一維隨機游走問題有賭徒輸光問題和酒鬼失足問題。

  1.  賭徒在賭場賭博,贏的概率是 $p$,輸的概率 $1-p$,每次的賭注為1元,假設賭徒最開始時有賭金1元,贏了賭金加1元,輸了賭金減1元。問賭徒輸光的概率是多少?
  2.  一個醉鬼行走在一頭是懸崖的道路上,酒鬼從距離懸崖僅一步之遙的位置出發,向前一步或向后退一步的概率皆為1/2,問酒鬼失足掉入懸崖的概率是多少?

  二維隨機游走示例代碼:

      

  
import random
import numpy as np
import matplotlib.pyplot as plt
N = 1000
d = 1 
x =np.zeros(N+1)
y =np.zeros(N+1)
x[0] = 0
y[0] = 0
for i in range(0,N,1):
    r = random.random()  #[0,1)
    if 0<=r<0.25 :
        y[i+1]=y[i]+d;x[i+1]=x[i]
    elif 0.25<=r<0.5:
        y[i+1]=y[i];x[i+1]=x[i]+d
    elif 0.5<=r<0.75:
        y[i+1]=y[i]-d;x[i+1]=x[i]
    else :
        y[i+1]=y[i]; x[i+1]=x[i]-d
plt.plot(x,y,'r',x[0],y[0],'bo',x[-1],y[-1],'b*')
plt.xlabel("East->")
plt.ylabel('North->')
plt.rcParams['figure.figsize']=(40,20)
plt.show()
View Code

一維有邊界的隨機游走問題

    • 下面先對一維雙邊界隨機游走問題進行求解:設初始位置為
    • $x=n$,邊界為 $x=0$ 和 $ x=w$,其中 $0<=n<=w$,$n、w$ 為整數。游走者每個單位時間移動一次,向左、向右移動的概率都為 $1/2$,達到邊界后停止移動。

  若用 $S_n$ 表示初始位置為 $x=n$ 時最終落入邊界 $x=0$ 的概率。顯然我們會有 $S_0=1$ 和 $S_w=0$,即初始位置為邊界的情況。若 $0<n<w$,則考慮其下一次移動。有 1/2 的概率向左到達 $n-1$,有$1/2$ 的概率向右到達 $n+1$。 則由全概率公式可得

    $S_n =\frac{1}{2} S_{n+1}+\frac{1}{2} S_{n-1}$    
  整理得到

    $S_{n+1}=2 S_{n}-S_{n-1}$

  利用

    $S_{n+1}-S_{n}=S_{n}-S_{n-1}$

  可得

    $S_{n}-S_{n-1}=\cdots=S_{1}-S_{0}=k$

  累加法可得

    $S_{n}=k n+S_{0}$

   由 $S_0=1,S_w=0$,可得

    $S_{n}=1-\frac{1}{w} n=\frac{w-n}{w}$ 同理,$T_n$ 初始位置為 $x=n$ 時最終落入邊界 $x=w$ 的概率,可得 $T_n=n/w$。 對於單邊界情況,可以令 $w$ 趨於正無窮得到,即可得 $S_n=1,T_n=0$。


全局最優化的方法:隨機游走算法

  梯度下降法方法對於求解精度不高的情況是實用的,可以用局部極小值近似替代全局最小值點。但是當要求精確求解全局最小值時,梯度下降法就不適用了,需要采用其他的辦法求解。常見的求解全局最優的辦法有拉格朗日法、線性規划法、以及一些人工智能算法比如遺傳算法、粒子群算法、模擬退火算法等(可以參見我之前的博客)。而今天要講的是一個操作簡單但是不易陷入局部極小值的方法:隨機游走算法。

  隨機游走算法操作步驟

  設 $f(x)$ 是一個含有 $n$ 個變量的多元函數, $x=\left(x_{1}, x_{2}, \ldots, x_{n}\right)$  為 $n$ 維向量。
  1. 給定初始迭代點 $ x$ ,初次行走步長 $ \lambda$ ,控制精度 $ \epsilon$$(\epsilon$ 是一個非常小的正數, 用於控制結束算法 $ )$ 。
  2. 給定迭代控制次數 $ N$,$k$ 為當前迭代次數,置 $ k=1$ 。
  3. 當 $ k<N$ 時,隨機生成一個$ (-1,1) $ 之間的 $ n$ 維向量 $ u=\left(u_{1}, u_{2}, \cdots, u_{n}\right),\left(-1<u_{i}<1, i=1,2, \cdots, n\right) $,並將其標准化得到 $ u^{\prime}=\frac{u}{\sqrt{\sum_{i=1}^{n}   u_{i}^{2}}} $ 。 令 $ x_{1}=x+\lambda u^{\prime}$ ,完成第一步游走。
  4. 計算函數值,如果 $ f\left(x_{1}\right)<f(x)$,即找到了一個比初始值好的點,那么 $ k$ 重新置為 $1$,將 $ x_{1}$ 變為 $ x$,回到第2步;否則 $ k=k+1$,回到第3步。
  5. 如果連續 $ N$ 次都找不到更優的值,則認為,最優解就在以當前最優解為中心, 當前步長為半徑的 $ N$ 維球內(如果是三維,則剛好是空 間中的球體)。此時,如果 $\lambda<\epsilon$ , 則結束算法;否則,令 $\lambda=\frac{\lambda}{2} $,回到第1步,開始新一輪游走。


圖上的隨機游走

  圖上的 Random  Walk 是指給定一個圖和一個出發點,隨機地選擇一個鄰居結點,移動到鄰居結點上,然后把當前結點作為出發點,重復以上過程。那些被隨機選出的結點序列就構成了一個在圖上的 Random Walk 過程,如下圖所示。

    

  早期的搜索引擎例如Yahoo!使用的是關鍵詞匹配技術,其性能容易受到關鍵詞頻率的欺騙,所以搜索效果不是很好。但是到1998年Jon Kleinberg 提出了HITS[17]算法,以及Sergey Brin  和 Larry Page 提出了 PageRank[18]算法之后,搜索的正確率就得到了巨大的改觀,其原因就是這兩種技術都建立在共同理論支柱就是圖上的 Random  Walk上。

  Random  Walk 是隨機過程(Stochastic  Process)的一個重要組成部分,通常描述的是最簡單的一維 Random  Walk 過程。下面給出一個例子來說明:考慮在數軸原點處有一只螞蟻,它從當前位置(記為x(t) )出發,在下一個時刻( x(t+1))以 的概率向前走一步(即 x(t+1)= x(t)+1),或者以 的概率向后走一步(即 x(t+1)= x(t)-1),這樣螞蟻每個時刻到達的點序列 就構成一個一維隨機游走過程。

  本質上 Random  Walk 是一種隨機化的方法,在實際上生活中,例如醉漢行走的軌跡、花粉的布朗運動、證券的漲跌等都與 Random  Walk 有密不可分的關系。Random Walk已經被成功地應用到數學,物理,化學,經濟等各種領域。當前研究者們已經開始將 Random  Walk 應用到信息檢索、圖像分割等領域,並且取得了一定的成果,其中一個突出的例子就是 Brin 和 Page 利用基於 Random Walk 的 PageRank 技術創建了 Google 公司。

  相關理論

  馬爾科夫鏈:t+1時刻的狀態只與t時刻有關,也就是只與上一步狀態有關,如果從i到j的轉移概率與時間無關稱為齊時馬爾科夫鏈,否則稱為非齊時馬爾科夫鏈。


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM