CHƯƠNG 1: Tổng quan đề tài ▪ CHƯƠNG 2: Công trình nghiên cứu liên quan ▪ CHƯƠNG 3: Cơ sở lý thuyết ▪ CHƯƠNG 4: Mô hình đề xuất ▪ CHƯƠNG 5: Kết quả thực nghiệm ▪ CHƯƠNG 6: Kết luận và hướng phát triển 3 do an Chương 2 CÔNG TRÌNH NGHIÊN CỨU LIÊN QUAN Trước khi đi vào các công trình liên quan, ta sẽ đi qua khái niệm về GAN và các công trình có liên quan tới mô hình kiến trúc mà nhóm em đang nghiên cứu. Mô hình GAN [3] công bố vào năm 2014. Và đây được xem là nền tảng phát triển cho các công trình GAN khác trong tương lai. GANs là kiến trúc mạng nơ-ron được hình thành trên sự cạnh tranh (adversarial) của 2 mạng nơron khác nhau: ● Generator network (ký hiệu là G) mục tiêu sinh ra dữ liệu giả từ không gian tìm ẩn Z (latent space) sao cho giống với dữ liệu thật nhất.
● Discriminator (ký hiệu là D) nhận nhiệm vụ phân biệt dữ liệu được tạo ra từ G với dữ liệu thật cho trước. Mô hình này được dùng để phát sinh ra hình ảnh sao cho có thể giống với ảnh thật nhất. Điều này giúp ta có thể tạo ra những chữ ký ảo có thể giống với người nhất hay tạo ra một vật thể gì đó dựa trên hiểu biết của máy nhưng vẫn hợp với thực tế cuộc sống. Tuy lợi ích là vậy thế nhưng mô hình vẫn còn vướng phải khá nhiều khuyết điểm như việc mô hình trong quá trình huấn luyện không được ổn định, hình ảnh được tạo ra nhưng phân giải còn khá thấp, các vấn đề Vanishing Gradient, vấn đề tạo ra khá nhiều mẫu giống nhau (mode collapse).
Nhờ vào sự có mặt của GAN mà các công trình sau này dựa trên nền tảng này phát triển khá nhiều và một trong số đó phải kể đến là LAPGAN. Đồ án tham khảo bài báo khoa học của Emily L. Denton [2] được công bố 2015, cơ sở dữ liệu là LSUN, CIFAR10 và STL10. 4 do an Mục tiêu là tạo ra hình ảnh chất lượng cao từ những hình ảnh dư thừa của những trạng thái trước ứng với từng tầng của kim tự tháp.
Mô hình sử dụng kỹ thuật kim tự tháp Laplacian kết hợp với nhiều lớp mạng tích chập (CNNs). Việc kết hợp này mang lại những ưu điểm sau cho mô hình. Mô hình train không phụ thuộc vào nhau giúp tránh được khó khăn cho mô hình khi ghi nhớ mẫu huấn luyện. Hình ảnh tạo ra có độ chân thật gần như giống với ảnh thật nhất do input ở các đầu vào là ảnh gốc và chỉ làm mờ và downsampling.
Tuy nhiên, mô hình vẫn còn bị hạn chế ở việc tạo ra hình ảnh có phân giải thấp. Một vài chi tiết của ảnh chưa được sinh ra rõ ràng, cụ thể Một công trình khác có sự liên quan mật thiết tới mô hình của bài luận nhóm em đang áp dụng là StackGAN. Đồ án tham khảo bài báo khoa học của Han Zhang [8] được công bố vào năm 2016. Cơ sở dữ liệu được dùng trong bài báo là MSCOCO, Oxford-102 và CUB.
Mục tiêu tạo ra hình ảnh có độ phân giải cao và chi tiết hơn của một vật thể.Mô hình sử dụng mô hình GAN nhưng được chia thành 2 giai đoạn. Giai đoạn một nhằm khái quát các chi tiết và màu sắc cơ bản của đối tượng. Giai đoạn chia sẻ tập trung khai thác những chi tiết còn thiếu cũng như tăng phân giải của hình đó lên. Nhờ việc ứng dụng kỹ thuật trên mà mô hình tạo ra hình ảnh có độ phân giải cao và chi tiết hơn.
Thế nhưng mô hình vẫn còn vướng phải lỗi Mode Collapse, lỗi Vanishing Gradient và vẫn còn hạn chế trong việc hình ảnh tạo ra có thể không khớp với câu mô tả được cấp sẵn. Mô hình cuối cùng này được nhóm em áp dụng vào bài nghiên cứu là AttnGAN. Đồ án tham khảo bài báo khoa học của Tao Xu [7] được công bố vào năm 2017. Cơ sở dữ liệu được dùng trong bài báo là COCO và CUB Mục tiêu nhằm tạo ra hình ảnh có độ phân giải cao đồng thời các chi tiết của đối tượng cũng sẽ rõ ràng hơn.
Mô hình sử dụng mạng khởi tạo tập trung (Attentional Generative Network) và Deep Attentional Multimodal Similarity Model. Nhờ ra đời sau cùng nên mô hình khắc phục gần hết các khuyết điểm mà các công trình phía trên mắc phải. Mô hình đã có thể khắc phục được vấn đề Vanishing Gradient một lối vốn phổ biến ở mô hình GAN. Mô hình tạo ra hình ảnh có độ phân giải cao và chi tiết hơn.
Mô hình cũng có phân ưu việt khi có thể tạo ra hình ảnh trùng khớp với từng câu mô tả mà mô hình StackGAN-v1. 5 do an Chương 3 CƠ SỞ LÝ THUYẾT 3.1 Mạng nơ-ron tích chập (CNN) 3.1 Giới thiệu ● Mạng nơ-ron tích chập là một tập hợp gồm nhiều tầng tích chập được xếp chồng lên nhau. Với mục đích nhằm tạo ra những thông tin có tính trừu tượng làm input cho những tầng tích kế tiếp. ● Mạng nơ-ron tích chập có ít tham số hơn so với những mạng nơ-ron truyền thống.
Và một điểm khác biệt nữa ở mạng nơ-ron tích chập với mạng nơ-ron truyền thống nữa đó chính là cơ chế tích chập. Với những mạng nơ-ron truyền thống thì các tầng được liên kết với nhau thông qua 1 tham số W, nhưng ở mạng nơ-ron tích chập thì các tầng được liên kết với nhau qua cơ chế tích chập. Cơ chế tích chập này sẽ tạo ra 1 output là đặc trưng được rút ra ở tầng này và sẽ là input cho tầng tiếp theo sử dụng. Bên cạnh đó mạng nơ-ron tích chập còn có sử dụng tầng pooling.
Tầng này có nhiệm vụ sẽ làm giảm số chiều của đặc trưng được rút ra, sẽ chắt lọc lại những thông tin có ích cho những tầng sau. Mạng nơ-ron tích chập có tính bất biến và tính kết hợp cục bộ. Nếu ta xét trên một đối tượng, độ chính xác của hình sẽ bị ảnh hưởng tùy thuộc vào góc độ chụp của hình đó. Tính bất biến của hình sẽ biểu hiện ở quá trình pooling qua các phép tính dịch chuyển, phép quay, phép co giãn.
● Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp đến mức độ cao và trừu tượng hơn thông qua quá trình tích chập từ các bộ lọc là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệ thống thông minh với độ chính xác cao. Ví dụ như diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động,. CNN được sử dụng nhiều trong các bài toán 6 do an nhận dạng các đối tượng trong ảnh. Mạng tích chập bao gồm một hay nhiều tầng tích chập, dùng để trích xuất thông tin cho các tầng tiếp theo.1: Mô hình CNN Nguồn: https://towardsdatascience.2 Định nghĩa tích chập Tích chập có thể được xem như một cửa sổ trượt trên ma trận của hình ảnh.
Việc tích chập sẽ làm giảm kích thước của ma trận xuống nhưng sẽ rút trích được những đặc trưng cơ bản của ma trận hình đó. Cách tính: 1 phép toán thực hiện nhân tích chập ma trận của ảnh với filter / mask / kernel (bộ lọc) để được ma trận điểm ảnh mới: 7 do an g(x, y) = h(x, y) ∗ f ( x, y) (3.1) Trong đó: – f, g: input/output – h: mask/filter/kernel Cáchtính: – Trượt filter trên ma trận ảnh. – Nhân các phần tử tương ứng và sau đó tổng chúng lại với nhau. – Lặp lại quy trình này cho đến khi tất cả các giá trị của hình ảnh được tính 3.3 Cấu trúc của CNN Mạng CNN gồm rất nhiều lớp chồng lên và có 3 loại chính : Lớp Convolution ● Đây là một trong những lớp quan trọng và cần thiết nhất trong CNN.
Lớp convolution có vai trò rút ra những đặc trưng của đối tượng. Và là đầu vào của những lớp tiếp theo. ● Lớp Convolution sử dụng các hàm kích hoạt phi tuyến như ReLU và tanh để kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo.
Các layer liên kết được với nhau thông qua cơ chế convolution. Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy mà ta có được các kết nối cục bộ. Như vậy mỗi nơ-ron ở lớp kế tiếp sinh ra từ kết quả của filter đặt lên một vùng ảnh cục bộ của nơ-ron trước đó. 8 do an Lớp Pooling Pooling/subsampling layer (Tầng tổng hợp) dùng để chắt lọc lại các thông tin hữu ích hơn (loại bỏ các thông tin nhiễu).
Việc sử dụng lớp pooling như vậy sẽ giúp làm giảm số chiều của ảnh. Trong quá trình huấn luyện mạng (training) CNN tự động học các giá trị qua các lớp filter dựa vào cách thức mà bạn thực hiện. Ví dụ trong tác vụ phân lớp ảnh, CNNs sẽ cố gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tự raw pixel > edges > shapes > facial > high-level features Có rất nhiều cách để tổng hợp, chẳng hạn như lấy trung bình hoặc cực đại. Thủ tục pooling được dùng nhiều nhất là maxpooling.
Cách tính: Ta sẽ cho trượt không tuyến tính của sổ (filter) trên ảnh. Và ta sẽ chọn ra giá trị lớn nhất trong cửa sổ đó. Lặp lại cho tới khi các giá trị được tính.2: Tầng maxpooling Nguồn: https://www.com 9 do an Lớp Fully connected - Fully connected: Layer cuối cùng tổng hợp các kết quả từ quá trình convolution và subsampling.2 Mạng nơ-ron hồi quy (RNN) 3.1 Giới thiệu Là mạng hồi quy mang lại thành tựu to lớn trong ngành Deep learning nói chung cũng như là xử lý ngôn ngữ tự nhiên. Mạng này được gọi là hồi quy do mạng này xử lý thông tin theo dạng chuỗi.
Như là xử lý cho 1 câu gồm nhiều từ hay một văn bản gồm nhiều câu. Và kết quả đầu ra ở một thời điểm i sẽ phụ thuộc vào việc tính toán dữ liệu của thời điểm i−1 trước đó Nói cách khác, RNN là một mô hình có trí nhớ (memory), có khả năng nhớ được thông tin đã tính toán trước đó. Không như các mô hình mạng nơ-ron truyền thống đó là thông tin đầu vào (input) hoàn toàn độc lập với thông tin đầu ra (output). Về lý thuyết, RNNs có thể nhớ được thông tin của chuỗi có chiều dài bất kỳ, nhưng trong thực tế mô hình này chỉ nhớ được thông tin ở vài bước trước đó.3: Mô hình RNN Nguồn: http://www.com 10 do an Từ mô hình trên ta có: – xt l à input tại thời điểm thứ t.