You are on page 1of 6

Cấu trúc của mạng GAN bao gồm :

 Generator (trình tạo)

Sau đây là DCGAN, là một kiến trúc phổ biến cho trình tạo G. Nó thực hiện
nhiều lần kỹ thuật transposed convolutions để có thể tăng kích thước của vector
đặc trưng z (upsample z) để tạo ra được hình ảnh x. Chúng ta có thể hiểu nó như
là một quá trình khôi phục lại hình ảnh từ các vector đăc trưng. Hay nói một cách
khác theo kiểu học máy, đó là bạn cứ hình dung nó giống như là trình phân loại
học tập sâu nhưng lại được sử dụng theo hướng ngược lại:

Nhưng một vấn đề đặt ra đó là trình tạo generator nếu chỉ đứng một mình thì nó sẽ
có khả năng chỉ tạo ra được các vector đặc trưng nhiễu một cách ngẫu nhiên, và do
đó các hình ảnh mà trình tạo này tạo ra sẽ chỉ là những hình ảnh đầu ra không có ý
nghĩa. Cho nên, về mặt khái niệm, mạng GAN cần phải có thêm một cấu trúc nữa để
cung cấp cho trình tạo có thể tạo ra các hình ảnh cần phải tạo.
Để tạo được hình ảnh ban đầu này, chúng ta sẽ thực hiện theo cách sau: chúng ta tạo
ra một vector đặc trưng z bằng cách sử dụng phân phối chuẩn hoặc phân phối đồng
đều, ... .Với việc đầu vào là một vector đặc trưng z, chúng ta sẽ thực hiện sử dụng
trình tạo G để tạo ra hình ảnh đầu ra x giống như hình trên.

Về mặt khái niệm, vector đặc trưng z đại diện cho các đặc trưng ẩn của hình ảnh, ví
dụ như: màu sắc, hay hình dạng hình ảnh đầu ra. Nếu bạn nào đã tiếp cận về
Computer Vision thì chắc các bạn sẽ biết về vector đặc trưng ẩn. Còn đối với bạn
nào chưa tiếp cận về Computer Vision, thì các bạn có thể hiểu đây là quá trình từ các
đặc điểm đặc trưng, chúng ta sẽ tái tạo lại hình ảnh gốc chứa các đặc trưng đó. Một
lợi ích lớn của Deep Learning trong thị giác máy tính đó là thay vì việc phải xử lý
thủ công để trích xuất các đặc trưng của hình ảnh, thì với DL chúng ta không cần
phải kiểm soát và phân tích thủ công các đặc trưng này. Điều đơn giản là để máy tự
động phân tích và học các đặc trưng đó. Do đó, tương tự trong GAN, chúng ta sẽ
không kiểm soát bất kỳ giá trị nào của vector đặc trưng. Mà chúng ta sẽ cho máy tự
học các đặc trưng này. Và để khám phá các đặc trưng này mang ý nghĩa gì, thì đơn
giản là bạn chỉ cần trực quan hóa hình ảnh được tạo từ các đặc trưng đó lên và đưa ra
nhận xét.

 Discriminator (trình so sánh) :

Mô hình Discriminator sẽ có tác dụng phân biệt ảnh input là thật hay giả. Nhãn của
mô hình sẽ là thật nếu ảnh đầu vào của Discriminator được lấy tập mẫu huấn luyện
và giả nếu được lấy từ output của mô hình Generator. Về bản chất đây là một bài
toán phân loại nhị phân (binary classification) thông thường. Để tính phân phối xác
suất cho output cho Discriminator chúng ta sử dụng hàm sigmoid.

Trình so sánh ban đầu sẽ nhìn vào hình ảnh trong thực tế và hình ảnh đầu ra được tạo
bởi trình trình tạo. Nó có nhiệm vụ là so sánh hình ảnh thực và hình ảnh được tạo
xem có tương đồng nhau hay không? Tức là nó phải phân biệt được xem hình ảnh
đầu vào cho trình so sánh là hình ảnh trong thế giới thực hay là hình ảnh được tạo
bởi trình tạo. Đẩu ra của trình so sánh là giá trị D(X) là xác suất thể hiện cho hình
ảnh đầu vào X là hình ảnh thực trong thực tế, tức là P(class of input = real image):

