Professional Documents
Culture Documents
16.6 Suy diễn và suy diễn xấp xỉ (Inference and Approcimate Inference)
16.6 Suy diễn và suy diễn xấp xỉ (Inference and Approcimate Inference)
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.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.
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)
và
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
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
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).
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)
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].