CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI đánh dấu một bước chuyển mình mới cho ngành trí tuệ nhân tạo. Kiến trúc này giúp cho việc tạo sinh dữ liệu được thực hiện một cách hiệu quả và chính xác hơn. Dựa trên nền tảng đó, các nghiên cứu về việc tạo sinh ảnh gương mặt người cũng được tiến hành và ngày càng có những bước tiến mới.1 Lý do chọn đề tài Việc tạo sinh hình ảnh khuôn mặt người dựa trên tiếng nói đang là nhu cầu cần thiết trong ngành giải trí, phim ảnh, hoạt hình.
Nếu xây dựng được một hệ thống tạo hình khuôn mặt tốt, chi phí sản xuất phim sẽ được giảm thiểu đáng kể vì phần hóa trang có thể được cắt bớt, phần kĩ xảo có thể được đơn giản hóa, diễn viên không phải quá mạo hiểm trong các cảnh quay nguy hiểm. Đối với hoạt hình, phần hình vẽ có thể được hỗ trợ rất nhiều bởi hệ thống tạo sinh khuôn mặt, từ đó có thể giảm bớt chi phí vẽ hình. Bên cạnh đó, ta có thể tạo sinh gương mặt đại diện trong trường hợp người nói không muốn lộ diện. Ngoài những ứng dụng rất hữu ích trong thực tiễn như đã nêu ở trên, bài toán tạo sinh gương mặt còn là một bài toán khó, thú vị và mới mẻ, còn nhiều hướng đi chưa được khai phá và cực kì tiềm năng trong tương lai.2 Mục đích của nghiên cứu Nghiên cứu nhằm mục đích kiểm nghiệm các mô hình được đề xuất trong các nghiên cứu gần đây, tìm hiểu các phương pháp tiền xử lý dữ liệu và trích xuất đặc trưng mới giúp mô hình dễ học hơn, tạo sinh ra hình ảnh chân thật và có độ chính xác cao, khó bị nhận biết bởi con người.3 Đối tượng nghiên cứu Đối tượng nghiên cứu của Luận văn là những cách tiếp cận, các phương pháp mô hình hóa bài toán, các mạng học máy, học sâu, mạng GANs và các phương pháp tạo sinh dữ liệu từ mạng GANs, các cấu trúc Residual, Encoder-Decoder, bên cạnh đó là các phương pháp kết hợp đặc trưng hình ảnh, âm thanh có xem xét đến thứ tự thời gian để tạo sinh hình ảnh mới.
GIỚI THIỆU ĐỀ TÀI 1.4 Phạm vi nghiên cứu Phạm vi nghiên cứu của Luận văn là tạo sinh ảnh giới hạn trong vùng mặt của người, dữ liệu mẫu được cung cấp ban đầu phải là ảnh rõ ràng của khuôn mặt người, đoạn âm thanh được cung cấp cũng phải là âm thanh rõ ràng của tiếng nói.5 Ý nghĩa khoa học Nghiên cứu này đóng góp cho sự phát triển chung của xu hướng tạo sinh dữ liệu mới dựa trên các tính chất của dữ liệu ban đầu. Việc tìm ra phương pháp giải quyết tốt bài toán sẽ tạo nền tảng để giải quyết những bài toán xa hơn, phức tạp hơn như: tạo sinh nửa người trên, tạo sinh toàn bộ cơ thể người, hay tạo sinh cả một bối cảnh trong phim. Đề tài giúp kiểm chứng, hiện thực, thử nghiệm các phương pháp hiện có trong các bài nghiên cứu gần đây, so sánh và tổng hợp để cố gắng tìm ra hướng đi mới, đóng góp thêm phương pháp mới cho việc tạo sinh ảnh. Đồng thời, các phương pháp tạo sinh dữ liệu cũng giúp làm giàu dữ liệu để huấn luyện, kiểm thử cho các mô hình học máy, học sâu khác.6 Ý nghĩa thực tiễn Giải quyết thành công vấn đề này đem lại giá trị to lớn về mặt công nghệ, kinh tế và xã hội.
Chúng ta có thể tái hiện lại gương mặt người đang nói ở nhiều thứ tiếng khác nhau, tạo sinh khuôn mặt người đại diện trong các hội nghị trực tuyến, tích hợp vào các trò chơi điện tử để làm chúng trở nên chân thực hơn, truyền video trong điều kiện băng thông giới hạn, giả lập trợ lý ảo có hình dáng con người,. Đối với ngành truyền thông, nó có thể tạo ra biên tập viên ảo. Đối với ngành điện ảnh, giải trí, sáng tạo nội dung nó cũng có giá trị ứng dụng khi giúp giảm bớt áp lực lên khâu hóa trang, kỹ xảo. 3 Chương 2 Cơ sở lý thuyết 2.1 Các cấu trúc trong mạng học sâu được sử dụng trong luận văn 2.1 Tích chập ngược (Deconvolution) [5] Mạng tích chập ngược có tính năng ngược với mạng tích chập truyền thống.
Nếu như mạng tích chập có chức năng mã hóa, rút trích đặc trưng của dữ liệu đầu vào, thì mạng tích chập ngược nhận vào những đặc trưng đã được rút trích của dữ liệu và tạo sinh ngược lại dữ liệu với cấu trức tương tự ban đầu. Phép tích chập ngược cũng được đặc trưng bởi kích thước nhân, số lượng kênh đầu vào và đầu ra, bước nhảy của nhân tích chập ngược trên dữ liệu. Phép tích chập ngược thường hay được sử dụng để tái thiết lập lại cấu trúc ban đầu. Thay vì rút trích và thu nhỏ dữ liệu ban đầu thành những đặc trưng như mạng tích chập, mạng tích chập ngược sử dụng các đặc trưng đã được rút trích và học các trọng số để tạo ra dữ liệu mới có cấu trúc giống với dữ liệu được trích xuất đặc trưng ban đầu.
Vì vậy, mạng tích chập ngược có tính năng tạo sinh dữ liệu và hay được sử dụng trong các ứng dụng như: Autoencoder [18]: Cấu trúc của một Autoencoder bao gồm một mạng tích chập và một mạng tích chập ngược ghép nối tiếp với nhau. Mạng tích chập có chức năng thu nhỏ và rút trích đặc trưng từ dữ liệu gốc. Trong khi đó, một mạng tích chập ngược dùng véc tơ đặc trưng vừa được tạo ra bởi mạng tích 4 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT chập để cố gắng tái tạo lại dữ liệu gốc.
Hệ thống phân đoạn ảnh [19]: Hệ thống phân đoạn hình ảnh có chức năng đánh nhãn cho từng điểm ảnh để xem nó thuộc vào lớp nào. Sau khi rút trích đặc trưng từ ảnh, mạng tích chập ngược được dùng để biên dịch đặc trưng ảnh thành mặt nạ phân lớp cho ảnh. Variational Autoencoder [20]: Đây là một loại mạng nơ ron dùng để tạo sinh dữ liệu dựa trên phân phối xác suất mà nó học được từ dữ liệu mẫu. Với phân phối xác suất học được, mạng có thể tạo ra được dữ liệu có tính chất, cấu trúc tương tự như dữ liệu mẫu nhưng chưa từng tồn tại trong dữ liệu mẫu.
Ví dụ: cho mạng Variational Autoencoder học cách tạo sinh hình ảnh của các chữ số trong tập MNIST, sau đây là ảnh được tạo sinh: Hình 2.1: Tạo sinh ảnh cùng phân phối xác suất với tập dữ liệu MNIST Mạng GANs (Generative Adversarial Networks) [17]: Là một loại mạng tạo sinh dữ liệu bằng cách học cấu trúc dữ liệu của các mẫu dữ liệu được dùng để huấn luyện. Tùy thuộc vào tiêu chí được cài đặt, mạng GANs sẽ sinh ra dữ liệu cố gắng thỏa mãn tiêu chí được yêu cầu. Đây cũng là cấu trúc mạng được dùng trong luận văn.2 Mạng nơ ron hồi quy (RNN) Trong cuộc sống hằng ngày, đôi khi ta phải xử lý các loại dữ liệu có tính chất chuỗi, đó là các dữ liệu có tính trật tự. Khác với kiểu dữ liệu truyền thống khi mà các mẫu dữ liệu không có tính chất chuỗi, không có thứ tự và độc lập lẫn nhau, đối với dữ liệu chuỗi, thứ tự của các mẫu dữ liệu là quan trọng và mang ý nghĩa nhất định.
Nếu thứ tự này bị thay đổi thì dữ liệu bị mất đi hoàn toàn tính chất, thông tin mà nó mang lại. Một số ví dụ về thông tin dạng chuỗi có thể liệt kê như: ngôn ngữ tự nhiên, dữ liệu có đặc tính thời gian như nhiệt độ trong ngày, giá chứng khoán, dữ liệu âm thanh và video. Dữ liệu chuỗi còn có một đặc tính khác biệt so với các dữ liệu truyền thống là nó có độ dài bất định, một câu có thể có nhiều từ ngữ, đoạn âm thanh hay video có thể có độ dài dài ngắn khác nhau. Tuy nhiên, mạng tích chập (CNN) và mạng kết nối đầy đủ (Fully Connected) được thiết kế theo kiểu đường thẳng (feed-forward), nhằm mục đích tạo ra kết quả đầu ra chỉ dựa trên đầu vào (không có đường nối vòng trên đồ thị tính toán).
Nhưng đối với dữ liệu chuỗi, đầu ra yi bất kì tại vị trí i không chỉ phụ thuộc vào đầu vào xi , mà nó còn phụ thuộc vào những mẫu dữ liệu đến trước xi (xi−1 , xi−2 , .) cũng như thứ tự của chúng trong đầu vào, và đôi khi hoàn toàn không phụ thuộc vào các mẫu dữ liệu đến sau (xi+1 , xi+2 ,. Do đó, các cấu trúc mạng theo kiểu đường thẳng đôi khi không thể dùng được cho bài toán dữ liệu chuỗi, điều này dẫn đến sự ra đời của mạng nơ ron hồi quy. Mạng nơ ron hồi quy (Recurrent Neural Networks - RNN) là một kiến trúc mạng học sâu mà trong đó trạng thái của các bước trước sẽ được dùng như một đầu vào của bước sau. Với RNN, thông tin được xử lý tuần tự theo thứ tự trong chuỗi.
Do việc sử dụng trạng thái ẩn của bước trước cho bước sau, mạng RNN tạo ra một đường vòng trên đồ thị tính toán. Nói cách khác, trạng thái ẩn đóng vai trò như một bộ nhớ tạm thời trong RNN, điều này làm cho việc xử lý dữ liệu dạng chuỗi bằng RNN trở nên hiệu quả hơn hẳn so với các phương pháp cũ. Hình sau thể hiện cấu trúc tính toán của mạng RNN: 6 CHƯƠNG 2. CƠ SỞ LÝ THUYẾT Hình 2.2: Cấu trúc tính toán của RNN Công thức truy hồi của mạng hồi quy RNN được biểu diễn như sau: h0 = 0 hi = f (Whx ∗ xi + Whh ∗ hi−1 + bh ) (2.1) yi = g(Wyh ∗ hi + by ) Với: hi : Trạng thái ẩn ở bước thứ i xi : Đầu vào của mạng ở bước thứ i yi : Đầu ra của mạng ở bước thứ i Whx , Whh , Wyh và bh , by : Các trọng số của mạng Về lý thuyết, mỗi đầu vào của mạng RNN đều cho ra một kết quả ở đầu ra và tạo ra một trạng thái mới cho mạng, sử dụng các kết quả tính toán này như thế nào là tùy vào cách mô hình hóa bài toán và mục tiêu của bài toán.
Việc xác định sử dụng kết quả ở đầu ra nào là rất quan trọng vì trọng số của mạng sẽ được cập nhật dựa vào kết quả đó. Tóm lại, RNN được thiết kế đặc thù cho việc giải quyết dữ liệu dạng chuỗi, với ưu điểm là có khả năng giải quyết chuỗi với độ dài bất định với kích thước mô hình cố định, không phụ thuộc vào đầu vào.