Deep Generative models : Recent advances – part 1

Một cách khá “mỉa mai”, thành công của Deep Learning gần đây chủ yếu tập trung trong các bài toán supervised, trong đó các mô hình Deep Learning chủ yếu học phân phối xác suất có điều kiện của label cho truớc input data. Một trong những ưu điểm đuợc quảng cáo nhiều nhất của Deep Learning là khả năng học feature từ dữ liệu, cuối cùng quy về thành việc học một chuỗi các hàm đơn giản, nhưng lồng với nhau để xấp xỉ phân phối xác suất cần học. “Nghệ thuật” Deep Learning, cuối cùng chẳng qua chỉ là nghệ thuật xấp xỉ một hàm số phức tạp (phân phối xác suất nào đó) bằng một chuỗi các hàm đơn giản. Ngay cả khi đó, nguời ta vẫn cần phải cung cấp nhãn thì các feature mới tốt đuợc. Học các feature từ dữ liệu không có nhãn (Unsupervised Feature Learning) vẫn là một bài toán khó.

Unsupervised Feature Learning không chỉ có mỗi K-means hay PCA (và họ hàng của nó). Sau thời của các phương pháp tuyến tính (PCA, SVD,…) thì đến thời của kernel methods và hằng hà sa số các phương pháp non-linear khác, gọi chung là manifold learning. Mặc dù các phương pháp này là non-linear, thông thường chúng cũng chỉ là một mapping từ không gian ban đầu sang không gian feature mới.

Một cách tổng quát, mapping từ không gian này sang không gian khác có thể biểu diễn bằng 1 hàm f: X \rightarrow D, biến mỗi phần tử x \in X thành f\left(x\right) \in D. Tùy vào f là hàm tuyến tính hay phi tuyến mà ta gọi thuật toán tuơng ứng. Các phuơng pháp feature learning khác nhau ở chỗ mỗi phương pháp sử dụng một vài giả sử a priori nào đó về dạng của hàm f, chẳng hạn với PCA thì f là hàm tuyến tính f(x) = Ax, với auto-encoder thì f(x) = \sigma(Ax +b), với mục tiêu là reconstruct đuợc dữ liệu ban đầu, v.v…

Và giờ những nguời làm Deep Learning lí lụân thế này: nếu như tất cả mấy trò học hành này đều là xấp xỉ hàm số (function approximation), thì Deep Learning có quyền làm trùm (has the right to win – đôi khi nghĩ viết luôn bằng tiếng Anh thì dễ hơn). Bằng chứng là các mô hình Deep Learning cho kết quả tốt nhất khi xấp xỉ các hàm xác suất có điều kiện trong supervised learning, điều đó chứng tỏ lớp các hàm mà Deep Learning có thể xấp xỉ là khá lớn, mạnh và flexible (vì vậy nên khó train hơn các mô hình khác). Nếu đã như vậy, một cách tự nhiên là dùng Deep Learning để xấp xỉ nốt các hàm cho unsupervied feature learning.

Một khi xác định vậy rồi, thì buớc tiếp theo là mang các bài học từ supervised learning sang unsupervised feature learning. Bài học quan trọng nhất là mô hình phải đủ sâu (và rộng), tại vì chỉ khi có nhiều layer thì các mô hình Deep Learning mới đủ mạnh để xấp xỉ các hàm phức tạp.

Vấn đề là với mô hình sâu thì không ai biết phải huấn luyện thế nào cho unsupervised feature learning. Khoảng 2006, thành tựu quan trọng của DL trong unsupervised feature learning là việc học nhiều lớp auto-encoder rồi chồng tất cả lên nhau. Mặc dù đây là cách thông minh để học các mô hình sâu nhanh hơn, nhưng với cách tiếp cận này thì khi train layer thứ i ta phải fix tất cả các layer phía duới nó. Điều đó hạn chế đáng kể lớp hàm mà các mô hình này có thể khám phá được.

Duới góc nhìn probabilistic modeling nguời ta gọi dạng này là generative model, trong đó ta tìm cách học phân phối xác suất joint distribution của dữ liệu. Thay vì học một mớ feature, sẽ bổ ích hơn nhiều nếu ta có thể học joint distribution, vì từ đó ta có thể làm rất nhiều suy diễn xác suất hay ho. Feature learning khi đó có thể xem là a nice side-effect của generative modeling. Thành ra vài năm gần đây võ lâm giang hồ chuyển sang tìm cách học generative model, thay vì học feature.

