chương 1. MÔ HÌNH GAN .1 Giới thiệu chung về GAN .2 Kiến trúc của GAN.4 Quá trình huấn luyện GAN .5 Mô hình Deep Convolutional GAN (DC GAN) .1 Cấu trúc mạng .2 Hàm mất mát của DC GAN .3 Một số vấn đề lưu ý khi xây dựng mô hình và train DC GAN .6 Kết luận chương 2. ỨNG DỤNG GAN TẠO MẪU ẢNH TRÒ CHƠI.1 Giới thiệu và phân tích bài toán .2 Xây dựng chương trình thử nghiệm .1 Tập dữ liệu .2 Chuẩn bị môi trường và thư viện .3 Xây dựng mô hình discriminator và generator .4 Huấn luyện mô hình discriminator và generator .5 Huấn luyện mô hình DCGAN.3 Kiểm tra và đánh giá kết quả.4 Kết luận chương 3 .66 DANH MỤC TÀI LIỆU THAM KHẢO .67 QUYẾT ĐỊNH GIAO TÊN ĐỀ TÀI ĐẾ ÁN THẠC SĨ (BẢN SAO) v DANH MỤC CÁC CHỮ VIẾT TẮT AI Artificial Intelligence ANN Artificial Neural Network CNN Convolutional Neural Network DL Deep Learning GAN Generative Adversarial Networks ML Machine Learning vi DANH MỤC CÁC HÌNH Trang Hình 1.1: Cấu trúc mạng CNN.2: Ma trận đầu vào/ra .3: Filter phát hiện cạnh.4: Feature map trên không gian ảnh .6: Avarage Pooling và Max Pooling .7: Nguồn: Andrew Ng Machine Learning course (Coursera) .8: Nguồn: Andrew Ng Machine Learning course (Coursera) .9: Bias và variance .10: Nguồn: Srivastava, Nitish, et al. “Dropout: a simple way to prevent neural networks from overfitting”, JMLR 2014 .1: Mô hình Generator và Discriminator .2: Kiến trúc mạng GAN .3: Sơ đồ kiến trúc của generator .4: Sơ đồ kiến trúc của Discriminator .5: Generator của DCGAN với các lớp tích chập phân đoạn.6: Discriminator DCGAN với lớp tích chập có bước .7: Một ví dụ về phép tính tích chập .8: Một ví dụ về tích chập phân đoạn .1: Ảnh sinh ra từ generator ở epchos thứ 10 .2: Ảnh sinh ra từ generator ở epchos thứ 100 .3: Ảnh sinh ra từ generator ở epchos thứ 500 .4: Ảnh sinh ra từ generator ở epchos thứ 1000 .7: Biểu đồ mất mát của bộ sinh (generator) và bộ phân biệt discriminator.8: Biểu đồ Score của Real và Fake.
Lý do chọn đề tài Ngày nay, thế giới chúng ta đang chứng kiến về tốc độ lan tỏa của công nghệ 4.0 rất mạnh mẽ. Trong đó, phải nói tới lĩnh vực được xã hội quan tâm chính là AI (trí tuệ nhân tạo). Mơ ước làm cho máy tính có trí thông minh giống con người đã có từ lâu. Trí tuệ nhân tạo đang đi vào cuộc sống của mỗi con người, của mỗi quốc gia.
Trí tuệ nhân tạo có thể biến những điều tưởng chừng như không thực hiện được thành hiện thực. Chẳng hạn như những robot hoạt động trong lĩnh vực quân sự, những căn nhà thông minh,… Trong những năm gần đây, khả năng tính toán của máy tính đã được nâng cao đáng kể và việc thu thập lượng dữ liệu khổng lồ trở nên dễ dàng hơn. Kết quả là, Machine Learning đã phát triển một cách đáng kể và mở ra một lĩnh vực mới được biết đến với tên gọi là Deep Learning (DL). Nhờ vào học sâu này, trí tuệ nhân tạo đã được mở rộng và tiến bộ.
Học sâu được áp dụng rộng rãi trong các vấn đề thực tế của học máy và đã mở rộng phạm vi tổng thể của trí tuệ nhân tạo. Học sâu đã thay đổi cách thức con người làm việc bằng cách cho phép các thiết bị máy móc có khả năng hoạt động giống hoặc gần giống con người. Ví dụ như ô tô không người lái, chăm sóc sức khoẻ chất lượng cao hơn và đề xuất phim hay hơn,. Tất cả điều này chỉ có thể trở thành hiện thực trong thời đại hiện tại nhờ vào các kỹ thuật của học sâu.
Một trong những kỹ thuật đang được nghiên cứu và ứng dụng rộng rãi vào đời sống thực tế chính là mô hình Generative Adversarial Networks (GAN). Mô hình GAN được sử dụng để tạo ra rất nhiều sản phẩm hay, ví dụ làm cho máy tính có thể sáng tác nhạc, vẽ tranh,.sáng tạo trong lĩnh vực nghệ thuật - điều mà bạn nghĩ chỉ có con người mới có thể làm được. 2 Trò chơi điện tử là một lĩnh vực phát triển mạnh mẽ, đặc biệt là trò chơi thiếu nhi. Việc tạo ra những trò chơi có hình ảnh sinh động, đa dạng sẽ giúp thu hút sự chú ý của trẻ em và người chơi, có những trải nghiệm tuyệt vời khi chơi và đồng thời cũng giúp cho các nhà phát triển trò chơi có thêm công cụ để tạo ra các trò chơi hấp dẫn và độc đáo.
Thay vì chúng ta hay thuê các họa sĩ để vẽ, tạo ra những mẫu ảnh của các trò chơi thiếu nhi, chúng ta có thể sử dụng mô hình GAN để sinh ra những mẫu ảnh trò chơi từ mẫu các họa sĩ vẽ mà không vi phạm bản quyền cũng như việc làm này giúp cho quá trình sản xuất trò chơi trở nên nhanh chóng, tiết kiệm được chi phí rất lớn. Chính vì vậy, tôi chọn tìm hiểu về: “Mô hình Gan và ứng dụng tạo mẫu ấn phẩm trò chơi thiếu nhi” làm đề tài nghiên cứu. Tổng quan tình hình nghiên cứu đề tài Ian Goodfellow và đồng nghiệp của mình đã giới thiệu về GAN qua một báo cáo khoa học vào năm 2014 [2]. Trong khoảng thời gian này, đa số mọi người tập trung vào chức năng sinh dữ liệu của GAN.
Sau đó, vì những ứng dụng hữu ích tuyệt vời của GAN, do đó GAN được khai thác nhiều hơn. Những kết quả nghiên cứu tiêu biểu: Alec Radford [3] giới thiệu vềhọc đại diện không giám sát với các mạng đối thủ tạo ra tích chập sâu được gọi là DCGAN đã minh họa cách huấn luyện các GAN ổn định trên quy mô lớn. Họ đã trình diễn các mô hình để tạo ra các ví dụ mới về phòng ngủ. Tero Karras [4], đã nghiên cứu về sự phát triển tiến bộ của GAN để cải thiện chất lượng, độ ổn định và sự thay đổi chứng minh việc tạo ra các bức ảnh thực tế hợp lý về khuôn mặt người.
Trên thực tế, chúng trông rất thật đến mức có thể gọi kết quả là đáng chú ý. Do đó, kết quả nhận được rất nhiều sự chú ý của giới truyền thông. Các thế hệ khuôn mặt được đào tạo dựa trên các ví dụ về người nổi tiếng, nghĩa là có các yếu tố của những người nổi tiếng hiện có trong các khuôn mặt được tạo, khiến chúng có vẻ quen thuộc nhưng không hoàn toàn. 3 Grigory Antipov [5] đã đề xuất một phương pháp mới để dự báo sự lão hóa khuôn mặt con người dựa trên điều kiện tuổi tác.
Dựa trên khuôn mặt hiện tại, mô hình GAN sẽ sinh ra các biến thể theo từng độ tuổi của con người. Andrew Brock, và cộng sự [6] đề xuất về đào tạo GAN quy mô lớn để tổng hợp hình ảnh tự nhiên có độ trung thực cao chứng minh việc tạo ra các bức ảnh tổng hợp bằng kỹ thuật BigGAN của họ mà thực tế không thể phân biệt được với các bức ảnh thực. Yanghua Jin và các cộng sự [7] hướng tới việc tạo nhân vật anime tự động với GAN, khám phá việc đào tạo các mô hình GAN chuyên về bộ dữ liệu hình ảnh khuôn mặt anime, giải quyết vấn đề từ cả khía cạnh dữ liệu và mô hình, bằng cách thu thập tập dữ liệu rõ ràng, phù hợp hơn và tận dụng ứng dụng DRAGAN theo kinh nghiệm, phù hợp. Với phân tích định lượng và nghiên cứu điển hình, chứng minh dẫn đến một mô hình chất lượng cao và ổn định.
Phillip Isola và cộng sự [8] đã nghiên cứu mô hình GAN có điều kiện như một giải pháp cho các vấn đề dịch từ ảnh sang ảnh. Han Zhang [9] đã tổng hợp hình ảnh từ văn bản thành hình ảnh thực tế với các mạng đối thủ tạo ra được xếp chồng lên nhau chứng minh việc sử dụng GAN, cụ thể là StackGAN của họ để tạo ra các bức ảnh trông giống như thật từ các mô tả bằng văn bản về các đối tượng đơn giản như chim và hoa. Ting-Chun Wang [10] công bố về tổng hợp hình ảnh độ phân giải cao và thao tác ngữ nghĩa với các GAN có điều kiện để chứng minh việc sử dụng các GAN có điều kiện để tạo ra các hình ảnh chân thực được cung cấp một hình ảnh ngữ nghĩa hoặc bản phác thảo làm đầu vào. Rui Huang [11] đã nghiên cứu việc tổng hợp các góc nhìn từ một khuôn mặt và có nhiều ứng dụng trong lĩnh vực nhận dạng khuôn mặt.
Christian Ledig [12] công bố công trình nghiên cứu về aenh siêu phân giải ảnh đơn thực tế bằng cách sử dụng GAN chứng minh việc sử dụng GAN, cụ thể là mô hình SRGAN của họ, để tạo ra hình ảnh đầu ra với độ phân giải pixel cao hơn, đôi khi cao hơn nhiều. Mục tiêu nghiên cứu - Nghiên cứu về ý tưởng, cấu trúc của mô hình, các thuật toán được sử dụng trong mô hình GAN. - Cài đặt chương trình tạo mẫu ảnh trò chơi thiếu nhi. Đối tượng và phạm vi nghiên cứu 4.1 Đối tượng nghiên cứu - Nghiên cứu cơ sở lý thuyết và thuật toán GAN.2 Phạm vi nghiên cứu - Ứng dụng GAN trong việc tạo mẫu ảnh trò chơi thiếu nhi.
Nội dung nghiên cứu - Lý thuyết và thuật toán GAN. - Ứng dụng sinh ảnh mẫu trò chơi thiếu nhi bằng mô hình GAN. Phương pháp nghiên cứu Phương pháp nghiên cứu của đề tài là lý thuyết kết hợp với thực nghiệm. Tiến hành nghiên cứu dựa trên việc tìm hiểu tài liệu, cài đặt thử nghiệm sau đó đánh giá kết quả thực nghiệm.
KIẾN THỨC CƠ SỞ CỦA HỌC MÁY VÀ HỌC SÂU Trong chương này, chúng tôi trình bày khái niệm tổng quát như học máy, mạng nơron, học sâu nhằm tạo tiền đề tìm hiểu về mô hình GAN.1 Khái niệm Học máy (ML), là một lĩnh vực con của trí tuệ nhân tạo (AI) và khoa học máy tính, chuyên về việc khai thác, xử lý và sử dụng dữ liệu cùng với thuật toán để mô phỏng quá trình học hỏi của con người, từ đó nâng cao độ chính xác trong quá trình thực hiện. Đến thời điểm hiện tại, đã xuất hiện nhiều định nghĩa khác nhau về học máy. Tom Mitchell, một giáo sư nổi bật tại Đại học Carnegie Mellon, đã đưa ra một định nghĩa rõ ràng và chi tiết về học máy như sau: Định nghĩa 1. Một chương trình máy tính sẽ được coi là “học” từ dữ liệu/kinh nghiệm E trong bối cảnh tập nhiệm vụ T và chỉ số đánh giá P, nếu nó cải thiện khả năng thực hiện nhiệm vụ T, dựa trên chỉ số P, thông qua dữ liệu hoặc kinh nghiệm E.