AI 101

Mạng Đối Thủ Sinh (GAN) Là Gì?

mm

Mạng Đối Thủ Sinh (GANs) là loại kiến trúc mạng nơ-ron có khả năng tạo ra dữ liệu mới phù hợp với các mẫu đã học. GANs có thể được sử dụng để tạo ra hình ảnh của khuôn mặt người hoặc các vật thể khác, để thực hiện chuyển đổi văn bản thành hình ảnh, để chuyển đổi một loại hình ảnh thành một loại khác, và để tăng cường độ phân giải của hình ảnh (siêu phân giải) trong số các ứng dụng khác. Bởi vì GANs có thể tạo ra dữ liệu hoàn toàn mới, chúng đứng đầu trong nhiều hệ thống AI, ứng dụng và nghiên cứu tiên tiến. Tuy nhiên, làm thế nào chính xác GANs hoạt động? Hãy cùng khám phá cách GANs hoạt động và xem xét một số ứng dụng chính của chúng.

Định Nghĩa Mô Hình Sinh Tạo và GANs

Một GAN là ví dụ về mô hình sinh tạo. Hầu hết các mô hình AI có thể được chia thành một trong hai loại: mô hình giám sát và mô hình không giám sát. Mô hình học giám sát thường được sử dụng để phân biệt giữa các loại đầu vào khác nhau, để phân loại. Ngược lại, mô hình không giám sát thường được sử dụng để tóm tắt phân phối dữ liệu, thường học một phân phối Gaussian của dữ liệu. Bởi vì chúng học phân phối của một tập dữ liệu, chúng có thể lấy mẫu từ phân phối đã học và tạo ra dữ liệu mới.

Các mô hình sinh tạo khác nhau có các phương pháp khác nhau để tạo ra dữ liệu và tính toán phân phối xác suất. Ví dụ, mô hình Naive Bayes hoạt động bằng cách tính toán phân phối xác suất cho các tính năng đầu vào khác nhau và lớp sinh tạo. Khi mô hình Naive Bayes đưa ra dự đoán, nó tính toán lớp có khả năng nhất bằng cách lấy xác suất của các biến khác nhau và kết hợp chúng lại với nhau. Các mô hình sinh tạo không phải học sâu khác bao gồm Gaussian Mixture Models và Latent Dirichlet Allocation (LDA). Các mô hình sinh tạo dựa trên học sâu bao gồm Restricted Boltzmann Machines (RBMs), Variational Autoencoders (VAEs), và当然, GANs.

Mạng Đối Thủ Sinh được đề xuất lần đầu tiên bởi Ian Goodfellow vào năm 2014, và chúng được cải tiến bởi Alec Redford và các nhà nghiên cứu khác vào năm 2015, dẫn đến một kiến trúc tiêu chuẩn cho GANs. GANs thực sự là hai mạng khác nhau được kết hợp lại. GANs gồm hai nửa: một mô hình sinh tạo và một mô hình phân biệt, cũng được gọi là generator và discriminator.

Kiến Trúc GAN

Mạng Đối Thủ Sinh được xây dựng từ một mô hình generator và mô hình discriminator kết hợp lại. Công việc của mô hình generator là tạo ra các ví dụ dữ liệu mới dựa trên các mẫu mà mô hình đã học từ dữ liệu đào tạo. Công việc của mô hình discriminator là phân tích hình ảnh (giả sử nó được đào tạo trên hình ảnh) và xác định xem hình ảnh có phải là giả mạo hay không.

Hai mô hình này được đặt cạnh nhau, đào tạo theo cách chơi game lý thuyết. Mục tiêu của mô hình generator là tạo ra hình ảnh mà đánh lừa đối thủ của nó – mô hình discriminator. Trong khi đó, công việc của mô hình discriminator là vượt qua đối thủ của nó, mô hình generator, và bắt được hình ảnh giả mà mô hình generator tạo ra. Việc hai mô hình này được đặt cạnh nhau dẫn đến một cuộc chạy đua vũ trang, nơi cả hai mô hình đều được cải thiện. Mô hình discriminator nhận được phản hồi về hình ảnh nào là thật và hình ảnh nào được tạo ra bởi mô hình generator, trong khi mô hình generator được cung cấp thông tin về hình ảnh nào của nó được mô hình discriminator đánh dấu là giả. Cả hai mô hình đều được cải thiện trong quá trình đào tạo, với mục tiêu đào tạo một mô hình generator có thể tạo ra dữ liệu giả mà基本 indistinguishable từ dữ liệu thật.

