You are on page 1of 13

cách hiệu quả p(v).

Các biến mới h cũng cung cấp một biểu diễn thay thế cho v. Ví dụ, trong
phần 3.9.6 ta đã thảo luận: các mô hình Gauss hỗn hợp học một biến tiềm ẩn tương ứng với
các phạm trù của các mẫu đầu vào được lấy mẫu từ mô hình này. Điều này có nghĩa là biến
tiềm ẩn trong một mô hình Gauss hỗn hợp có thể được sử dụng để thực hiện phân loại.
Trong chương 14, ta đã thấy cách các mô hình xác suất đơn giản như mã hóa thưa học các
biến tiềm ẩn mà sau đó có thể được sử dụng làm đặc trưng đầu vào cho bộ phân loại, hoặc
làm các tọa độ dọc theo một đa tạp. Một số mô hình khác có thể được sử dụng theo cách
tương tự, nhưng các mô hình sâu hơn và các mô hình có những kiểu tương tác khác thậm
chí có thể tạo ra các mô tả phong phú hơn nhiều về đầu vào.Nhiều hướng tiếp cận thực
hiện việc học đặc trưng bằng cách học qua các biến tiềm ẩn. Thông thường, khi biết một mô
hình nào đó của v và h, các quan sát thực nghiệm cho thấy E [h | v] hoặc arg maxh p(h, v) là
một phép ánh xạ đặc trưng tốt cho v .

16.6 Suy diễn và suy diễn xấp xỉ


(Inference and Approcimate Inference)
Một trong những cách thức chính để sử dụng một mô hình xác suất là đặt các câu hỏi
về mối quan hệ giữa các biến. Chẳng hạn, khi có kết quả của một tập các xét nghiệm y tế, ta
có thể đặt câu hỏi về loại bệnh mà bệnh nhân có thể mắc. Trong một mô hình biến tiềm ẩn,
có thể ta sẽ muốn trích xuất các đặc trưng E [h | v] mô tả các biến quan sát v. Đôi khi ta cần
giải quyết các vấn đề như vậy để thực hiện các tác vụ khác. Chúng ta thường huấn luyện các
mô hình của mình bằng nguyên lí hợp lí cực đại. Bởi vì
log p ( v )=E h p (h∨v) ¿¿ (16.9)
nên ta thường muốn tính p(h| v) để triển khai một quy tắc học. Tất cả những điều này là
các ví dụ về những vấn đề suy diễn, trong đó ta phải tự dự đoán giá trị của một số biến khi
biết các biến khác, hoặc dự đoán phân phối xác suất của một số biến với giá trị cho trước
của các biến khác.
Thật không may, đối với hầu hết các mô hình đa tầng mà chúng ta quan tâm, những
bài toán suy diễn này đều là khó tính toán, ngay cả khi chúng ta đã sử dụng một mô hình đồ
thị có cấu trúc để đơn giản hóa chúng. Cấu trúc đồ thị cho phép chúng ta biểu diễn các
phân phối phức tạp, có số chiều lớn với số lượng tham số hợp lí, nhưng các đồ thị được sử
dụng trong học sâu thường không đủ hẹp để phép suy diễn đạt hiệu suất cao.
Dễ thấy rằng việc tính xác suất biên của một mô hình đồ thị tổng quát có độ phức tạp
là #P. Lớp độ phức tạp #P là một tổng quát hóa của lớp độ phức tạp NP. Các bài toán trong
NP chỉ yêu cầu xác định liệu một bài toán có giải pháp hay không và tìm một giải pháp nếu
tồn tại. Các bài toán trong #P yêu cầu đếm số lượng giải pháp. Để xây dựng một mô hình đồ
thị trong trường hợp xấu nhất, tưởng tượng rằng chúng ta định nghĩa một mô hình đồ thị
của các biến nhị phân trong một bài toán 3-SAT. Chúng ta có thể áp đặt một phân phối đều
trên các biến này. Sau đó, ta có thể thêm một biến nhị phân tiềm ẩn cho mỗi mệnh đề để
biết mỗi mệnh đề có được thỏa mãn hay không. Sau đó, ta có thể thêm một biến tiềm ẩn
khác để biết liệu tất cả các mệnh đề có được thỏa mãn hay không. Điều này có thể được
thực hiện mà không cần tạo ra một nhóm nút đầy đủ lớn, bằng cách xây dựng một cây quy
dẫn (reduction tree) của các biến tiềm ẩn, với mỗi nút trong cây thể hiện liệu hai biến còn
lại có được thỏa mãn hay không. Lá của cây này là các biến cho mỗi mệnh đề. Gốc của cây
thể hiện liệu toàn bộ bài toán có được thỏa mãn hay không. Do phân phối trên các biến và
phủ của nó là phân phối đều, phân phối biên trên gốc của cây quy dẫn xác định xem bao
nhiêu phần trăm của phép gán thỏa mãn bài toán. Mặc dù đây là một ví dụ cho trường hợp
xấu nhất, các đồ thị NP khó thường xuất hiện trong thực tế.
Điều này thúc đẩy việc sử dụng suy diễn xấp xỉ. Trong ngữ cảnh học sâu, suy diễn xấp
xỉ thường là suy diễn biến phân, trong đó chúng ta xấp xỉ phân phối thực p(h| v) bằng cách
tìm kiếm một phân phối xấp xỉ q (h| v ) gần với phân phối thực nhất có thể. Kĩ thuật này và
các kĩ thuật khác được mô tả chi tiết trong chương 19.