Chúng ta sẽ đào tạo trình so sánh này như giống như một trình phân loại trong Deep
Learning thông thường. Nếu đầu vào là một hình ảnh thực thì chúng ta mong muốn
đào tạo sao cho đầu ra D(X) = 1. Còn trong trường hợp nó là hình ảnh được tạo ra thì
chúng ta sẽ mong muốn đầu ra D(X) = 0. Thông qua quá trình đào tạo này, thì trình
so sánh có thể xác định được sự đóng góp của các đặc trưng z được tạo ra trong hình
ảnh X đầu vào có gần giống với hình ảnh trong thế giới thực hay chưa !.

Mặt khác, mục đích chính của chúng ta đó là việc chúng ta mong muốn trình tạo tạo
ra hình ảnh sao cho khi truyền hình ảnh được tạo này vào trình so sánh thì đầu ra
phải là D(X) = 1, tức là chúng ta phải đánh lừa được trình so sánh nhận hình ảnh
được tạo thành hình ảnh trong thế giới thực, như thế, chúng ta có thể thấy được trình
tạo của chúng ta đã có khả năng tạo ra hình ảnh có sự tương đồng với hình ảnh trong
thế giới thực là cao. Hình ảnh được tạo có khả năng gần giống với hình ảnh trong
thế giới thực

Vì vậy, chúng ta sẽ phải đào tạo trình tạo bằng cách backpropagation ( lan truyền
ngược) các giá trị mục tiêu này quay trở lại trình tạo, tức là chúng ta huấn luyện
trình trình tạo để tạo ra hình ảnh theo hướng mà trình so sánh nghĩ là hình ảnh được
tạo là có khả năng có thật.

* Backpropagation ( lan truyền ngược) : Lan truyền ngược là bản chất của việc huấn
luyện mạng lưới thần kinh. Đó là thực hành tinh chỉnh các trọng số của mạng lưới
thần kinh dựa trên tỷ lệ lỗi (tức là mất mát) thu được trong kỷ nguyên trước đó (tức
là lặp lại.) Việc điều chỉnh các trọng số đúng cách sẽ đảm bảo tỷ lệ lỗi thấp hơn, làm
cho mô hình trở nên đáng tin cậy bằng cách tăng độ tin cậy của nó. sự khái quát.
Nguyên lý hoạt động của mạng GAN :

Generator lấy một random input và cố gắng sinh ra được sample của data. Như mô
tả ở hình trên, generator G(z) lấy input z từ pz(z), với z là sample thuộc phân phối
xác xuất p(z), được sinh ngẫu nhiên từ latent space, sau đó gán thêm nhiễu (noise).
Sample sinh ra từ G(z) được nạp vào Discriminator network D(x). Công việc của
Discriminator network là lấy input từ tập train (real sample) và sample được sinh ra
từ G (generated sample) và xác định xem sample nào mới là thật. Real sample x
được lấy từ phân phối xác suất pdata(x).
D(x) xử lý vấn đề binary classification bằng cách sử dụng hàm sigmoid, trả về kết
quả khoảng từ 0 đến 1, với xác suất đầu ra càng cao thì khả năng sample đó là thật
(sample lấy từ tập data) càng lớn, và ngược lại.
D được huấn luyện để tối đa xác suất gán đúng nhãn cho sample, đồng thời G lại
được huấn luyện để tối thiểu khả năng phát hiện của D, tương đương tối thiểu log(1
- D(G(z)).

Generator và Discriminator tương tự như hai người chơi trong bài toán zero-sum
game trong lý thuyết trò chơi. Ở trò chơi này thì hai người chơi xung đột lợi ích.
Hay nói cách khác, thiệt hại của người này chính là lợi ích của người kia. Mô hình
Generator tạo ra dữ liệu giả tốt hơn sẽ làm cho Discriminator phân biệt khó hơn và
khi Discriminator phân biệt tốt hơn thì Generator cần phải tạo ra ảnh giống thật hơn
để qua mặt Discriminator. Trong zero-sum game, người chơi sẽ có chiến lược riêng
của mình, đối với Generator thì đó là sinh ra ảnh giống thật và Discriminator là
phân loại ảnh thật/giả. Sau các bước ra quyết định của mỗi người chơi thì zero-sum
game sẽ đạt được cân bằng Nash tại điểm cân bằng (Equilibrium Point) .
Link tham khảo :

https://phamdinhkhanh.github.io/2020/07/13/GAN.html

https://viblo.asia/p/bai-1-mang-gan-mang-dem-lai-su-sang-tao-cho-tri-tue-nhan-tao-
maGK7VbD5j2

You might also like