Khi một phân phối Gaussian của dữ liệu đã được tạo ra trong quá trình đào tạo, mô hình generator có thể được sử dụng. Mô hình generator ban đầu được cung cấp một vector ngẫu nhiên, mà nó chuyển đổi dựa trên phân phối Gaussian. Nói cách khác, vector này khởi tạo quá trình tạo ra. Khi mô hình được đào tạo, không gian vector sẽ là một phiên bản nén, hoặc đại diện, của phân phối Gaussian của dữ liệu. Phiên bản nén của phân phối dữ liệu được gọi là không gian 潛在, hoặc biến 潛在. Sau đó, mô hình GAN có thể lấy đại diện không gian 潛在 này và vẽ điểm từ nó, mà có thể được đưa đến mô hình generator và sử dụng để tạo ra dữ liệu mới rất giống với dữ liệu đào tạo.

Mô hình discriminator được cung cấp các ví dụ từ toàn bộ miền đào tạo, bao gồm cả dữ liệu thật và dữ liệu giả. Các ví dụ thật được chứa trong tập dữ liệu đào tạo, trong khi dữ liệu giả được tạo ra bởi mô hình generator. Quá trình đào tạo mô hình discriminator giống hệt với quá trình đào tạo mô hình phân loại nhị phân cơ bản.

Quá Trình Đào Tạo GAN

Hãy xem xét toàn bộ quá trình đào tạo cho một nhiệm vụ tạo hình ảnh giả định.

Ban đầu, GAN được đào tạo sử dụng hình ảnh thật trong tập dữ liệu đào tạo. Điều này thiết lập mô hình discriminator để phân biệt giữa hình ảnh tạo ra và hình ảnh thật. Nó cũng tạo ra phân phối dữ liệu mà mô hình generator sẽ sử dụng để tạo ra dữ liệu mới.

Mô hình generator lấy một vector dữ liệu ngẫu nhiên và chuyển đổi chúng dựa trên phân phối Gaussian, trả về một hình ảnh. Hình ảnh tạo ra này, cùng với một số hình ảnh thật từ tập dữ liệu đào tạo, được đưa vào mô hình discriminator. Mô hình discriminator sẽ đưa ra dự đoán xác suất về bản chất của hình ảnh nó nhận, trả về giá trị giữa 0 và 1, nơi 1 thường là hình ảnh thật và 0 là hình ảnh giả.

Có một vòng phản hồi kép, vì mô hình discriminator được cung cấp thông tin về hình ảnh thật, trong khi mô hình generator được cung cấp thông tin về hiệu suất của nó bởi mô hình discriminator.

Các mô hình generator và discriminator đang chơi một trò chơi có tổng bằng không. Một trò chơi có tổng bằng không là một trò chơi nơi lợi ích của một bên đến từ chi phí của bên kia (tổng của cả hai hành động là zero). Khi mô hình discriminator có thể phân biệt thành công giữa hình ảnh thật và giả, không có thay đổi nào được thực hiện đối với các tham số của mô hình discriminator. Tuy nhiên, các cập nhật lớn được thực hiện đối với các tham số của mô hình khi nó không thể phân biệt giữa hình ảnh thật và giả. Ngược lại, mô hình generator bị phạt (và các tham số của nó được cập nhật) khi nó không thể đánh lừa mô hình discriminator, nhưng nếu không, các tham số của nó không thay đổi (hoặc nó được thưởng).