16.7 Sử dụng học sâu trong mô hình xác suất có cấu trúc
(The Deep Learning Approach to Structured Probabilistic Models)
Những người ứng dụng học sâu thường sử dụng cùng những công cụ tính toán cơ
bản như những người ứng dụng học máy khác – những người làm việc với các mô hình xác
suất có cấu trúc. Tuy nhiên, trong bối cảnh học sâu, ta thường đưa ra các quyết định thiết
kế khác nhau về cách kết hợp những công cụ này, khiến cho các thuật toán và các mô hình
nhìn chung rất khác so với các mô hình đồ thị truyền thống.
Học sâu không phải lúc nào cũng liên quan đến các mô hình đồ thị đa tầng. trong bối
cảnh các mô hình đồ thị, ta có thể xác định độ sâu của một mô hình theo mô hình đồ thị
thay vì đồ thị tính toán. Ta có thể xác định độ sâu của biến ẩn hi là j nếu đường đi ngắn nhất
từ hi đến một biến khả kiến là j bước. Chúng ta thường mô tả độ sâu của mô hình là độ sâu
lớn nhất của bất kì hi nào như vậy. Loại độ sâu này khác với chiều sâu định nghĩa bởi đồ thị
tính toán. Nhiều mô hình sinh mẫu được sử dụng trong học sâu không có biến ẩn hoặc chỉ
có một tầng biến ẩn nhưng sử dụng đồ thị tính toán nhiều tầng để định nghĩa các phân phối
có điều kiện trong mô hình.
Học sâu về cơ bản luôn sử dụng ý tưởng về biểu diễn phân tán. Ngay cả các mô hình
nông được sử dụng cho các mục đích học sâu ( chẳng hạn như các mô hình huấn luyện
trước nông mà sau này sẽ được kết hợp để hình thành những mô hình đa tầng) gần như
luôn luôn có một tầng biến tiềm ẩn. Các mô hình học sâu thường có nhiều biến tiềm ẩn hơn
các biến khả kiến. Tương tác phi tuyến phức tạp giữa các biến được hình thành thông qua
các kết nối gián tiếp truyền qua nhiều biến tiềm ẩn.
Ngược lại, các mô hình đồ thị truyền thống thường chứa hầu hết các biến được quan
sát ít nhất vài lần, ngay cả khi một số mẫu huấn luyện bị khuyết nhiều biến ngẫu nhiên. Các
mô hình truyền thống chủ yếu sử dụng các thành phần bậc cao và học cấu trúc để nắm bắt
các tương tác phi tuyến phức tạp giữa các biến. Những mô hình này có thể có ít hoặc không
có biến ẩn.
Trong học sâu, cách thiết kế các biến tiềm ẩn cũng khác biệt. Người ứng dụng học sâu
thường không có ý định gán trước cho các biến tiềm ẩn bất kì ngữ nghĩa cụ thể nào – thuật
toán huấn luyện được tự do định nghĩa các khái niệm cần thiết mà nó cần để mô hình hóa
một tập dữ liệu cụ thể. Việc diễn giải các biến tiềm ẩn theo cách hiểu của con người thường
không dễ dàng, mặc dù vẫn có một vài kĩ thuật minh họa có thể diễn giải nôm na một số
đặc tính thô sơ về những gì chúng biểu diễn. Đối với các biến tiềm ẩn được sử dụng trong
các mô hình đồ thị truyền thống, chúng được thiết kế với một số ngữ nghĩa cụ thể - chủ đề
của một văn bản, trí thông minh của một học sinh, bệnh gây ra các triệu chứng của một
bệnh nhân, v.v. Những mô hình này thường dễ diễn giải hơn nhiều đối với con người và
thường được đảm bảo về mặt lí thuyết hơn, nhưng khả năng mở rộng đến các vấn đề phức
tạp của chúng là kém hơn và không thể tái sử dụng trong nhiều bối cảnh khác nhau giống
như cách mô hình đa tầng thực thi.
Một sự khác biệt dễ thấy khác là kiểu kết nối thường được sử dụng trong học sâu.
Các mô hình đồ thị đa tầng thường có các nhóm đơn vị lớn được kết nối với các nhóm đơn
vị khác, sao cho tương tác giữa hai nhóm có thể được mô tả bằng một ma trận. Các mô
hình đồ thị truyền thống có rất ít kết nối và việc lựa chọn các kết nối cho mỗi biến có thể
được thiết kế riêng biệt. Thiết kế của cấu trúc mô hình có liên kết chặt chẽ với sự lựa chọn
thuật toán suy diễn. Cách tiếp cận truyền thống với các mô hình đồ thị thường muốn duy trì
tính khả thi của suy diễn chính xác. Khi sự ràng buộc này là quá giới hạn, người ta dùng một
thuật toán suy diễn xấp xỉ phổ biến được gọi là truyền bá niềm tin theo vòng (loopy belief
propagation). Cả hai cách tiếp cận này thường hoạt động tốt với đồ thị kết nối thưa. Trong
khi đó, các mô hình được sử dụng trong học sâu có xu hướng kết nối mỗi đơn vị khả kiến vi
với nhiều đơn vị ẩn h j, để h có thể cung cấp một biểu diễn phân tán của vi (và có thể của
một số biến khả kiến khác nữa). Tuy biểu diễn phân tán có nhiều ưu điểm, nhưng từ góc
nhìn của mô hình đồ thị và độ phức tạp tính toán, các biểu diễn phân tán có điểm yếu là
cách biểu diễn này thường dẫn đến kết quả là các đồ thị không đủ thưa để các kĩ thuật suy
diễn chính xác truyền thống và truyền bá niềm tin theo vòng có thể áp dụng được. Hậu quả
là, một trong những khác biệt nổi bật nhất giữa cộng đồng mô hình đồ thị truyền thống và
cộng đồng mô hình đồ thị đa tầng là việc truyền bá niềm tin theo vòng hầu như không bao
giờ được sử dụng cho học sâu. Thay vào đó, hầu hết các mô hình sâu được thiết kế để tăng
hiệu suất của lấy mẫu Gibbs hoặc các thuật toán suy diễn biến phân. Một số lưu ý khác là
các mô hình học sâu chứa một lượng rất lớn các biến tiềm ẩn, dẫn đến việc lập trình hiệu
suất cao trở thành một yêu cầu thiết yếu. Điều này là một động lực bổ sung, ngoài việc lựa
chọn thuật toán suy diễn bậc cao, để nhóm các đơn vị thành các tầng và dung một ma trận
để mô tả sự tương tác giữa hai tầng. Phương pháp này cho phép các bước riêng lẻ của
thuật toán được triển khai một cách hiệu quả với các phép nhân ma trận, hoặc các tổng
quát hóa của chúng với kết nối thưa, như phép nhân ma trận chéo theo khối hay phép tích
chập.
Cuối cùng, mô hình hóa bằng theo đồ thị theo hướng tiếp cận học sâu có đặc trưng là
ta không hiểu biết rõ về chúng. Thay vì đơn giản hóa mô hình cho đến khi tất cả các đại
lượng mong muốn có thể được tính toán chính xác, chúng ta tang độ phức tạp của mô hình
cho đến khi nó vừa đủ để có thể huấn luyện hoặc sử dụng được. Ta thường sử dụng các mô
hình có các phân phối biên không thể tính toán được mà chỉ cần thỏa mãn yêu cầu rằng có
thể lấy mẫu gần đúng từ chúng. Chúng ta thường huấn luyện các mô hình với một hàm mục
tiêu khó tính toán, đến nỗi ta thậm chí không thể xấp xỉ nó trong một khoảng thời gian hợp
lí, nhưng ta vẫn có thể huấn luyện mô hình nếu có thể ước lượng gradient của hàm đó.
Hướng tiếp cận học sâu thường tìm ra lượng thông tin tối thiểu mà ta thực sự cần, và sau
đó tìm ra cách để có được một xấp xỉ hợp lí của thông tin đó càng nhanh càng tốt.