Biểu diễn joint distribution nói chung trong bất cứ mô hình nào cũng là NP-hard, vì joint distribution, theo định nghĩa, là bảng xác suất của tổ hợp tất cả các giá trị của các biến ngẫu nhiên. Với kiến trúc von Neumann, biểu diễn phân phối này bằng cách nào cũng có vẻ dẫn tới bùng nổ tổ hợp (Một số nguời tin rằng chỉ có con nguời mới biết cách biểu diễn joint distribution một cách hiệu quả, trong bộ não). Nói như Daphne Koller, khi mọi chuyện hay ho để làm đều là NP-hard, thì tốt nhất là tìm những chỗ nào nó không còn NP-hard để làm.

Một mô hình generative hiệu quả thì phải rất hiệu quả trong mọi việc, bao gồm training (uớc luợng tham số của mô hình từ dữ liệu), inference (tính giá trị của unobserved variables), sampling (lấy mẫu mới – công việc “sáng tạo” mà discriminative model không làm đuợc), tính xác suất p(x) cho một mẫu x bất kì, v.v… Hiệu quả nghĩa là tốt nhất là nó không phải NP-hard (mặc dù khi nó là NP-hard thì cũng có thể chơi chiêu bằng MCMC hay Variational Inference)

Graphical models là một cách như vậy. Bằng cách biểu diễn joint distribution bằng tích của một mớ các factors, việc tính xác suất p(x) nói chung là đơn giản. Nhưng huấn luyện và sampling không phải lúc nào cũng dễ, nhất là khi các factors liên quan không phải là xác suất. Khi đó để biến mô hình thành một mô hình xác suất, ta phải chia tích các factors với 1 hằng số, về cơ bản là tổng của tích các factors với mọi tổ hợp của tất cả các biến (gọi là partition function). Tính chính xác partition function, do đó, cũng là NP-hard (trừ những truờng hợp đơn giản). Trong truờng hợp biến liên tục, thì partition function là tích phân intractable.

Vậy hi vọng nào cho Deep Learning? Khoảng 10 năm truớc, thành tựu lớn nhất của Deep Learning trong lĩnh vực này là Deep Belief Networks, trong đó việc huấn luyện đuợc xấp xỉ bằng cách train từng layer bằng RBM rồi stack tất cả lên, nhưng khi inference và sample thì vẫn phải dùng MCMC, hoặc variational inference. Trong truờng hợp này, việc huấn luyện vẫn đuợc thực hiện bằng cách maximize xác suất likelihood (và xác suất likelihood thuờng có partition function, nên phải MCMC hoặc Variational Inference).

Tuy nhiên tối đa hoá log-likelihood không phải là cách duy nhất để huấn luyện các mô hình kiểu này. Các cách khác để làm chuyện này là score matching, Noise-contrastive estimation (NCE), và sampling thẳng từ phân phối đích. Mỗi phuơng pháp này đều có ưu nhuợc điểm riêng mà ta sẽ xem xét sau đây.

Cụ thể, ta sẽ nói về một số phuơng pháp Generative Modeling trong Deep Learning gần đây, bao gồm Generative Adversarial Nets (GAN), Ladder netsGenerative Stochastic Nets.

Trong phần sau.

=========

Đoạn này lỡ viết mà không biết nhét vào đâu:

Xét từ góc độ mô hình xác suất (probabilistic modeling), mô hình hóa dữ liệu thật ra là tìm cách biểu diễn một phân phối xác suất nào đó của dữ liệu một cách hiệu quả. Phân phối xác suất có thể là phân phối xác suất có điều kiện (khi đó ta có discriminative model) hoặc là joint distribution (khi đó ta có generative model). Joint distribution nói chung là “mạnh” nhất vì từ nó có thể suy diễn ra tất cả các xác suất có điều kiện khác, nhưng nói chung là phức tạp, và thường là intractable. Vì vậy hầu hết tất cả các thuật toán supervised learning đều dùng xác suất có điều kiện: hoặc là likelihood hoặc là posterior. Thuật toán học là thuật toán ước lượng tham số sao cho xác suất đó cực đại, mà tiêu biểu là MLE hoặc MAP.

Advertisements

One comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s