Ideally, mô hình generator có thể cải thiện hiệu suất của nó đến mức mô hình discriminator không thể phân biệt giữa hình ảnh thật và giả. Điều này có nghĩa là mô hình discriminator sẽ luôn đưa ra xác suất 50% cho cả hình ảnh thật và giả, có nghĩa là hình ảnh tạo ra nên không thể phân biệt được với hình ảnh thật. Trong thực tế, GANs thường không đạt đến điểm này. Tuy nhiên, mô hình generator không cần tạo ra hình ảnh hoàn hảo tương tự để vẫn có thể hữu ích cho nhiều nhiệm vụ mà GANs được sử dụng.

Ứng Dụng Của GANs

GANs có nhiều ứng dụng khác nhau, hầu hết trong số đó liên quan đến việc tạo ra hình ảnh và các thành phần của hình ảnh. GANs thường được sử dụng trong các nhiệm vụ mà dữ liệu hình ảnh yêu cầu bị thiếu hoặc bị giới hạn ở một số cách nào đó, như một phương pháp để tạo ra dữ liệu yêu cầu. Hãy cùng xem xét một số trường hợp sử dụng phổ biến của GANs.

Tạo Ra Các Ví Dụ Mới Cho Các Tập Dữ Liệu

GANs có thể được sử dụng để tạo ra các ví dụ mới cho các tập dữ liệu hình ảnh đơn giản. Nếu bạn chỉ có một số ví dụ đào tạo và cần thêm, GANs có thể được sử dụng để tạo ra dữ liệu đào tạo mới cho một phân loại hình ảnh, tạo ra các ví dụ đào tạo mới ở các góc độ và hướng khác nhau.

Tạo Ra Khuôn Mặt Người Độc Đáo

Người phụ nữ trong bức ảnh này không tồn tại. Hình ảnh này được tạo ra bởi StyleGAN. Ảnh: Owlsmcgee qua Wikimedia Commons, Public Domain (https://commons.wikimedia.org/wiki/File:Woman_1.jpg)

Khi được đào tạo đầy đủ, GANs có thể được sử dụng để tạo ra hình ảnh khuôn mặt người rất thực tế. Những hình ảnh tạo ra này có thể được sử dụng để giúp đào tạo các hệ thống nhận dạng khuôn mặt.

Chuyển Đổi Hình Ảnh

GANs thực hiện tốt việc chuyển đổi hình ảnh. GANs có thể được sử dụng để tô màu cho hình ảnh đen trắng, chuyển đổi bản vẽ hoặc phác thảo thành hình ảnh chụp, hoặc chuyển đổi hình ảnh từ ngày sang đêm.

Chuyển Đổi Văn Bản Thành Hình Ảnh

Chuyển đổi văn bản thành hình ảnh có thể được thực hiện thông qua việc sử dụng GANs. Khi được cung cấp văn bản mô tả một hình ảnh và hình ảnh đó, một GAN có thể được đào tạo để tạo ra một hình ảnh mới khi được cung cấp mô tả về hình ảnh mong muốn.

Chỉnh Sửa Và Sửa Chữa Hình Ảnh

GANs có thể được sử dụng để chỉnh sửa hình ảnh hiện có. GANs loại bỏ các yếu tố như mưa hoặc tuyết từ một hình ảnh, nhưng chúng cũng có thể được sử dụng để sửa chữa hình ảnh cũ, bị hư hỏng hoặc bị hỏng.

Siêu Phân Giải

Siêu phân giải là quá trình lấy một hình ảnh có độ phân giải thấp và chèn thêm pixel vào hình ảnh, cải thiện độ phân giải của hình ảnh đó. GANs có thể được đào tạo để lấy một hình ảnh và tạo ra một phiên bản có độ phân giải cao hơn của hình ảnh đó.

cũng có thể được sử dụng để sửa chữa hình ảnh cũ, bị hư hỏng hoặc bị hỏng. Siêu phân giải là quá trình lấy một hình ảnh có độ phân giải thấp và chèn thêm pixel vào hình ảnh, cải thiện độ phân giải của hình ảnh đó. GANs có thể được đào tạo để lấy một hình ảnh và tạo ra một phiên bản có độ phân giải cao hơn của hình ảnh đó.

Blogger và lập trình viên với chuyên môn về Machine Learning Deep Learning topics. Daniel hy vọng giúp đỡ người khác sử dụng sức mạnh của AI cho lợi ích xã hội.