16.7.1 Ví dụ: Máy Boltzmann giới hạn


(Example: The Restricted Boltzmann Machine)
Máy Boltzmann giới hạn (restricted Boltzmann machine (RBM)) ([Smo86]), hoặc
harmonium, là một ví dụ tinh túy về các học sâu sử dụng các mô hình đồ thị. Bản thân RBM
không phải là một mô hình đa tầng. Thay vào đó, nó có một tầng biến tiềm ẩn có thể được
sử dụng để học một biểu diễn cho đầu vào. Trong chương 20, chúng ta sẽ thấy cách mà các
RBM có thể được sử dụng để xây dựng nhiều mô hình đa tầng hơn. Trong phần này, chúng
tôi bàn về cách RBM minh họa những nguyên tắc được sử dụng trong nhiều mô hình đồ thị
đa tầng khác nhau: đơn vị của nó được tổ chức thành các nhóm lớn được gọi là các tầng,
kết nối giữa các tầng được mô tả bằng một ma trận, tính kết nối là tương đối dày đặc, mô
hình được thiết kế để cho phép lấy mẫu Gibbs hiệu quả và trọng tâm của thiết kế mô hình là
cho phép thuật toán huấn luyện tự chủ trong việc học các biến tiềm ẩn mà ngữ nghĩa của
nó không được xác định cụ thể bởi người thiết kế. Chúng ta sẽ thảo luận về RBM một cách
chi tiết hơn trong phần 20.2.

