1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thuật toán metropolis và ứng dụng

52 433 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Mục lục LỜI MỞ ĐẦU 4 BẢNG KÝ HIỆU 6 1 KIẾN THỨC CHUẨN BỊ 7 1.1 Các phương pháp mô phỏng biến ngẫu nhiên . . . . . . . . 7 1.1.1 Phương pháp lấy mẫu ngược . . . . . . . . . . . . . 7 1.1.2 Phương pháp lấy mẫu loại trừ . . . . . . . . . . . . 8 1.2 Ước lượng bằng mô phỏng . . . . . . . . . . . . . . . . . . 10 1.2.1 Lấy mẫu quan trọng (Importance Sampling) . . . . . 11 1.3 Xích Markov . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.3.1 Giới thiệu về xích Markov . . . . . . . . . . . . . . . 14 1.3.2 Phân bố dừng . . . . . . . . . . . . . . . . . . . . . 18 1.3.3 Phân bố giới hạn . . . . . . . . . . . . . . . . . . . 20 1.3.4 Xích tối giản và không có chu kì . . . . . . . . . . . 24 1.3.5 Xích khả nghịch . . . . . . . . . . . . . . . . . . . . 27 2 THUẬT TOÁN METROPOLIS-HASTINGS 28 2.1 Giới thiệu về MCMC . . . . . . . . . . . . . . . . . . . . . 28 2.2 Thuật toán Metropolis-Hastings . . . . . . . . . . . . . . . 29 3 ÁP DỤNG THUẬT TOÁN METROPOLIS 46 3.1 Giới thiệu về R . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2 Mô hình lõi cứng (hard-core model) . . . . . . . . . . . . . 47 3.3 Thuật toán và chương trình . . . . . . . . . . . . . . . . . 48 Tài liệu tham khảo 53 2 LỜI CẢM ƠN Luận văn trên em hoàn thành dưới sự hướng dẫn tận tình và cũng hết sức nghiêm khắc của TS. Trần Mạnh Cường. Thầy đã dành nhiều thời gian quý báu của mình để hướng dẫn cũng như giải đáp các thắc mắc của em trong suốt cả quá trình làm luận văn. Em muốn tỏ lòng biết ơn chân thành và sâu sắc nhất tới Thầy. Em cũng muốn gửi tới toàn thể các Thầy Cô Khoa Toán - Cơ - Tin học trường Đại học Khoa học Tự nhiên, Đại học Quốc gia Hà Nội, các Thầy Cô đã đảm nhận việc giảng dạy khóa Cao học 2011 - 2013 từ lúc chúng em ôn thi đầu vào và trong cả quá trình học tại Khoa, đặc biệt là các Thầy Cô tham gia giảng dạy nhóm Xác suất thống kê 2011 - 2013 lời cám ơn chân thành nhất vì công lao dạy dỗ chúng em trong suốt thời gian của khóa học. Vì thời gian cũng như kiến thức của em cũng còn nhiều hạn chế nên không tránh khỏi những thiếu sót. Kính mong các Thầy, Cô nhận xét và cho em những lời nhận xét góp ý để bản luận văn của em được hoàn thiện hơn. Và có thể những góp ý quý giá đó sẽ mở hướng cho em trong quá trình học tập, nghiên cứu sau này. Tôi xin cám ơn gia đình, bạn bè, đồng nghiệp và các anh chị em trong nhóm Xác suất thống kê 2011 - 2013 đã quan tâm, giúp đỡ, tạo điều kiện và động viên tinh thần để tôi có thể hoàn thành được khóa học. 3 LỜI MỞ ĐẦU Đầu thế kỷ XX, nhà vật lý và bác học nổi tiếng người Nga A.A.Markov đã đưa ra một mô hình toán học để mô tả chuyển động của các phân tử chất lỏng trong một bình kín. Sau này mô hình Markov được phát triển và mang tên: Quá trình Markov. Xích Markov là trường hợp riêng của quá trình Markov khi ta có thể đánh số được các trạng thái. Chúng ta đều biết vai trò quan trọng của thuyết Monte Carlo trong việc ước lượng các số nguyên và mô phỏng các quá trình ngẫu nhiên. Bước có tính quyết định nhất trong việc phát triển lý thuyết Monte Carlo hiệu quả là ước lượng (lấy mẫu) từ một phân bố xác suất thích hợp π(x). Ta không thể trực tiếp tạo thành các mẫu độc lập từ π(x), cũng như chọn cách lấy mẫu quan trọng, trong các mẫu ngẫu nhiên được lấy từ một phân bố thử dạng khác (nhưng gần giống) với phân bố mục tiêu và sau đó đánh giá dựa vào tỉ số quan trọng; hoặc xây dựng các mẫu xác suất độc lập dựa trên ý tưởng lấy mẫu Markov Chain Monte Carlo. Cho π(x) = Z −1 exp(−h(x)) là phân bố mục tiêu dựa vào kết quả nghiên cứu (có thể tất cả các hàm phân phối xác suất được viết dạng này), khi mà hằng số chuẩn hóa hay hàm phân bố Z mà chúng ta thường không biết. Về mặt lý thuyết, Z =  exp (−h(x))dx có thể tính nhưng không dễ dàng (và thường khó) hơn vấn đề ban đầu là mô phỏng từ π. Được thúc đẩy bởi các vấn đề tính toán các xác suất vật lý, Metropolis đã giới thiệu ý tưởng cơ bản của việc phát triển một quá trình Markov để đạt được việc lấy mẫu của π. Ý tưởng này sau đó được phát triển thành thuyết Metropolis dù đơn giản nhưng rất hữu ích và hiện nay được sử dụng rộng rãi bởi các nhà nghiên cứu trong rất nhiều lĩnh vực khoa học khác nhau như sinh học, hóa học, khoa học máy tính, kinh tế học, các ngành kỹ thuật, khoa học vật liệu và nhiều lĩnh vực khác. Luận văn gồm có 3 chương: Chương 1: Kiến thức cơ sở- Xích Markov: Ở phần đầu em trình bày 4 các phương pháp cơ bản để mô phỏng biến (mẫu) ngẫu nhiên như phương pháp ngược, phương pháp lấy mẫu quan trọng, phương pháp lấy mẫu loại trừ. Tiếp theo là ước lượng bằng mô phỏng. Phần tiếp theo của chương I là lý thuyết xích Markov. Mỗi phần đều có các ví dụ minh họa để việc tiếp cận vấn đề trở nên dễ dàng hơn. Chương 2: Thuật toán Metropolis-Hastings: Cũng là phần chính của luận văn. Trong chương này, em đề cập tới các kiến thức cơ bản để xây dựng thuật toán Metropolis. Em giới thiệu phương pháp MCMC và nêu thuật toán Metropolis cùng các ví dụ cụ thể áp dụng thuật toán này. Chương 3: Áp dụng thuật toán Metropolis: Trong chương này em giới thiệu về ngôn ngữ lập trình R và các tính năng của nó. Tiếp đó em ứng dụng vào bài toán mô hình lõi cứng (hard-core model) để viết một đoạn chương trình áp dụng ngôn ngữ R cho kết quả cụ thể. Trong chương này em nêu thuật toán và chương trình áp dụng trên máy tính. Hà Nội, tháng 05 năm 2014 Học viên Nguyễn Thị Phi Doan 5 BẢNG KÝ HIỆU MCMC: Markov Chain Monte Carlo : điều phải chứng minh BNN: biến ngẫu nhiên E(X): Kỳ vọng Var(X): Phương sai ⊗ : Kết thúc một ví dụ F(x): hàm phân phối tích lũy f(x): hàm mật độ 6 Chương 1 KIẾN THỨC CHUẨN BỊ 1.1 Các phương pháp mô phỏng biến ngẫu nhiên 1.1.1 Phương pháp lấy mẫu ngược Định lý 1.1. Cho hàm phân phối tích lũy F(x) với F −1 là hàm ngược của F được xác định như sau: F −1 (u) = min{x|F (x) ≥ u}. với u ∈ (0, 1]. Cho U là một BNN có phân phối đều U(0,1) và đặt X = F −1 (U) khi đó hàm phân phối của X là F(x). Ví dụ 1.1 Mô phỏng một biến ngẫu nhiên có phân phối mũ với tham số λ. Hàm phân phối mũ có dạng: F (x) = 1 − exp(−λx) với x ≥ 0. Cho U ∼ U(0, 1) và đặt Y = − 1 λ log(1 −U). Khi đó Y có phân phối mũ với tham số λ. Hơn thế, nếu U ∼ U(0, 1) thì 1 − U cũng có phân phối U(0, 1) do đó nếu đặt Y = − 1 λ log(U) có phân phối mũ với tham số λ. ⊗ 7 Ví dụ 1.2 Phân phối Becnoulli và phân phối nhị thức B(n, p). Cho U ∼ U(0, 1). Nếu: X =  1 khi U < p 0 trong các trường hợp khác . Thì X là một phân phối Becnoulli với xác suất thành công là p. Cho X 1 , X n là các BNN độc lập của phân phối Becnoulli khi đó Y = n  i=1 X i là phân phối nhị thức B(n, p). ⊗ Ví dụ 1.3 Mô phỏng biến ngẫu nhiên có phân phối hình học (Geo(p)). Giả sử X nhận giá trị thuộc tập N và P (X = j) = P j Khi đó F −1 (u) = min{j ∈ N|u ≤ n  i=1 p i }. Nếu X có phân phối hình học X ∼ Geo(p) thì P (X > j) = (1 − p) j điều đó có nghĩa là: n  i=1 p i = 1 − (1 −p) j ≥ u ⇔ j  log(1 − U) log(1 − p) . Kí hiệu [a]: phần nguyên của a, khi đó X = [ log(U) log(1 − p) ] có phân phối hình học. ⊗ 1.1.2 Phương pháp lấy mẫu loại trừ Giả sử ta có BNN X với hàm mật độ f(x). Ta chưa mô phỏng được X nhưng ta có thể mô phỏng Y với hàm mật độ cho biết trước là g(y) mà giá của f là tập con giá của g và f(x) g(x) ≤ M với ∀x. Sau đó ta sử dụng mẫu Y để tìm mẫu X. Lặp lại các bước sau tới khi cho kết quả. Bước 1: Mô phỏng Y = y từ g(x) và U = u từ phân phối đều U(0, 1). Chuyển sang bước 2, 8 Bước 2: Nếu u  f(y) M.g(y) đặt X = y. Ngược lại quay về bước 1. Mệnh đề 1.1. Biến ngẫu nhiên X được lấy dựa trên phương pháp loại trừ như trên có hàm mật độ f(x). Câu hỏi đặt ra là ta cần bao nhiêu phép lặp trong thuật toán này? Trong mỗi phép lặp ta xây dựng một mẫu với xác suất P(U  f(Y ) M.g(Y ) ) = 1 M . Vậy trung bình số phép lặp là M. Chú ý 1, M càng nhỏ càng có lợi trong quá trình tính toán vì số bước lặp ít. Vậy ta nên tìm hàm mật độ g gần với hàm f. 2, Nếu giá của hàm f không bị chặn thì để tìm M ta xác định hàm mật độ g có đuôi nặng hơn f. Ví dụ 1.4 Giả sử ta tìm mẫu |X| mà X là BNN có phân phối chuẩn tắc khi đó hàm mật độ của |Z| là: f(x) =  2 π exp(− x 2 2 ) với x ∈ R + . Ta đã biết cách xây dựng một mẫu có phân phối mũ. Vì vậy ta chọn hàm g là hàm mật độ của phân phối mũ với tham số 1 và có: f(x) g(x) =  2 π exp(− x 2 − 2x 2 ) =  2e π exp(− (x − 1) 2 2 ) ≤  2e π . Đặt M =  2e π . Khi đó f(x) M.g(x) = exp(− (x − 1) 2 2 ). Theo phương pháp lấy mẫu loại trừ thì ta có thể thực hiện theo các bước sau: Bước 1: Đặt Y = y từ phân bố mũ với tham số 1 và U = u từ phân phối chuẩn U(0, 1). Bước 2: Nếu u ≤ exp(− (y − 1) 2 ) 2 ) trở lại X = y. Ngược lại quay về Bước 1. ⊗ 9 Ví dụ 1.5 Cho một biến ngẫu nhiên Y với hàm mật độ g(x) được xây dựng trên không gian S. Giả sử A ⊂ S và ta lấy mẫu của biến ngẫu nhiên có điều kiện X = (Y |Y ∈ A) với không gian xác định A. Trong trường hợp lấy mẫu bằng phương pháp loại trừ ta có thể thực hiện bởi việc lấy mẫu X lặp lại cho đến khi mẫu ta cần thuộc A. Chính xác hơn, X có hàm mật độ f(x) = g(x) P (Y ∈ A) với x ∈ A. Vậy f(x) g(x) ≤ 1 P (Y ∈ A) = M và f(x) M.g(x) = 1 [x∈A] . Giả sử rằng U là phân phối đều trong một khoảng (0,1). Khi đó P (U ≤ f(Y ) M.g(Y ) ) =  1 nếu Y ∈ A 0 nếu Y /∈ A. Với phương pháp lấy mẫu loại trừ ta chấp nhận giá trị này nếu Y ∈ A và ngược lại ta loại bỏ. Nếu việc đánh giá hàm f không khó khăn, ngoài việc đánh giá cận trên Mg(x) cho f(x) ta có thể đánh giá cận dưới h(x) và ta có phương pháp lấy mẫu loại bỏ cải biên như sau: 1. Lấy Y = y từ g(y) và U = u từ U(0, 1). 2. Chấp nhận nếu u ≤ h(y) M.g(y) và nhận X = y như là mẫu. Ngược lại chuyển sang bước 3. 3. Chấp nhận nếu u ≤ f(y) M.g(y) và nhận X = y như là mẫu. Ngược lại quay về bước 1. Sẽ có lợi hơn rất nhiều vì trung bình ta chỉ cần 1 M  h(x)dx lần nếu thay bởi hàm h. Hàm h có thể tìm được nhờ khai triển Taylor. 1.2 Ước lượng bằng mô phỏng Trong phần trước, ta tìm cách lấy mẫu của phân bố mục tiêu (target density) dựa trên việc lấy mẫu của một phân bố đề xuất (proposal den- sity). Phần này, dựa trên mẫu của phân bố đề xuất ta tìm ước lượng không chệch cho các đặc trưng của phân bố mục tiêu. 10 1.2.1 Lấy mẫu quan trọng (Importance Sampling) Giả sử ta quan tâm đến tích phân: I = E f (h(x)) =  S h(x)f(x)dx. trong đó f là hàm mật độ. Viết tích phân này dưới dạng: I =  S f(x) g(x) h(x)g(x)dx. trong đó g(x) là hàm mật độ thỏa mãn g(x) > 0 nếu f(x).h(x) = 0. Ta sinh mẫu ngẫu nhiên (độc lập có cùng phân bố) (x 1 , x 2 , , x n ) từ g và ước lượng I bởi:  I = 1 n n  i=1 f(x i ) g(x i ) h(x i ) = 1 n n  i=1 w(x i )h(x i ). Thủ tục này gọi là Lấy mẫu quan trọng. Hàm mật độ g được gọi là hàm mật độ đề xuất và  I gọi là ước lượng quan trọng (importance estimator). w(x i ) = f(x i ) g(x i ) là trọng số (importance weight). Chú ý rằng  I là một ước lượng không chệch của I. Có hai lý do mà ta quan tâm đến phương pháp này là: 1, Việc lấy mẫu từ f(x)là không thể hoặc rất khó. 2, Biến ngẫu nhiên H(X), trong đó X có mật độ f(x), có phương sai lớn. Vì vậy ước lượng không chệch truyền thống, tức 1 n n  i=1 h(x i ) có sai số Monte-Carlo lớn. Phương sai của ước lượng  I theo phương pháp này là hữu hạn nếu: E g (h 2 (X). f 2 (x) g 2 (x) ) = E f (h 2 (X). f(X) g(X) ) < ∞. 11 [...]... đó có nhiều cách để xây dựng một xích Markov mà phân bố giới hạn của nó là π Sau đây ta giới thiệu một vài cơ chế sinh (sampler) xích Markov như thế 2.2 Thuật toán Metropolis- Hastings Gọi S là không gian trạng thái của phân phối mục tiêu Thuật toán Metropolis- Hastings được thực hiện như sau: +) Trước hết, với mỗi x ∈ S ta chọn một hàm mật độ q(x, ), x ∈ S xác định 1 hàm chuyển (xác suất chuyển) của... (x) = p.f1 (x) + (1 − p)f2 (x) trong đó 0 < p < 1 và fi (x) là hàm mật độ i=1,2 Ta có thể lấy mẫu của phân bố hỗn hợp bằng cách lấy mẫu x từ f1 (.) với xác suất p và từ f2 (.) với xác suất 1-p Trong ví dụ ta sau ta chỉ ra cách lấy mẫu từ hàm phân phối tổng hợp bởi thuật toán Metropolis- Hastings Hàm mật độ trong ví dụ có thể lấy trực tiếp nhưng ta sử dụng phương pháp đã nêu ra để minh họa cho phương... ma trận chuyển 1.3.4 Xích tối giản và không có chu kì Định nghĩa 1.5 Ta nói rằng trạng thái i đến được trạng thái j và kí hiệu là i → j nếu tồn tại n ≥ 0 sao cho Pij ≥ 0 (ta quy ước Pii (0) = 1, Pij (0) = 0 nếu i = j ) Hai trạng thái i và j được gọi là liên lạc được nếu i → j và j → i Trong trường hợp đó ta viết i ↔ j Ta có bổ đề sau: (Tính chất bắc cầu) Nếu i → j và j → k thì i → k Thật vậy, theo... các giá trị này rất lớn và ta đặt là N và N ước lượng Eh(Y ) bởi 1 N h(Xn ) Đây là ý tưởng chính của thuật toán n=1 MCMC Như vậy với 1 phân phối π cho trước ta cần xây dựng một xích Markov ergodic X có phân phối giới hạn π Nói chung, có nhiều xích Markov X 28 như vậy, do đó có nhiều cách để xây dựng một xích Markov mà phân bố giới hạn của nó là π Sau đây ta giới thiệu một vài cơ chế sinh (sampler)... 0.8 Chúng ta lấy mẫu ω từ một hàm mật độ chuẩn và cho z = x + ω như một trạng thái mới Do z ∼ N (x, 1) và hàm mật độ đề xuất của chúng ta là: 1 1 q(x, z) = √ exp(− (z − x)2 ) 2 2π 30 Xác suất chấp nhận: π(z).q(z, x) } π(x).q(x, z) 1 1 π(z) √ exp(− (x − z)2 ) 2 2π = min{1, } 1 1 2 π(x) √ exp(− (z − x) ) 2 2π π(z) = min{1, } π(x) α(x, z) = min{1, Thuật toán Metropolis- Hastings thực hiện như sau: 1 Chọn... trạng thái này Tóm lại, thuật toán MetropolisHastings cho ví dụ này được thực hiện như sau: +) Chọn X0 ∈ S , ví dụ chọn ngẫu nhiên 1 điểm trên đường tròn, các điểm tiếp theo được dịch đi 1 đoạn d + ε với ε > 0 đủ nhỏ +) Giả sử Xn = x ∈ S , ta chọn i ∈ {1, , m} ngẫu nhiên (xác suất đều 1 ) và sinh z có phân bố đều trên (0, 2π) Đặt z = {x ∪ {z} \ {xi }} m +) Nếu z ∈ S ta chấp nhận z và đặt Xn+1 = z Nếu... hàm mật độ: π(x) = 1 exp−H(x) Z Ta gọi Z là hàm phân hoạch (portition function) Thực chất Z là hệ số chuẩn hóa của π Thuật toán Metropolis- Hastings có thể áp dụng cho mô hình này Để 33 xác định một trạng thái (cấu hình) mới ta duyệt tất cả các điểm của lưới theo một thứ tự nào đó và đề xuất trạng thái của mỗi điểm ( +1 hoặc -1 ) Dưới đây là một đoạn mã chương trình xác định trạng thái của mỗi điểm... Để biết phương trình cân bằng của xích Metropolis - Hastings, trước hết ta cần tính nhân chuyển (transition kernel) của chuỗi này Bổ đề 2.1 Mật độ chuyển p(x, y) của thuật toán Metropolis - Hastings được xác định bởi: p(x, y) = q(x, y)α(x, y) + 1[x=y] r(x) nếu S rời rạc    q(x, y)(1 − α(x, y))dy  r(x) =   q(x, y)(1 − α(x, y))    y∈S nếu S liên tục S Chứng minh: Giả sử S không liên tục Xích... sau: U = (ui ) là phân bố dừng nếu và chỉ nếu: 1 ui 0 và ui = 1, i∈S ui Pij với ∀j ∈ S 2 uj = i∈S Ví dụ 1.9 Cho (Xn ) là xích Markov với không gian trận xác suất chuyển P:  3 1 5 5   1 2 P = 6 3   3 3 8 8 trạng thái S = 1, 2, 3 và ma  1 5   1  6   1 4 Hãy tìm phân bố dừng (nếu có) của xích đó Lời giải: Đặt U = (x, y, z) Khi đó U là phân bố dừng khi và chỉ khi x, y, z là nghiệm không... khả nghịch nếu tồn tại một phân bố khả nghich của xích đó Định lý 1.9 Xét xích Markov (X0 , X0 ) có không gian trạng thái S = {1, 2, , k} và ma trận chuyển P Nếu π là phân bố khả nghịch của xích thì đó đồng thời là một phân bố dừng của xích 27 Chương 2 THUẬT TOÁN METROPOLIS- HASTINGS 2.1 Giới thiệu về MCMC Giả sử ta muốn biết kỳ vọng của biến ngẫu nhiên h(Y ) với Y là đại lượng ngẫu nhiên có hàm mật . pháp MCMC và nêu thuật toán Metropolis cùng các ví dụ cụ thể áp dụng thuật toán này. Chương 3: Áp dụng thuật toán Metropolis: Trong chương này em giới thiệu về ngôn ngữ lập trình R và các tính năng. đó em ứng dụng vào bài toán mô hình lõi cứng (hard-core model) để viết một đoạn chương trình áp dụng ngôn ngữ R cho kết quả cụ thể. Trong chương này em nêu thuật toán và chương trình áp dụng trên. 28 2.2 Thuật toán Metropolis- Hastings . . . . . . . . . . . . . . . 29 3 ÁP DỤNG THUẬT TOÁN METROPOLIS 46 3.1 Giới thiệu về R . . . . . . . . . . . . . . . . . . . . . . . . 46 3.2 Mô hình lõi cứng

Ngày đăng: 11/06/2015, 16:36

Xem thêm: Thuật toán metropolis và ứng dụng

TỪ KHÓA LIÊN QUAN

Mục lục

    KIN THC CHUN BI

    Các phng pháp mô phong bin ngu nhiên

    Phng pháp ly mu ngc

    Phng pháp ly mu loai tr

    c lng bng mô phong

    Ly mu quan trong (Importance Sampling)

    Gii thiu v xích Markov

    Phân b gii han

    Xích ti gian và không có chu kì

    Gii thiu v MCMC

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w