Hình 16.14: RBM được vẽ dưới dạng mạng Markov.


Dạng tiêu chuẩn của RBM là một mô hình năng lượng với đơn vị khả kiến và đơn vị
ẩn là các biến nhị phân. Hàm năng lượng của nó là :
E ( v , h )=−bT v−c T h−v T Wh , (16,10)
trong đó b , c và W là các tham số không bị ràng buộc, có giá trị thực và có thể học được. Có
thể thấy rằng mô hình được chia thành nhóm đơn vị: v và h , tương tác giữa chúng được mô
tả bởi một ma trận W . Mô hình được mô tả bằng đồ thị trong hình 16.14. HÌnh này cho ta
thấy: một khía cạnh quan trọng của mô hình này là không tồn tại tương tác trực tiếp nào
giữa bất kì hai đơn vị khả kiến hoặc hai đơn vị ẩn nào ( do đó nó được gọi là “ giới hạn”
(restricted); một máy Boltzmann tổng quát có thể có các kết nối tùy ý).

Hình 16.15
Hình 16.15: Các mẫu từ RBM đã qua huấn luyện và trọng số của nó. (Hình bên trái) Các
mẫu từ một mô hình được huấn luyện trên MNIST, được lấy mẫu bằng phương pháp lấy
mẫu Gibbs. Mỗi cột là một quá trình lấy mẫu Gibbs riêng biệt. Mỗi hàng đại diện cho đầu
ra của 1.000 bước lấy mẫu Gibbs khác nhau. Các mẫu liền kề có mối tương quan cao với
nhau. (Hình bên phải) Các vector trọng số tương ứng. So sánh với các mẫu và trọng số
của mô hình hệ số tuyến tính, được mô tả trong hình 13.2. Các mẫu ở đây tốt hơn nhiều
vì tiền tố RBM p(h) không bị ràng buộc là phân phối nhân tử. RBM có thể học các tính
năng nào nên xuất hiện cùng nhau khi lấy mẫu. Mặt khác, hậu tố RBM p ( h|v ¿ là phân
phối nhân tử, trong khi phần hậu nghiệm mã hóa thưa p ( h|v ¿ không phải là giai thừa, vì vậy
mô hình mã hóa thưa có thẻ hữu dụng hơn trong trích xuất đặc trưng. Các mô hình khác có
thể có cả phi giai thừa p ( h ) và phi giai thừa p ( h|v ¿. Hình ảnh được sao chép với sự cho phép
của LISA (2008).
Ràng buộc trong cấu trúc của RBM mang lại các thuộc tính thú vị:
p ( h|v ¿=∏i p ( hi| v ¿ (16.11)

p ( v|h ¿=∏i p ( vi|h ¿ . (16.12)
Các phân phối có điều kiện riêng lẻ cũng được tính toán dễ dàng. Với RBM nhị phân, ta có:
P ( hi=1| v ¿=σ ( v W : ,i +c i ) , (16.13)
T

P ( hi=0|v ¿=1−σ ( v T W : ,i +c i ) . (16.14)

Những thuộc tính này kết hợp với nhau cho phép lấy mẫu Gibbs theo khối (block Gibbs
sampling) một cách hiệu quả, luân phiên giữa lấy mẫu đồng thời toàn bộ h và lấy mẫu đồng
thời toàn bộ v. Các mẫu được khởi tạo bởi lấy mẫu Gibbs từ một mô hình RBM được thể
hiện trong hình 16.15.
Vì bản thân hàm năng lượng chỉ là một hàm tuyến tính của các tham số, nên ta dễ
dàng tính được đạo hàm của nó. Ví dụ,

E( v , h)=−v i hi . (16.15)
∂W i , j

Hai tính chất này – lấy mẫu Gibbs hiệu quả và tính đạo hàm hiệu quả - giúp việc huấn
luyện trở nên thuận tiện hơn. Trong chương 18, chúng ta sẽ thấy rằng các mô hình vô
hướng có thể được huấn luyện bằng cách tính toán các đạo hàm áp dụng cho các mẫu từ
mô hình.
Quá trình huấn luyện mô hình khiến h trở thành một biểu diễn của dữ liệu v. Chúng
ta thường có thể sử dụng Eh p (h|v ¿ ¿ [ h ] như một tập các đặc trưng để mô tả v .
Nhìn chung, RBM minh họa hướng tiếp cận học sâu điển hình cho các mô hình đồ thị:
việc học biểu diễn được thực hiện thông qua các tầng biến tiềm ẩn, kết hợp với các tương
tác hiệu quả giữa các tầng được tham số hóa bởi ma trận.
Các mô hình đồ thị cung cấp một ngôn ngữ thanh lịch, linh động và rõ ràng để mô tả
các mô hình xác suất. Trong các chương sắp tới, chúng ta sẽ sử dụng ngôn ngữ này, cùng
những góc nhìn khác, để mô tả một loạt các mô hình xác suất đa tầng.
Chương 17

Phương pháp Monte Carlo


Các thuật toán ngẫu nhiên được chia thành 2 nhóm chính: thuật toán Las Vegas và
thuật toán Monte Carlo. Các thuật toán Las Vegas luôn đưa ra câu trả lời chính xác (hoặc
thông báo rằng thuật toán đã thất bại). Các thuật toán thuộc nhóm này tiêu tốn một lượng
tài nguyên (thường là bộ nhớ hoặc thời gian) ngẫu nhiên. Ngược lại, các thuật toán Monte
Carlo đưa ra câu trả lời với một lượng sai số ngẫu nhiên. Ta thường có thể giảm thiểu lượng
sai số này bằng cách sử dụng nhiều tài nguyên hơn (thường là thời gian thực thu và bộ
nhớ ). Đối với các dự án có lượng tài nguyên tính toán giới hạn, thuật toán Monte Carlo có
thể cung cấp một đáp án gần đúng.
Tồn tại nhiều bài toán trong học máy rất khó để tìm được câu trả lời chính xác. Do đó,
ta thường không sử dụng các thuật toán tất định và thuật toán Las Vegas. Thay vào đó, ta sử
dụng các thuật toán xấp xỉ tất định hay xấp xỉ Monte Carlo. Hai phương pháp này được sử
dụng rất rộng rãi trong học máy. Trong chương này, chúng ta sẽ tập trung vào phương pháp
Monte Carlo.

17.1 Lấy mẫu và phương pháp Monte Carlo


(Sampling and Monte Carlo Methods)
Chúng ta cần lấy mẫu từ một phân phối xác suất vì nhiều lí do. Lấy mẫu là một cách
thức linh hoạt để xấp xỉ nhiều tổng và tích phân với chi phí thấp. Đôi khi, chúng ta tận dụng
ưu điểm này để tăng tốc đáng kể việc xấp xỉ một tổng dù tốn kém nhưng vẫn có thể tính
được (tractable), ví dụ như trong trường hợp khác, các thuật toán học tập yêu cầu xấp xỉ
một tổng hoặc một tích phân khó tính toán (intractable), chẳng hạn như gradient của log
hàm phân hoạch (partition function) trong một mô hình vô hướng. Trong nhiều trường hợp
khác nữa, lấy mẫu là mục tiêu thực sự của tác vụ, chẳng hạn như khi ta muốn huấn luyện
một mô hình có thể lấy mẫu từ phân phối huấn luyện.

17.1.2 Cơ bản về phương pháp lấy mẫu Monte Carlo


(Basics of Monte Carlo Sampling)
Khi không thể tính chính xác một tổng hoặc một tích phân (ví dụ như một tổng có số
lượng số hạng tính theo hàm mũ, và không có công thức rút gọn chính xác nào cho nó),
người ta thường xấp xỉ nó bằng phương pháp lấy mẫu Monte Carlo. Ý tưởng của phương
pháp này là coi tổng hoặc tích phân đó như một kì vọng theo một phân phối xác suất nào
đó, và xấp xỉ kì vòng này bằng một giá trị trung bình tương ứng. Giả sử
s=∑ p ( x ) f ( x )=E p [ f ( x ) ] (17.1)
x

hoặc
s=∫ p ( x ) f ( x ) d x=E p [ f ( x ) ] (17.2)

là tổng hoặc tích phân cần ước lượng, được viết lại dưới dạng một kì vọng, với ràng buộc
rằng p phải là một phân phối xác suất (khi đại lượng cần xấp xỉ là một tổng) hoặc hàm mật
độ xác suất (khi đại lượng cần xấp xỉ là một tích phân) của một biến ngẫu nhiên x .
Ta có thể xấp xỉ s bằng cách lấy n mẫu x(1) , … , x (n) từ p, sau đó tính trung bình thực
nghiệm
n
^sn= 1 ∑ f (x( i) ). (17.3)
n i=1

Xấp xỉ này được xây dựng dựa trên một vài tính chất. Trước tiên, dễ thấy rằng ước lượng ^s
là không chệch, vì
n
1 1
E [ s^ n ] = ∑
n i=1
E[f ( x (i )) ]= ∑ s=s
n i=1 n
(17.4)

Bên cạnh đó, luật số lớn (law of large numbers) nói rằng nếu các mẫu x(i) là các biến ngẫu
nhiên độc lập và phân phối đồng nhất (independent and identically distributed random
variables – i.i.d.), thì giá trị trung bình trên gần như chắc chắn hội tụ về giá trị kì vọng:
lim s^ n=s , (17.5)
n→∞

với điều kiện là phương sai của từng đại lượng riêng lẻ, Var [f ( x (i ) ) ], bị chặn. Thật vậy, xét
phương sai của ^sn khi n tăng lên: phương sai Var [ s^ n ] giảm dần và hội tụ về 0, miễn là
Var [ f ( x ) ] < ∞ :
(i )

1
Var [ s^ n ] = 2
Var [ f ( x ) ] (17.6)
n
Var [ f ( x ) ]
¿ . (17.7)
n
Kết quả tiện lợi này còn cung cấp cách ước lượng tính chất bất định của một trung
bình Monte Carlo, hay nói cách khác là sai số kì vọng của xấp xỉ Monte Carlo. Chúng
ta tính giá trị trung bình thực nghiệm và phương sai thực nghiệm của f ( x (i) ), sau đó
chia phương sai ước lượng cho số mẫu n để thu được một ước lượng của Var [ s^ n ] .
1

Định lí giới hạn trung tâm (central limit theorem) nói rằng phân phối của giá trị
Var [ f ( x ) ]
trung bình, ^sn , sẽ hội tụ về phân phối chuẩn với trung bình s và phương sai .
n
Điều này cho phép ta ước lượng khoảng tin cậy xung quanh s^ n , bằng cách sử dụng
phân phối tích lũy của hàm mật độ Gauss.
Những suy luận chúng tôi vừa trình bày đều dựa trên giả định rằng ta có thể
lấy mẫu dễ dàng từ phân phối cơ sở p(x ), tuy nhiên việc này không phải lúc nào cũng
khả thi. Khi việc lấy mẫu từ p không khả thi, một giải pháp thay thế là sử dụng
phương pháp lấy mẫu theo độ quan trọng, sẽ được trình bày trong phần 17.2. Một
phương pháp tổng quát hơn là xây dựng một chuỗi các ước lượng hội tụ về phân
phối mong muốn. Nó được gọi là phương pháp chuỗi Markov Monte Carlo (phần
17.3).

17.2 Lấy mẫu theo độ quan trọng


(Importance Sampling)
Một bước quan trọng khi phân tích biểu thức dưới dấu tích phân (hoặc tổng)
dung trong phương pháp Monte Carlo ở phương trình 17.2 là quyết định phần nào
của biểu thức đóng vai trò của xác suất p( x ) và phần nào đóng vai trò của đại lượng
f ( x), để từ đó tính ra giá trị kì vọng của f ( x) (theo phân phối p( x )). Có nhiều hơn một
cách để phân rã thành hai thành phần này vì ta luôn có thể viết lại p(x ) f (x) dưới
dạng
p(x) f ( x)
p( x ) f (x)=q(x ) (17.8)
q (x)
pf
khi đó, ta có thể lấy mẫu từ q và tính giá trị trung bình của q . Trong nhiều trường
hợp, chúng ta mong muốn kì vọng trên khi đã biết p và f . Bài toán cần giải quyết là
tính kì vọng của f theo phân phối p, vì vậy ta có thể chọn luôn p và f là hai thành
phần của phép nhân rã. Tuy nhiên, lựa chọn p và f từ đặc tả ban đầu của bài toán có
thể không phải là lựa chọn tối ưu, xét trên phương diện só lượng mẫu cần thiết để
đạt được độ chính xác cho trước. May mắn là nếu sử dụng q , ta có thể dễ dàng suy
ra dạng của q ¿ tối ưu. q ¿ tối ưu tương ứng với phương pháp tên là lấy mẫu theo độ
quan trọng tối ưu (optimal importance sampling).
Như đã trình bày ở phương trình 17.8, có thể biến đổi một ước lượng Monte
Carlo bất kì
n
1
^s p= ∑
n i=1, x p
f ( x (i ))
(i)
(17.9)

thành một ước lượng lấy mẫu theo độ quan trọng


p(x )f (x )
n (i ) ( i)
^sq = 1 ∑ . (17.10)
n i=1 , x (i)
q q ( x (i ) )

1
Ta thường ưu tiên sử dụng ước lượng không chệch của phương sai, có giá trị bằng tổng
bình phương sai số chia cho n−1 thay vì n .

Dễ thấy rằng giá trị kì vọng của ước lượng lấy mẫu theo độ quan trọng không phụ thuộc vào
q:
Eq [ ^sq ] =Eq [ s^ p ] =s (17.11)
Tuy nhiên, phương sai của ước lượng này rất nhạy cảm với q . Phương sai được tính như
sau:
p(x)f (x)
Var [ s^ q ]=Var [ ]/n (17.12)
q(x)

Phương sai đạt được giá trị nhỏ nhất khi q là


q ¿ ( x )= p ( x ) ∨f ( x )∨ ¿ , ¿ (17.13)
Z
¿
với Z là hằng số chuẩn hóa, được chọn sao cho phép lấy tổng hoặc tích phân của q ( x ) có giá
trị bằng 1. Các phân phối lấy mẫu theo độ quan trọng tốt sẽ đặt trọng số lớn hơn tại các
điểm mà hàm dưới dấu tích phân có giá trị lớn hơn. Thực tế là khi f ( x) không đổi dấu,
Var [ s^ q ]=0 , nghĩa nếu ta ta dung phân phối tối ưu thì chỉ cần một mẫu là đủ. Tất nhiên, điều
¿

này là bởi việc tính toán q ¿ về cơ bản đã giải quyết được vấn đề ban đầu, nên việc sử dụng
phương pháp lấy một mẫu từ phân phối tối ưu là không thực tế.
Mọi phân phối lấy mẫu q đều hợp lệ (theo nghĩa là tạo ra giá trị kì vọng chính xác), và
q là phân phối tối ưu (theo nghĩa là tạo ra phương sai nhỏ nhất). Việc lấy mẫu từ q ¿ thường
¿

không khả thi, nhưng lấy mẫu từ các lựa chọn khác cho q có thể khả thi và vẫn giúp giảm
phương sai ở một mức độ nào đó.
Một hướng tiếp cận khác là sử dụng lấy mẫu theo độ quan trọng có chệch (biased
importance sampling), ưu điểm của nó là không yêu cầu chuẩn hóa p hay q . Trong trường
hợp các biến là rời rạc, ước lượng lấy mẫu theo độ quan trọng có chệch được tính như sau:
n
p ( x (i ))
∑ f (x )
(i )

i=1 q(x ) ( i)
^s BIS= (17.14)
p(x i )
n ()


i=1 q ( x (i ) )

p(x )
n (i )

∑ ~
f (x )
(i )

i=1 q(x )
(i )
¿ (17.15)
p(x i )
n ()

∑ ~ (i )
i=1 q ( x )

n ~
p(x )
(i )

∑ ~ (i ) f ( x (i ))
i=1 q ( x )
¿ n ~p ( x (i) )
(17.16)
∑ ~ (i )
i=1 q ( x )

với ~p và ~
q là dạng chưa chuẩn hóa của p và q , x(i) là các mẫu lấy từ q . Ước lượng này là ước
lượng chệch vì E [ s^ BIS ] ≠ s , trừ khi n → ∞ và mẫu số ở phương trình 17.14 hội tụ về 1. Do đó
ước lượng này được coi là không chệch tiệm cận.
Một lựa chọn tốt cho q có thể cải thiện đáng kể hiệu suất của ước lượng Monte
Carlo. Ngược lại, một lựa chọn tồi cho q sẽ khiến hiệu suất trở nên tệ hơn nhiều. Trở lại
¿
phương trình 17.12, nhận thấy rằng nếu tồn tại các mẫu của q mà tại đó p ( x ) ∨f ( x )∨ q ( x ) ¿
lớn, thì phương sai của ước lượng có thể trở nên rất lớn. Điều này có thể xảy ra khi q (x) rất
nhỏ trong khi cả p( x ) và f ( x ) đều không đủ nhỏ để loại bỏ nó. q thường được chọn là một
phân phối đơn giản để thuận tiện cho quá trình lấy mẫu. Khi x có nhiều chiều, sự đơn giản
của q khiến nó rất khó để khớp được với p hay p|f |. Khi q ( x ( i) ) ≫ p ( x (i) ) ∨f ( x (i )) ∨¿, lấy mẫu theo
độ quan trọng chỉ thu thập được các mẫu vô dụng (tổng của các số rất nhỏ hoặc bằng 0).
Mặt khác, khi q ( x ( i) ) ≪ p ( x (i) ) ∨f ( x (i )) ∨¿, một trường hợp hiếm xảy ra hơn, tỉ số
p ( x (i) ) ∨f ( x (i )) ∨ ¿ (i) ¿ có thể trở nên rất lớn. Vì trường hợp sau hiếm khi xảy ra, chúng thường
q(x )
không xuất hiện trong một mẫu điển hình, dẫn tới các ước lượng nhỏ điển hình của s, hiếm
khi được bù đắp bởi các ước lượng lớn. Các giá trị rất lớn hoặc rất nhỏ như vậy thường
xuyên xuất hiện khi x có nhiều chiều, vì trong không gian nhiều chiều, phạm vi biến động
của các xác suất đồng thời có thể rất lớn.
Mặc dù có rủi ro như đã trình bày ở trên, lấy mẫu theo độ quan trọng và các biến thể
của nó vẫn rất hữu dụng trong nhiều thuật toán học máy, bao gồm cả các thuật toán học
sâu. Ví dụ như phương pháp sử dụng lấy mẫu theo độ quan trọng để tăng tốc huấn luyện
các mô hình ngôn ngữ neuron với bộ từ vựng lớn (phần 12.4.3.3) hoặc các mạng neuron với
số lượng đầu ra lớn. Bạn có thể tham khảo thêm cách sử dụng lấy mẫu theo độ quan trọng
để ước lượng một hàm phân hoạch (hằng số chuẩn hóa của một phân phối xác suất) trong
phần 18.7, và để ước lượng độ hợp lí thang log trong mô hình học sâu có hướng, chẳng hạn
như bộ tự mã hóa biến phân sẽ được giới thiệu trong phần 20.10.3. Lấy mẫu theo độ quan
trọng còn được sử dụng để cải thiện ước lượng gradient của hàm chi phí, giúp huấn luyện
các tham số mô hình bằng trượt gradient ngẫu nhiên, đặc biệt là với các mô hình có phần
lớn giá trị của hàm chi phí là đóng góp từ một lượng nhỏ các mẫu bị phân loại sai. Thường
xuyên lấy các mẫu khó hơn có thể giúp giảm phương sai của gradient trong những trường
hợp như vậy [Hin06].

17.3 Phương pháp chuỗi Markov Monte Carlo


(Markov Chain Monte Carlo Methods)
Trong nhiều trường hợp, chúng ta muốn sử dụng một kĩ thuật Monte Carlo, nhưng lại
không có phương pháp khả thi nào giúp lấy mẫu chính xác từ phân phối pmodel ( x) hoặc từ
một phân phối lấy mẫu theo độ quan trọng có chất lượng tốt (có phương sai nhỏ) q (x).
Trong học sâu, tình huống này xảy ra nhiều nhất khi pmodel ( x ) được biểu diễn bởi một mô
hình vô hướng. Khi đó, ta có thể sử dụng một công cụ toán học gọi là chuỗi Markov để xấp
xỉ mẫu từ pmodel ( x). Họ thuật toán sử dụng chuỗi Markov để tính các ước lượng Monte Carlo
được gọi là phương pháp chuỗi Markov Monte Carlo (Markov chain Monte Carlo method
(MCMC)). Phương pháp chuỗi Markov Monte Carlo cho học máy được miêu tả chi tiết trong
[KF09]. Điều kiện cơ bản và tổng quát nhất để áp dụng được kĩ thuật MCMC là mô hình
không gán xác suất bằng 0 cho bất kì trạng thái nào. Vì vậy, cách thuận tiện nhất để trình
bày kĩ thuật này là coi nó như một cách lấy mẫu từ một mô hình năng lượng (EBM)
p ( x ) ∝exp (−E( x )) được miêu tả ở phần 16.2.4. Trong EBM, tất cả trạng thái đều được đảm
bảo có xác suất khác 0. Thực tế là phương pháp MCMC còn được ứng dụng rộng rãi hơn
thế, nó có thể kết hợp với nhiều phân phối chứa trạng thái có xác suất bằng 0. Tuy nhiên,
các đảm bảo lí thuyết về hiệu quả của phương pháp MCMC phải được chứng minh tùy từng
trường hợp cụ thể cho mỗi họ phân phối khác nhau. Trong học sâu, lựa chọn phổ biến nhất
là dựa vào các đảm bảo lí thuyết tổng quát cho mô hình năng lượng.

You might also like