Từ những điều được đề cập đến ở trên em đã chọn tìm hiểu về GAN bao gồm các kiến trúc, các kỹ thuật huấn luyện cũng như ứng dụng của GAN vào đời sống hằng ngày thông qua đề tài : “Nghiên
Trang 1NGHỊCH TẠO SINH VÀ ỨNG DỤNG TỰ ĐỘNG TẠO HÌNH ẢNH MINH HỌA CHO NỘI DUNG HỌC LIỆU
ĐIỆN TỬ”
(Đã Ký) Giảng viên hướng dẫn: TS.Dương Thăng Long Học viên đăng kí : Lã Thị Thu Hương
Hà Nội, tháng 02 năm 2024
Trang 2LỜI CẢM ƠN
Trong suốt quá trình thực hiện và hoàn thành luận văn này, em đã nhận được
sự giúp đỡ và hỗ trợ quý báu từ nhiều cá nhân và tổ chức Nhân dịp này, em xin bày tỏ lòng biết ơn chân thành đến tất cả những người đã đóng góp vào sự thành công của luận văn này
Đầu tiên, em xin gửi lời cảm ơn sâu sắc đến TS.Dương Thăng Long,
người đã tận tình hướng dẫn, góp ý và chia sẻ kiến thức chuyên môn quý báu Những góp ý và sự chỉ bảo tận tình của thầy đã giúp em hoàn thiện và nâng cao chất lượng luận văn
Thứ hai, em xin chân.thành cảm ơn Ban Giám hiệu và các thầy cô trong Khoa Công nghệ Thông tin của Đại học Mở Hà Nội đã tạo điều kiện thuận lợi
về mọi mặt, từ cơ sở vật chất đến môi trường học tập, để em có thể hoàn thành tốt nhiệm vụ nghiên cứu của mình
Tiếp đến, em cũng cảm ơn gia đình và bạn bè đã luôn ủng hộ, động viên
và chia sẻ với em trong suốt quá trình học tập và nghiên cứu Sự quan tâm và khích lệ của mọi người là nguồn động lực lớn lao giúp em vượt qua những khó khăn và thử thách
Cuối cùng, em xin.gửi lời cảm ơn.đến các anh chị và các bạn đồng nghiệp
đã cùng em trao đổi, chia sẻ kinh nghiệm và kiến thức trong quá trình nghiên cứu Những ý kiến đóng góp của các bạn đã giúp em nhìn nhận vấn đề một cách toàn diện và sâu sắc hơn
Một lần nữa,em.xin.cảm.ơn.mọi.người!
Hà Nội, tháng 2 năm 2024 Học viên
Hương
Lã Thị Thu Hương
Trang 3LỜI CAM ĐOAN
Sau thời gian học tập tại Khoa Công nghệ thông tin – Trường Đại học Mở Hà Nội, cùng sự tìm hiểu và học hỏi các kiến thức lý thuyết và thực hành, tiếp đó áp dụng kiến thức vào thực tế, em đã đưa ra được các tài liệu, các công trình nghiên cứu, đồng thời cũng phân tích, tổng hợp và đúc kết cùng phát triển để hoàn thành luận văn thạc sĩ của mình
Em xin cam đoan rằng luận văn này là do bản thân em tự tìm hiểu, nghiên cứu các lý thuyết và hoàn thành dưới sự hướng dẫn của thầy giáo TS
Dương Thăng Long
Hà Nội, tháng 2 năm 2024 Học viên
Hương
Lã Thị Thu Hương
Trang 4MỤC LỤC
LỜI CẢM ƠN 2
LỜI CAM ĐOAN 3
DANH MỤC HÌNH ẢNH 3
DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ 4
MỞ ĐẦU……….5
CHƯƠNG I: MỘT SỐ VẤN ĐỀ CƠ SỞ XÂY DỰNG GAN 7
1 Mạng nơ ron học sâu 7
1.1 Neural network 7
1.2 Deep learning 11
1.3 Convolutional Neural Network (CNN) 14
2 Một số vấn đề cơ sở về mạng GAN 19
Kiến trúc và nguyên lý hoạt động của mô hình GAN 19
2.1 Mạng sinh (Generator) 22
2.2 Mạng phân biệt (Discriminator) 25
2.3 Một số mô hình mạng GAN 27
2.4 Kỹ thuật huấn luyện mạng GAN 27
3 Một số vấn đề về ngôn ngữ tự nhiên 28
3.1 Tokenization 28
3.2 Word Embedding và Vectorization 32
3.3 Pre-trained model trong ngôn ngữ tự nhiên 33
CHƯƠNG II: THIẾT KẾ MÔ HÌNH GAN CHO BÀI TOÁN SINH HÌNH ẢNH TỪ VĂN BẢN 34
1 Mô tả bài toán sinh hình ảnh từ văn bản 34
2 Kiến trúc mạng GAN 35
3 Các thiết kế chi tiết cho mô hình mạng GAN 39
3.1 Quá trình xử lý ngôn ngữ tự nhiên 39
3.2 Xây dựng mạng sinh (generator) 39
3.3 Xây dựng mạng phân biệt (discriminator) 41
3.4 Các lớp sử dụng trong mô hình 41
CHƯƠNG III: ỨNG DỤNG MÔ HÌNH TẠO HÌNH ẢNH MINH HỌA 52
1 Bài toán đặt ra 52
Trang 53 Xác định hàm mất mát (loss function) 54
3.1 Hàm mất mát cho mạng sinh 54
3.2 Hàm mất mát cho mạng phân biệt 55
4 Huấn luyện mạng GAN 56
5 Kết quả thử nghiệm 57
5.1 Tạo ảnh mới 57
5.2 Kết quả thử nghiệm 58
5.3 Ứng dụng vào học liệu điện tử 60
KẾT LUẬN 63
TÀI LIỆU THAM KHẢO 65
PHỤ LỤC 66
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1 1 Cấu tạo một Perceptron 7
Hình 1.1 2 Đồ thị của hàm với bias 9
Hình 1.1 3 Kiến trúc mạng neural network 10
Hình 1.2 1 Hình ảnh học sâu trong trí tuệ nhân tạo 11
Hình 1.3 1 Logo mô hình CNN 15
Hình 1.3 2 Kiến trúc của mô hình CNN 16
Hình 2 1 Sơ đồ kiến trúc GAN 20
Hình 2 2 Ví dụ minh họa bài toán tương ứng với các mạng trong GAN 22
Hình 2.1 1 Ví dụ về mạng sinh 23
Hình 2.1.1 1 Quá trình chuyển đổi của CNN 24
Hình 2.1.2 1 Chuyển đổi tích chập với bước 2 25
Hình 2.2 1 Ví dụ về mạng phân biệt 26
Hình 2 3 Sơ đồ khôi của clip-vit-base-batch-32 1 37
Hình 3.1 1 Hình ảnh mã hóa văn bản CLIP-ViT 39
Hình 3.4.1 1 Quá trình thực hiện của lớp Standard Convolution 41
Hình 3.4.1 4 Quá trình chuyển đổi conv_transpose2d 45
Hình 3.4.1 5 Sơ đồ khối của con2d_gradfix 46
Hình 3.4.3 1 Minh họa Upsample 48
Hình 3.4.4 1 Minh họa Downsample 49
Hình 5.2 1 Kết quả thử nghiệm 59
Hình 5.2 2 Kết quả thử nghiệm trên copilot 59
Trang 7DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ
CNN Convolutional Neural Network
Clip-ViT Contrastive Language–Image Pre-training with Vision
Transformer
DCGAN Deep Convolutional Generative Adversarial Network
GAN Generative Adversarial Network
WGAN Wasserstein Generative Adversarial Network
Trang 8
MỞ ĐẦU Đặt vấn đề
Xã hội ngày càng phát triển, các ứng dụng từ công nghệ được sử dụng ngày càng nhiều nhằm nâng cao hiệu suất làm việc cũng như chất lượng sống của con người Trong đó, lĩnh vực về trí tuệ nhân tạo là một trong những chủ đề được quan tâm nhiều nhất trong thời gian gần đây Từ việc sử dụng lý hình ảnh và video cho đến tự lái xe hay hỗ trợ y tế, nó đã mang lại những tiện ích và giải pháp mới cho con người Một trong những tiện ích được con người sử dụng nhiều nhất hiện nay
để phục vụ lao động cũng như giải trí đó chính là tạo tranh ảnh nghệ thuật số (DeepArt AI) DeepArt AI là một ứng dụng cho phép người dùng áp dụng các kiểu nghệ thuật khác nhau lên hình ảnh đầu vào, tạo ra các tác phẩm nghệ thuật
đa dạng và sáng tạo thông qua việc sử dụng kỹ thuật GAN
Generative Adversarial Networks (GAN) có thể được sử dụng để tự động tạo
ra các hình ảnh giúp nâng cao tính trực quan của nội dung học trực tuyến GAN
là một kỹ thuật học sâu mạnh mẽ gồm hai mạng thần kinh: Generator Discriminator Generator học cách tạo ra hình ảnh thực tế, trong khi Discriminator học cách phân biệt giữa hình ảnh thực và hình ảnh được tạo
Từ những điều được đề cập đến ở trên em đã chọn tìm hiểu về GAN bao gồm các kiến trúc, các kỹ thuật huấn luyện cũng như ứng dụng của GAN vào đời sống
hằng ngày thông qua đề tài : “Nghiên cứu mô hình mạng nơron đối nghịch tạo sinh và ứng dụng tự động tạo hình ảnh minh họa cho nội dung học liệu điện tử”
Đối tượng, phương pháp nghiên cứu
Tổng quan về mô hình mạng nơron đối nghịch tạo sinh
Thiết kế mô GAN cho bài toán sinh hình ảnh từ văn bản
Xây dựng mô hình ( phạm vi nhận diện hình ảnh)
Nội dung báo cáo
Trang 9Trong báo cáo đồ án tốt nghiệp gồm có 4 chương nội dung chính, ngoài ra có các phần mở đầu, kết luận, tài liệu tham khảo Cụ thể nội dung chính của các chương như sau:
• Chương 1: Một số vấn đề cơ sở xây dựng GAN
• Chương 2: Thiết mô hình GAN cho bài toán sinh hình ảnh từ văn bản
• Chương 3: Từ kết quả tìm hiểu của chương 2, ứng dụng mô hình tạo hình ảnh minh họa
• Chương 4: Kết luận
Trang 10CHƯƠNG I: MỘT SỐ VẤN ĐỀ CƠ SỞ XÂY DỰNG GAN
1 Mạng nơ ron học sâu
1.1 Neural network
Neural network (mạng nơ ron) là một phương pháp trong trí tuệ nhân tạo được
áp dụng để dạy máy tính xử lý dữ liệu theo cách lấy cảm hứng từ bộ não con người Bản chất mạng nơ ron là mô phỏng cách bộ não con người xử lý thông tin Điều thú vị là nó không chỉ học từ dữ liệu, mà nó còn có khả năng tự điều chỉnh, tự cải thiện theo thời gian Nếu ta đặt cho nó một nhiệm vụ và nó làm sai, nó sẽ học từ sai lầm đó và thực hiện tốt hơn ở lần tiếp theo
Perceptrons:
Một mạng nơ-ron được cấu thành bởi các nơ-ron đơn lẻ được gọi là các perceptron
Các thành phần đơn lẻ của perceptron
- Inputs (Giá trị của một hoặc nhiều đầu vào )
- Weights and bias (trọng số và độ lệch)
Trang 11- Activation function(Hàm kích hoạt)
Weights và bias là hai thành phần thiết yếu của mô hình perceptron Đây là những tham số có thể học được và khi mạng được huấn luyện, cả hai tham số
đề được điều chỉnh để đạt được giá trị và đầu ra mong muốn
Weights ( trọng số) được sử dụng để xác định tầm quan trọng của từng tính năng trong việc dự báo giá trị đầu ra Các tính năng có giá trị gần bằng 0 được coi là có ít trọng số hoặc mức độ liên quan hơn Những giá trị này ít quan trọng hơn trong quá trình dự đoán so với các đặc điểm có giá trị lớn hơn 0, được gọi
là trọng số có giá trị cao hơn Nếu trọng số dương thì nó có liên quan trực tiếp với giá trị mục tiêu, nếu nó âm, nó có mối quan hệ nghịch đảo với giá trị địch
Độ lệch (bias) trong mô hình học máy được sử dụng để tạo ra sự linh động và điều chỉnh cho mô hình Bias cho phép perceptron tính đến các tình huống trong đó các đầu vào không đủ để nắm bắt độ phức tạp của vấn đề Nó cho phép perceptron tìm hiểu ranh giới quyết định tốt hơn bằng cách thay đổi chúng theo hướng mong muốn Độ lệch cùng với các trọng số giúp mô hình có khả năng học được mối quan hệ phi tuyến giữa đầu vào và đầu ra, điều này là quan trọng để mô hình có thể xử lý các tình huống phức tạp Độ lệch là một tham số quan trọng giúp mô hình nâng cao khả năng linh hoạt, thích ứng với dữ liệu và học được các mối quan hệ phức tạp trong quá trình huấn luyện
Trang 12Hình 1.1 2 Đồ thị của hàm với bias.
Xét dạng chuẩn của hàm tuyến tính và bỏ qua hàm kích hoạt có công thức f(x)
= ax+b Độ lệch của chúng ta hiện tại là thành phần b Nếu bỏ qua bias hay b=0 thì nhận thấy hàm luồn đi qua gốc tọa độ [0,0] Nếu giữ nguyên a và thay đổi b thì các hàm mới sẽ luôn song song với nhau Chúng ta sẽ nhận thấy rằng nếu không có thành phần bias sẽ mất đi tính linh hoạt của của hàm
Hàm kích hoạt (activation function) là một thành phần quan trọng trong mạng neural, đặc biệt là trong các lớp ẩn của mô hình “Phi tuyến tính hóa” Một trong những chức năng chính của hàm kích hoạt là giúp mô hình trở nên phi tuyến tính Điều này cho phép mạng neural học được các biểu diễn phức tạp
và phi tuyến tính của dữ liệu, giúp nó giải quyết các vấn đề phức tạp và không gian biểu diễn rộng lớn hơn Non-linearity (Phi tuyến tính): Hàm kích hoạt giúp mô hình trở nên phi tuyến tính bằng cách thêm tính không tuyến tính vào đầu ra của các lớp ẩn Điều này là quan trọng để mô hình có thể học được các mối quan hệ phức tạp giữa các đặc trưng đầu vào Hàm kích hoạt giúp mô hình
có khả năng học được biểu diễn đồng thời của đầu vào Điều này có nghĩa là
mô hình có thể xử lý và học được các tương tác phức tạp giữa các đặc trưng đầu vào
Cách hoạt động của một perceptron
𝑛
Trang 13F() : là hàm kích hoạt
Wi : trọng số tương ứng với mỗi đầu vào
Xi : các giá trị đầu vào
b : là bias
Mô hình perceptron bắt đầu bằng phép nhân tất cả các giá trị đầu vào và trọng
số của chúng, sau đó cộng các giá trị này lại với nhau để tạo ra tổng có trọng
số Sau đó, tổng có trọng số này được áp dụng cho hàm kích hoạt 'f' để thu được đầu ra mong muốn Hàm kích hoạt này còn được gọi là hàm bước và được biểu thị bằng 'f'
Multi-Layer Perceptron:
Neural network(mạng nơ ron) là sự kết hợp của những tầng perceptron hay còn gọi là perceptron đa tầng
Tầng input layer (tầng vào): Tầng này nằm bên trái cùng của mạng, thể hiện cho các đầu vào của mạng
Tầng output layer (tầng ra): Là tầng bên phải cùng và nó thể hiện cho những đầu ra của mạng
Trang 14Tầng hidden layer (tầng ẩn): Tầng này nằm giữa tầng vào và tầng ra, nó thể hiện cho quá trình suy luận logic của mạng
Giống như mô hình perceptron một lớp, mô hình perceptron nhiều lớp cũng có cấu trúc mô hình tương tự nhưng có số lớp ẩn nhiều hơn
Mô hình perceptron nhiều lớp còn được gọi là thuật toán Backpropagation, thực hiện theo hai giai đoạn như sau:
- Giai đoạn chuyển tiếp: Các chức năng kích hoạt bắt đầu từ lớp đầu vào ở giai đoạn chuyển tiếp và kết thúc ở lớp đầu ra
- Giai đoạn lùi: Trong giai đoạn lùi, các giá trị trọng số và độ lệch được sửa đổi theo yêu cầu của mô hình Trong giai đoạn này, sai số giữa đầu ra thực
tế và yêu cầu bắt nguồn từ lớp đầu ra và kết thúc ở lớp đầu vào
Do đó, mô hình perceptron nhiều lớp được coi là nhiều mạng nơ ron nhân tạo
có nhiều lớp khác nhau trong đó hàm kích hoạt không duy trì tuyến tính, tương
tự như mô hình perceptron một lớp Thay vì tuyến tính, hàm kích hoạt có thể được thực thi dưới dạng sigmoid, TanH, ReLU, v.v để triển khai
1.2 Deep learning
Hình 1.2 1 Hình ảnh học sâu trong trí tuệ nhân tạo
Deep learning(học sâu) là một phần của trí tuệ nhân tạo, nó tập trung vào việc
Trang 15lớp nơ-ron Deep learning giúp máy tính học từ dữ liệu phức tạp và tự tạo ra các biểu diễn phức tạp của thông tin
Các mô hình deep learning thường lớn với hàng trăm hoặc thậm chí hàng nghìn lớp nơ-ron và triệu tham số Để huấn luyện chúng, cần lượng lớn dữ liệu và tài nguyên tính toán, nhưng kết quả có thể là khả năng hiểu biết sâu sắc và khả năng thích ứng với dữ liệu mới
Deep learning được xây dựng để mô phỏng khă năng tư duy của bộ não con người Quy trình hoạt động cũng có một số đặc điểm sau:
- Kiến Trúc Đa Lớp: Mạng nơ-ron được chia thành nhiều lớp, với càng nhiều lớp thì mạng càng "sâu" Mỗi lớp chứa các nút nơ-ron và các kết nối giữa chúng
- Trọng Số Kết Nối: Mỗi kết nối giữa các nút có một trọng số tương ứng, cho thấy mức độ quan trọng của kết nối đó đối với mạng Trọng số càng cao, ảnh hưởng càng lớn
- Chức Năng Kích Hoạt: Mỗi nơ-ron có một chức năng kích hoạt, có trách nhiệm chuẩn hóa đầu ra từ nơ-ron Chức năng này giúp định rõ sự kích thích và truyền thông tin trong mạng
- Dữ Liệu Đầu Vào và Đầu Ra: Dữ liệu được người dùng nhập vào mạng thần kinh và trải qua tất cả các lớp Kết quả được sinh ra ở lớp đầu ra, nơi
mà mô hình ra dự đoán hoặc phân loại
- Quá Trình Đào Tạo: Mô hình cố gắng điều chỉnh các trọng số để tối ưu hóa hiệu suất Điều này thường được thực hiện thông qua các thuật toán như lan truyền ngược, giúp mô hình học từ dữ liệu và cải thiện khả năng dự đoán
Ưu Điểm:
Trang 16- Khả Năng Học Đặc Trưng Tự Động: Deep learning có khả năng tự học và trích xuất các đặc trưng phức tạp từ dữ liệu, giúp giảm thiểu sự phụ thuộc vào việc thiết kế đặc trưng thủ công
- Hiệu Suất Cao Trong Nhiều Lĩnh Vực: Trong nhiều ứng dụng như nhận diện hình ảnh, xử lý ngôn ngữ tự nhiên, và dự đoán chuỗi thời gian, deep learning đã đạt được hiệu suất vượt trội so với các phương pháp truyền thống
- Khả Năng Tự Điều Chỉnh (Adaptability): Mô hình deep learning có khả năng thích ứng với dữ liệu mới một cách tự động, giúp duy trì hiệu suất khi
có thêm thông tin
- Đa Dạng và Linh Hoạt: Deep learning có thể được áp dụng trong nhiều lĩnh vực khác nhau, từ y tế đến tài chính, và có thể mô hình hóa nhiều loại dữ liệu khác nhau
- Nguy cơ Overfitting: Trong một số trường hợp, deep learning có thể dễ bị quá mức hóa mô hình (overfitting), đặc biệt là khi dữ liệu đào tạo không
đủ
Deep learning được sử dụng rộng rãi trong các lĩnh vực, bắt đầu từ nhận diện khuôn mặt hay đối tượng trong hình ảnh, đến dịch máy tự động trong ngôn ngữ tự nhiên Công nghệ này đang mang lại nhiều cơ hội mới và thách thức
Trang 171.3 Convolutional Neural Network (CNN)
Tại sao cần mô hình CNN ?
Mô hình CNN (Convolutional Neural Network) được sử dụng rộng rãi trong lĩnh vực thị giác máy tính vì nó có nhiều ưu điểm CNN có khả năng tự động học các đặc trưng của ảnh thông qua việc áp dụng các bộ lọc và pooling layers Điều này giúp cho mô hình có khả năng nhận dạng và phân loại ảnh tốt hơn CNN cũng có khả năng xử lý ảnh nhanh chóng và hiệu quả, giúp giảm thời gian tính toán
Ngoài ra, CNN cũng có khả năng xử lý được các đối tượng có kích thước và hình dạng khác nhau trong ảnh Vì những ưu điểm này, mô hình CNN được sử dụng rộng rãi trong các ứng dụng thị giác máy tính như nhận dạng khuôn mặt, phân loại ảnh, và xử lý ảnh y tế
Định nghĩa:
Mô hình convolutional Neural Networks (CNN) là một kiến trúc mạng neural được sử dụng rộng rãi trong việc nhận dạng và phân loại hình ảnh CNN sử dụng các lớp tích chập để trích xuất các đặc trưng từ ảnh và áp dụng các hàm kích hoạt như ReLU để kích hoạt các trọng số trong các node Mô hình này có khả năng tự động trích xuất các đặc trưng từ ảnh và phân loại chúng thành các nhãn tương ứng
Lịch sử về cuộc cách mạng học sâu về mô hình CNN:
Mô hình CNN (Convolutional Neural Network) đã có một lịch sử phát triển đáng chú ý trong lĩnh vực thị giác máy tính và học sâu Ban đầu, CNN được giới thiệu vào những năm 1980 bởi Yann LeCun và đồng nghiệp của ông Tuy nhiên, vào thời điểm đó, công nghệ và tài nguyên tính toán chưa đủ để triển khai và huấn luyện mô hình CNN trên quy mô lớn
Sau đó, vào những năm 1990, CNN đã trở nên phổ biến hơn nhờ vào sự phát triển của các công nghệ tính toán và vi xử lý đồ họa Mô hình này đã được áp
Trang 18dụng thành công trong các ứng dụng như nhận dạng khuôn mặt và phân loại ảnh
Đến những năm 2010, CNN đã trở thành một trong những mô hình quan trọng nhất trong lĩnh vực thị giác máy tính và học sâu Điều này được chứng minh bởi sự thành công của các ứng dụng như nhận dạng đối tượng trong ảnh, phân loại ảnh, và xử lý ảnh y tế
Hiện nay, CNN tiếp tục được nghiên cứu và phát triển để cải thiện hiệu suất
và khả năng ứng dụng của nó Các biến thể của CNN như ResNet, Inception
và DenseNet đã được giới thiệu để giải quyết các vấn đề như vanishing gradient và overfitting
Tổng quan về lịch sử phát triển của mô hình CNN cho thấy sự tiến bộ và tầm quan trọng của nó trong lĩnh vực thị giác máy tính và học sâu
Ý tưởng chính: Trải qua 7 bước
Bước 1: Chuẩn bị dữ liệu
Bước 2: Tiền sử lí dữ liệu
Bước 3 : Xây dựng mô hình CNN
Bước 4 : Huấn luyện mô hình
Trang 19Bước 6 : Tinh chỉnh và cải thiện
Bước 7 : Thực hiện kiểm tra và triển khai
Kiến trúc mô hình CNN:
- Convolutions: Được sử dụng để trích xuất các đặc trưng từ ảnh bằng cách
áp dụng các bộ lọc trượt trên ảnh
- Subsampling: Tiếp nhận và làm giảm kích thước của đặc trưng và tạo ra các
đặc trưng tổng quát hơn, giảm thiểu số lượng tham chiếu và tính toán trong mô hình
- Fully Conected: Sử dụng để phân loại các đặc trưng đã được trích xuất.
Nguyên tắc hoạt động của mô hình CNN:
Convolutional Layer (Lớp tích chập) : Lớp này sử dụng các các bộ lọc nhằm
mục đích áp dụng các phép tích chập lên ảnh đầu vào Mỗi bộ lọc sẽ nhận diện các đặc trưng trong ảnh Kết quả của các phép tích chập sẽ tạo ra các Feature map (là biểu diễn của các đặc trưng đã được trích xuất từ ảnh
Activation Layer (Lớp kích hoạt) : Sau mỗi lớp tích chập, một hàm kích hoạt
sẽ được áp dụng lên Feature map để tạo ra đầu vào cho các lớp tiếp theo Hàm kích hoạt này giúp tạo ra tính phi tuyến tính (Khi thay đổi một yếu tố đầu vào kết quả sẽ không thay đổi theo cách tuyến tính cho ra các hiệu ứng phức tạp
Trang 20và không thể đoán trước) trong mô hình từ đó lọc được các đặc trưng phức tạp hơn
Pooling Layer (Lớp subsampling) : Lớp này thực hiện việc giảm kích thước
của Feature map bằng cách lấy giá trị tối đa (Max Pooling) hoặc giá trị trung bình (Average Pooling) trong một vùng nhỏ của Feature map Quá trình giảm kích thước này nhằm giảm số lượng tham số và giúp tính toán trong mô hình, tạo ra các Feature map tổng quát hơn
Fully Connected Layer (Lớp kết nối ) : Sau khi các lớp tích chập và pooling
đã trích xuất được những đặc trưng từ ảnh, các Feature map được làm phẳng thành một vector và đưa vào lớp kết nối Các lớp này có nhiệm vụ phân loại
và dự đoán các nhãn ảnh của đầu vào Thông qua quá trình huấn luyện , các trọng số trong các lớp kết nối đầy đủ được điều chỉnh để tối ưu hóa độ chính xác của mô hình
Softmax Layer ( Lớp Softmax) : Đến cuối cùng, một lớp softmax được áp
dụng để tính xác suất của các nhãn khác nhau cho ảnh đầu vào Lớp này có nhiệm vụ chuyển đổi các giá trị đầu ra\từ lớp kết nối đầy đủ thành các xác suất, giúp mô hình đưa ra dự đoán chính xác về nhãn của ảnh
Từ đó ta thấy rằng mô hình CNN có khả năng tự động trích xuất và lọc các đặc trưng từ ảnh sau đó thực hiện các tác vụ như phân loại , nhận dạng và phân đoạn ảnh
Ưu và nhược điểm của mô hình CNN:
Ưu điểm:
1 Khả năng học các đặc trưng cấp cao : CNN có khả năng tự động học các đặc trưng cấp cao từ dữ liệu đầu vào Điều này giúp nó phù hợp cho nó phù hợp cho việc xử lí ảnh, vì các đặc trưng như cạnh, góc, hoặc hình dạng có thể tự động nhận biết và sử dụng để phân loại hoặc nhận dạng
Trang 212 Hiệu suất cao: Với cấu trúc chồng chất lọc và các lớp kết nối đầy đủ, CNN có khả năng xử lí dữ liệu lớn và đạt hiệu suất cao Điều này giúp phù hợp cho việc
xử lí ảnh và video trong thời gian thực
3 Tính tổng quát: CNN có khả năng tổng quát hóa dữ liệu huấn luyện sang dữ liệu mới Tức là nó có khả năng nhận dạng và phân loại các đối tượng mới mà nó chưa từng thấy trước đó
Nhược điểm:
1 Đòi hỏi lượng dữ liệu lớn: Mô hình CNN thường yêu cầu một lượng dữ liệu lớn để huấn luyện hiệu quả Đó có thể là một thách thức vô cùng lớn đối với các bài toán có ít dữ liệu hoặc khi mà dữ liệu về bài toán đó rất khó có thể thu thập
2 Độ phức tạp tính toán: Với cấu trúc phức tạp và số lượng tham số lớn, CNN có thể đòi hỏi nhiều tài nguyên tính toán và thời gian để huấn luyện và triển khai Điều này làm tăng thời gian huấn luyện và cần sử dụng các máy tính mạnh hoặc GPU
3 Khó hiểu và khó giải thích: Là mô hình có cấu trúc vô cùng phức tạp và khó hiểu Do đó việc giải thích về mô hình cần có kiến thức sâu rộng về mạng nơ-ron
và xử lí ảnh
Ứng dụng của mô hình CNN:
Mô hình có nhiều những ứng dụng trong các lĩnh vực khác nhau:
- Về nhận dạng ảnh: Mô hình CNN đã và đang được sử dụng trong nhận dạng hay phân loại các đối tượng trong ảnh Nó có thể được sử dụng để nhận dạng khuôn mặt, phân loại các loài động vật, nhận dạng biển số xe…
- Về kinh doanh: Mô hình CNN được áp dụng vào quá trình xử lí dữ liệu sản phẩm nhằm giảm thiểu thời gian phân loại sản phẩm và đạt được hiệu suất phân loại nhanh chóng và chính xác
Trang 22- Về xử lí ngôn ngữ tự nhiên: Mô hình này cũng có thể được áp dụng để xử lí ngôn ngữ tự nhiên Sử dụng để phân loại văn bản, dịch thuật…và nhiều ứng dụng khác liên quan đến ngôn ngữ
- Về xử lí âm thanh: Mô hình cũng có thể được sử dụng để xử lí âm thanh Xử dụng để nhận dạng giọng nói , phân loại âm thanh…
- Về y học: Mô hình này có thể ứng dụng vào y tế để có thể phân loại và nhận dạng các loại bệnh lý từ những hình ảnh, dự đoán kết quả điều trị…
Những ứng dụng của mô hình CNN là vô cùng phong phú và đa dạng trong nhiều lĩnh vực khác nhau Mô hình có khả năng xử lí thông tin hình ảnh và dữ liệu phức tạp, từ đó giúp chúng ta có thể hiểu và cung cấp thông tin một cách chính xác và hiệu quả
2 Một số vấn đề cơ sở về mạng GAN
Mô hình GAN giới thiệu bởi Ian J Goodfellow trong năm 2014 và đã đạt được rất rất nhiều thành công lớn trong Deep Learning nói riêng và AI nói chung Yann LeCun, VP and Chief AI Scientist, Facebook, họ từng nói về GAN: "The
most interesting idea in the last 10 years in Machine Learning" [10]
GAN là viết tắt của Generative Adversarial Network, một loại mô hình máy học sử dụng trong việc tạo ra dữ liệu mới từ dữ liệu huấn luyện đã có sẵn Mô hình này bao gồm hai phần: một mạng sinh tạo dữ liệu mới và một mạng phân biệt để phân biệt dữ liệu mới từ dữ liệu thật
Kiến trúc và nguyên lý hoạt động của mô hình GAN
GAN có cấu tạo gồm 2 phần là mạng sinh (Generator) và mạng phân biệt (Discriminator) Trong khi Generator sẽ sinh ra các dữ liệu giống như dữ liệu thật thì Discriminator sẽ cố gắng phân biệt xem đâu là dữ liệu được tạo ra bởi Generator và đâu là dữ liệu thật có
Trang 23Hình 2 1 Sơ đồ kiến trúc GAN
Theo sơ đồ trên, GAN có quy trình làm việc như sau:
1 Trình tạo nhập một đầu vào chứa các số ngẫu nhiên
2 Mạng sinh xử lý đầu vào để tạo ra hình ảnh
3 Mạng phân biệt sẽ nhập hình ảnh do trình tạo tạo ra và các hình ảnh thực bổ sung
4 Mạng phân biệt so sánh toàn bộ bộ ảnh và cố gắng xác định hình ảnh nào là thật hay giả
5 Trả về dự đoán cho mỗi hình ảnh, sử dụng số từ 0 đến 1 để biểu thị xác suất xác thực Điểm 0 cho biết hình ảnh giả, trong khi 1 cho biết hình ảnh thật
Quy trình công việc này tạo ra một vòng phản hồi liên tục Bộ phân biệt đối xử xác định sự thật cơ bản (sự thật thực nghiệm) cho đầu vào hình ảnh và trình tạo cung cấp cho bộ phân biệt đối xử những hình ảnh mới và được tạo ra được cải tiến
Nói cách khác, trong quá trình huấn luyện GAN để cải thiện khả năng sinh
ra ảnh chất lượng cao, mạng sinh và mạng phân biệt cần phải cùng hoạt động để
Trang 24đạt được mục tiêu này Đầu tiên, mạng sinh tạo ra ảnh giả mạo từ dữ liệu nguồn Sau đó, mạng phân biệt được sử dụng để đánh giá chất lượng của ảnh giả mạo so với ảnh thật Quá trình này được lặp lại nhiều lần, trong đó cả hai mạng đều cố gắng cải thiện kỹ thuật của mình Bằng cách này, mạng sinh được cải thiện để tạo
ra ảnh chất lượng cao hơn và khớp với dữ liệu thật hơn
Để làm rõ hơn về GAN đặt ra ví dụ giả sử để generate tạo tiền giả có khả năng dùng chi tiêu được Dữ liệu sẵn có là tiền thật Generator ở đây giống như tội phạm buôn tiền giả trong khi Discriminator đóng vai trò là người cảnh sát Tội phạm sẽ cố gắng tạo tiền giả để cảnh sát không thể phân biệt được Trong khi đó, cảnh sát có nhiệm vụ phân biệt xem đâu là tiền thật và đâu sẽ là tiền giả Mục đích cuối cùng của tội phạm là tạo ra tiền mà cảnh sát không phân biệt được đâu là thật, đâu là giả và sử dụng chúng, mang tiền đi tiêu được Trong quá trình train GAN này thì người cảnh sát phải làm 2 việc: 1 là phải học cách phân biệt được tiền thật, tiền giả và 2 là nói cho tội phạm biết được rằng tiền nó tạo ra vẫn chưa thể nào qua mắt được và cần phải cải thiện hơn Dần dần bọn tội phạm có thể tạo
ra tiền giả giống tiền thật hơn Bên cạnh đó cảnh sát cũng sẽ thành thạo trong việc phân biệt tiền giả, tiền thật Điều đáng mong đợi ở đây là tiền giả tạo ra từ GAN
sẽ có thể đánh lừa được cảnh sát
Trang 25Hình 2 2 Ví dụ minh họa bài toán tương ứng với các mạng trong GAN
GAN có ý tưởng được bắt nguồn từ trò zero-sum non-cooperative game, có thể hiểu đơn giản rằng đó là một trò chơi đối kháng dành cho 2 người ( chẳng hạn như trò cờ vua, cờ tướng,…), kết quả của những trò này là một người thắng và một người thua Trong trò chơi cả hai người sẽ đều muốn maximize (tối đa) cơ hội thắng của bản thân và minimize (tối thiểu) cơ hội thắng của người còn lại Discriminator và Generator ở đây đươc coi như hai người đối thủ trong trò chơi Theo như lý thuyết thì GAN model converge khi cả Generator và Discriminator đạt được trạng thái Nash Equilibrium, có nghĩa là hai người chơi ở đây đạt được trạng thái cân bằng và sẽ đi các bước tiếp mà không làm tăng cơ hội thắng của đối phương "A strategy profile is a Nash equilibrium if no player can do better by unilaterally changing his or her strategy " ( The Nash equilibrium & explained, 2019)
Trang 26Hình 2.1 1 Ví dụ về mạng sinh
Mạng sinh nhận đầu vào là một vector ngẫu nhiên (latent space) và cố gắng biến đổi nó thành một ảnh giả có chất lượng cao
Mạng sinh nhận đầu vào là vector đặc trưng mô tả hình ảnh cần sinh được
mã hóa từ ngôn ngữ lớn Clip và kết hợp với vector được sinh ngẫu nhiên Sau khi kết hợp đưa qua các lớp tích chập, chuyển đổi vector ban đầu thành vector 2 chiều
có độ sâu là 3 ứng với 3 kênh màu RGB của 1 bức ảnh Đây là ảnh giả được sinh
ra bởi mạng sinh và sẽ đc cải thiện dần giống với ảnh thật trong quá trình huấn luyện mô hình
Mạng sinh trong mô hình GAN thường có kiến trúc phức tạp để có thể tạo
ra dữ liệu giả mạo chất lượng cao Một trong những kiến trúc phổ biến cho Generator là mạng Neural Network sử dụng các lớp Convolutional Neural Network (CNN) và lớp Transposed Convolutional Neural Network (Transposed CNN)
2.1.1 Lớp Convolutional Neural Network (CNN)
Convolutional Neural Network (CNN) là một loại mạng neural thường được sử dụng trong việc xử lý và phân loại hình ảnh CNN được thiết kế để tự động học và trích xuất các đặc trưng từ dữ liệu hình ảnh thông qua việc áp dụng các bộ lọc (kernels) và các lớp convolution CNN đã đạt được nhiều thành công trong các ứng dụng như nhận diện khuôn mặt, phân loại ảnh, và xử lý video
Trang 27Hình 2.1.1 1 Quá trình chuyển đổi của CNN
Lớp Convolutional Neural Network (CNN) bao gồm các thành phần chính sau:
- Lớp Convolutional: Lớp này cho phép thực hiện phép tích chập trên dữ liệu đầu vào để trích xuất các đặc trưng
- Lớp Activation: Sử dụng hàm kích hoạt (ví dụ : ReLU) để tạo tính phi tuyến cho
2.1.2 Lớp Transposed Convolutional Neural Network (Transposed CNN)
Lớp Transposed Convolutional Neural Network (Transposed CNN) là một loại lớp trong mạng neural dùng để thực hiện phép ngược của phép convolution
Nó giúp tăng kích thước của đầu ra từ một lớp trước đó thông qua việc áp dụng các bộ lọc ngược lại so với phép convolution thông thường Lớp Transposed CNN thường được sử dụng trong các mô hình như mạng Generative Adversarial Networks (GANs) để tạo ra hình ảnh có chất lượng cao từ dữ liệu nguồn
Trang 28Hình 2.1.2 1 Chuyển đổi tích chập với bước 2
Thành phần chính của Transposed Convolutional Neural Network (Transposed CNN) bao gồm:
- Bộ lọc (kernels): Đây là ma trận trọng số được sử dụng để thực hiện phép convolution ngược lại trên đầu vào
- Padding: Để duy trì kích thước của đầu ra sau khi áp dụng phép convolution ngược lại, padding thường được thêm vào đầu vào
- Stride: Điều chỉnh bước di chuyển của bộ lọc khi thực hiện phép convolution ngược lại trên đầu vào
- Activation function: Hàm kích hoạt như ReLU thường được áp dụng sau khi thực hiện phép convolution ngược lại để kích hoạt các đầu ra
- Backpropagation: Là quá trình lan truyền ngược sử dụng nhằm cập nhật các trọng số của lớp Transposed CNN dựa trên độ lỗi giữa các đầu ra dự đoán và đầu
ra thực tế
Kiến trúc của Mạng sinh hoàn toàn có thể thay đổi tùy theo bài toán cụ thể
và yêu cầu của dữ liệu đầu vào
2.2 Mạng phân biệt (Discriminator)
Mạng này nhận đầu vào là dữ liệu thật hoặc dữ liệu giả mạo từ mạng sinh
và cố gắng phân biệt chúng Mục tiêu của mạng phân biệt là phân biệt giữa dữ liệu thật và dữ liệu giả mạo một cách chính xác nhất có thể
Trang 29Hình 2.2 1 Ví dụ về mạng phân biệt
Mạng phân biệt nhận đầu vào gồm ảnh thật, ảnh giả, và vector đặc trưng của câu văn Mô hình sẽ đưa từng bức ảnh quả các lớp tích chập nhăm giảm chiểu của nó xuống và cuối cùng thu được vector đặc trừng của mỗi bức hình Sử dụng
kĩ thuật tự chú ý cho việc tổng hợp thông tin của 2 vector trên Cuối cùng sẽ đưa
ra kết quả xem bức ảnh sinh ra này là ảnh thật hay giả Qua quá trình huấn luyệnn mạng càng ngày sẽ càng đánh giá tốt lên và yêu cầu hinh ảnh giả khi đưa qua bộ phân biệt cũng phải tốt lên
Mạng phân biệt trong mô hình GAN thường có kiến trúc tương tự như mạng Neural Network, nhưng với mục tiêu phân biệt giữa dữ liệu thật và dữ liệu giả mạo được tạo ra bởi Mạng sinh
Một số thành phần chính trong kiến trúc của Mạng phân biệt bao gồm:
- Lớp Convolutional Layer: Các lớp này giúp trích xuất đặc trưng từ dữ liệu đầu vào để phân biệt giữa hình ảnh thật và hình ảnh giả mạo
- Lớp Activation Function: Các hàm kích hoạt như ReLU thường được sử dụng để tạo tính phi tuyến cho mô hình
- Lớp Pooling Layer: Các lớp này giúp giảm kích thước của đầu ra từ các lớp trước đó và tăng tính bất biến của mô hình
Trang 30- Lớp Fully Connected Layer: Lớp này thường được sử dụng để kết nối các đặc trưng trích xuất từ các lớp trước và đưa ra quyết định cuối cùng về việc dữ liệu đầu vào là thật hay giả
Kiến trúc của Mạng phân biệt có thể thay đổi tùy thuộc vào bài toán cụ thể
và yêu cầu của mô hình GAN
2.3 Một số mô hình mạng GAN
Một số mô hình GAN phổ biến bao gồm:
- DCGAN (Deep Convolutional Generative Adversarial Network): Mô hình này sử dụng mạng CNN để tạo ra hình ảnh chất lượng cao và ổn định
- CycleGAN: Được sử dụng để thực hiện chuyển đổi hình ảnh từ một miền sang miền khác mà không cần cặp dữ liệu huấn luyện
- StyleGAN: Được phát triển để tạo ra hình ảnh khuôn mặt người với độ chân thực cao và khả năng kiểm soát phong cách
- WGAN (Wasserstein Generative Adversarial Network): Mô hình này sử dụng hàm mất mát Wasserstein giúp cải thiện quá trình huấn luyện và ổn định mô hình GAN
- BigGAN: Được thiết kế để tạo ra hình ảnh với độ phân giải cao và chất lượng tốt hơn so với các mô hình GAN truyền thống
Các mô hình GAN này đều được ứng dụng và sử dụng rộng rãi trong việc tạo ra dữ liệu giả mạo chất lượng cao và thú vị trong các lĩnh vực về trí tuệ nhân tạo và xử lý ảnh
2.4 Kỹ thuật huấn luyện mạng GAN
Có một số kỹ thuật huấn luyện mạng GAN phổ biến được sử dụng để cải thiện hiệu suất và ổn định của mô hình, bao gồm:
- Minimax Game: Mô hình GAN được huấn luyện thông qua một trò chơi tối ưu hóa giữa Mạng sinh và Mạng phân biệt, trong đó Mạng sinh cố gắng tối ưu hóa hàm mất mát của Mạng phân biệt và ngược lại
- Batch Normalization: Kỹ thuật này giúp cải thiện sự ổn định trong quá trình huấn luyện bằng cách chuẩn hóa đầu ra của các lớp trung gian trong mạng
Trang 31- Feature Matching: Thay vì chỉ tập trung vào đầu ra cuối cùng của Mạng phân biệt, kỹ thuật này yêu cầu Mạng sinh tạo ra dữ liệu giả mạo sao cho các đặc trưng trung gian của nó tương tự với các đặc trưng trung gian của dữ liệu thật
- Wasserstein GAN (WGAN): Một biến thể của mô hình GAN sử dụng hàm mất mát Wasserstein để cải thiện việc đánh giá khoảng cách giữa phân phối của
dữ liệu thật và dữ liệu giả mạo
- Progressive Growing GAN: Kỹ thuật này bắt đầu huấn luyện mô hình với ảnh nhỏ và dần dần tăng kích thước ảnh để cải thiện chất lượng của dữ liệu giả mạo
Có một số công trình nghiên cứu mới đang được thực hiện để cải thiện hiệu suất và chất lượng của các mô hình GAN Một số phương pháp tiêu biểu bao gồm việc sử dụng kiến trúc mạng sâu hơn, tối ưu hóa hàm mất mát, cải thiện quá trình huấn luyện và sử dụng các kỹ thuật tăng cường học Điều này giúp tăng cường khả năng sinh ảnh và tạo ra các hình ảnh chất lượng cao hơn từ các mô hình GAN
3 Một số vấn đề về ngôn ngữ tự nhiên
3.1 Tokenization
Tokenization là quá trình chia nhỏ văn bản thành các đơn vị nhỏ hơn được gọi là tokens Đây là một bước quan trọng trong tiền xử lý dữ liệu văn bản trong lĩnh vực xử lý ngôn ngữ tự nhiên (NLP) Tokenization giúp chúng ta chuyển đổi dữ liệu văn bản từ dạng chuỗi liên tục thành các đơn vị có ý nghĩa, tạo nên cơ sở cho việc phân tích và xử lý ngôn ngữ tự nhiên
Khái niệm Tokens
- Đơn Vị Cơ Bản: Tokens là các đơn vị cơ bản trong NLP, đại diện cho các phần nhỏ nhất có ý nghĩa trong văn bản
- Đa Dạng: Tokens có thể là từ (word), từ phụ (sub-word), hoặc kí tự (character), phụ thuộc vào mục tiêu cụ thể và yêu cầu của ứng dụng
Mục tiêu Tokens
Trang 32- Tạo Từ Vựng: Tokens được sử dụng để tạo từ vựng, một tập hợp các đơn vị duy nhất đại diện cho ngôn ngữ trong mô hình NLP
- Mã Hóa: Mỗi token thường được biểu diễn bằng một số (ID), giúp máy tính hiểu
Character-Based Tokenization: là quá trình chia một đoạn văn bản thành các đơn
vị nhỏ nhất là các ký tự riêng lẻ Thay vì sử dụng từ hoặc từ ngữ là đơn vị cơ bản như trong word-based tokenization, trong character-based tokenization, mỗi ký tự trong văn bản được coi là một token độc lập
Ưu điểm của character-based tokenization bao gồm:
- Giảm độ phức tạp của từ vựng: Vì không cần xử lý và lưu trữ thông tin về từ ngữ, nên kích thước của từ vựng trở nên đơn giản hơn Điều này có thể giúp giảm
độ phức tạp của mô hình và giảm bộ nhớ cần thiết
- Khả năng xử lý đa ngôn ngữ: Vì ký tự thường có sẵn trong nhiều ngôn ngữ khác nhau, character-based tokenization có thể áp dụng cho văn bản đa ngôn ngữ mà không cần điều chỉnh từ vựng
Trang 33- Tăng độ dài chuỗi: Do mỗi ký tự được coi là một token, độ dài của chuỗi sẽ tăng lên đáng kể so với word-based tokenization -Điều này có thể tạo ra các chuỗi rất dài và ảnh hưởng đến hiệu suất của mô hình
- Mất thông tin ngữ cảnh từ từ ngữ: Việc không sử dụng thông tin từ ngữ có thể làm mất đi sự hiểu biết về ngữ cảnh của một từ trong câu
Character-based tokenization thường được sử dụng trong các trường hợp đặc biệt, như khi xử lý văn bản tiếng Trung, nơi từ ngữ thường được biểu diễn bằng các ký
tự Tùy thuộc vào bài toán và loại dữ liệu, người ta sẽ chọn phương pháp tokenization phù hợp nhằm cho ra kết quả tốt nhất
Subword-Based Tokenization: là quá trình chia văn bản thành các đơn vị nhỏ hơn
từ, thường là các từ phụ (subwords) nhỏ hoặc các phần tử ngôn ngữ nhỏ hơn, giữa giữa từ và ký tự
Một số ưu điểm của subword-based tokenization bao gồm:
- Giảm kích thước từ vựng: Subword-based tokenization giúp giảm kích thước của từ vựng so với word-based tokenization Thay vì biểu diễn từng từ là một token, mô hình sử dụng các đơn vị nhỏ hơn như từ phụ, giúp giảm số lượng token cần xử lý
- Xử lý từ mới linh hoạt: Subword tokenization cho phép mô hình xử lý từ mới hoặc từ không xuất hiện trong từ vựng một cách linh hoạt hơn Điều này đặc biệt hữu ích khi mô hình phải đối mặt với ngôn ngữ mới, thuật ngữ chuyên ngành, hoặc từ ngữ không phổ biến
- Tích hợp sự linh hoạt của character-based và word-based tokenization: Subword-based tokenization nằm giữa character-based và word-based tokenization, giúp giữ lại một số thông tin ngữ cảnh của từ trong khi vẫn giảm kích thước của từ vựng
Một số thuật toán nổi tiếng cho subword-based tokenization bao gồm Byte Pair Encoding (BPE), SentencePiece, và WordPiece Các thuật toán này thường sử
Trang 34dụng các phương pháp như tìm kiếm các chuỗi phổ biến nhất và thay thế chúng bằng một token mới để tạo ra các đơn vị nhỏ hơn
Hầu hết các mô hình tiếng Anh đều sử dụng các dạng thuật toán của mã hóa từ phụ, trong đó, phổ biến là WordPeces được sử dụng bởi BERT và DistilBERT, Unigram của XLNet và ALBERT, và Bye-Pair Encoding của GPT-2 và RoBERTa
Tổng quát, subword-based tokenization thường được ưa chuộng trong các ứng dụng xử lý ngôn ngữ tự nhiên, đặc biệt là khi mô hình cần xử lý nhiều loại ngôn ngữ hoặc phải làm việc với từ vựng đa dạng
Byte Pair Encoding (BPE) là một phương pháp subword-based tokenization được
sử dụng để chia nhỏ các từ thành các subwords nhỏ hơn Phương pháp này giúp giảm kích thước từ vựng, đồng thời tăng khả năng xử lý từ mới và từ ngữ đa dạng Cách thức hoạt động của BPE như sau:
Bước 1: Tính tần suất xuất hiện của các cặp byte (byte pair): Ban đầu, mỗi từ được chia thành các byte (ký tự hoặc các đơn vị nhỏ hơn) Sau đó, tần suất xuất hiện của các cặp byte liên tiếp được đếm trong toàn bộ tập dữ liệu
Bước 2: Kết hợp các cặp byte xuất hiện nhiều nhất: Cặp byte xuất hiện nhiều nhất được kết hợp lại để tạo ra một subword mới Quá trình này sẽ được lặp đi lặp lại một số lần cho đến khi nào đạt đến số lượng subwords được xác định trước Bước 3: Tạo từ vựng mới: Các subword mới được thêm vào từ vựng, và quá trình lặp lại để tạo ra các subwords tiếp theo cho đến khi đạt được số lượng subwords mong muốn
Đối với mỗi từ, BPE thường tạo ra một chuỗi các subwords nhỏ hơn, từ đơn vị
ký tự đến các subword độc lập Các từ phổ biến sẽ được giữ lại trong dạng nguyên vẹn, trong khi các từ hiếm hoặc từ mới có thể được phân tách thành các subwords
để giúp mô hình hiểu biết tốt hơn
Trang 35Các thư viện và công cụ:
NLTK, spaCy, Keras, Gensim: Cung cấp các công cụ và thư viện hỗ trợ quá trình tokenization trong Python
3.2 Word Embedding và Vectorization
Word Embedding là một kỹ thuật biểu diễn từng từ trong ngôn ngữ bằng các vectơ
số thực trong không gian nhiều chiều Mục tiêu của Word Embedding là ánh xạ các từ có ý nghĩa tương tự gần nhau trong không gian vector Điều này giúp mô hình hiểu được mối quan hệ ngữ nghĩa giữa các từ
Các phương pháp phổ biến của Word Embedding bao gồm:
- Word2Vec: Sử dụng mô hình dự đoán ngữ cảnh (context) của từ để học các vectơ biểu diễn
- GloVe (Global Vectors for Word Representation): Kỹ thuật này tận dụng thông tin thống kê toàn bộ tập dữ liệu để học các vectơ biểu diễn
- FastText: Mở rộng Word2Vec bằng cách biểu diễn từng từ dưới dạng tổ hợp các n-gram của ký tự
Vectorization: Vectorization là một quá trình cho phép biến đổi dữ liệu từ định dạng không phải vector thành dạng vector, thường được sử dụng trong machine learning và xử lý ngôn ngữ tự nhiên Trong ngữ cảnh xử lý ngôn ngữ tự nhiên, vectorization có thể áp dụng cho văn bản để biểu diễn từ và văn bản dưới dạng vectơ số
Trong kiến trúc Transformer, Word Embedding và Vectorization vẫn đóng một vai trò quan trọng trong việc biểu diễn và xử lý ngôn ngữ tự nhiên, nhưng có những sự khác biệt so với các mô hình truyền thống
Trong Transformer, word embedding được thực hiện thông qua một lớp embedding đặc biệt, thường được gọi là Embedding Layer Mỗi từ trong câu được ánh xạ sang một vectơ số thực trong không gian nhiều chiều thông qua embedding
Trang 36layer Điều đặc biệt ở Transformer là các vectơ embedding này không chỉ biểu diễn từ riêng lẻ mà còn bao gồm thông tin ngữ cảnh của từ đó trong câu
3.3 Pre-trained model trong ngôn ngữ tự nhiên
Pre-trained models là một loại mô hình máy học đã trải qua quá trình huấn luyện trước đó trên một lượng lớn dữ liệu Trong ngữ cảnh của xử lý ngôn ngữ tự nhiên (NLP), mô hình đã được tiền huấn luyện thường là các mô hình ngôn ngữ có khả năng hiểu và sản xuất văn bản
Mô hình đã được tiền huấn luyện thường được đào tạo trên các tập dữ liệu lớn, đa dạng của ngôn ngữ tự nhiên Quá trình tiền huấn luyện giúp mô hình nắm bắt thông tin ngôn ngữ thông qua việc dự đoán từ tiếp theo trong một câu, điều này giúp nó học được cú pháp, ý nghĩa, và mối quan hệ giữa các từ
Một số pre-trained model nổi tiếng trong lĩnh vực NLP bao gồm BERT (Bidirectional Encoder Representations from Transformers), GPT (Generative Pre-trained Transformer), và RoBERTa (Robustly optimized BERT approach) Các mô hình này đã đạt được những thành tựu ấn tượng trong nhiều nhiệm vụ NLP, như phân loại văn bản, dịch ngôn ngữ, và sinh văn bản tự động
Một lợi ích lớn của việc sử dụng mô hình đã được tiền huấn luyện là khả năng chuyển giao (transfer learning) Ta có thể sử dụng một mô hình đã được tiền huấn luyện trên một tập các dữ liệu lớn giúp cải thiện hiệu suất cho mô hình trong một nhiệm vụ cụ thể mà sẽ không cần huấn luyện lại từ đầu trên một tập dữ liệu nhỏ Điều này giúp tiết kiệm thời gian và nguồn lực đào tạo, đặc biệt là khi tài nguyên hạn chế
Trang 37CHƯƠNG II: THIẾT KẾ MÔ HÌNH GAN CHO BÀI TOÁN SINH HÌNH
ẢNH TỪ VĂN BẢN
1 Mô tả bài toán sinh hình ảnh từ văn bản
Bài toán sinh hình ảnh từ văn bản sử dụng mạng GAN (Generative Adversarial Network) thường được gọi là text-to-image synthesis Bài toán này đòi hỏi mạng neural network để tạo ra hình ảnh có thể tương ứng với một mô tả văn bản cho trước Dưới đây là mô tả tổng quan về quá trình:
B1: Chuẩn bị dữ liệu huấn luyện
Thu thập và chuẩn bị tập dữ liệu bao gồm các cặp (văn bản, hình ảnh) Văn bản là mô tả của hình ảnh tương ứng và hình ảnh là ảnh thực tế phù hợp với mô
tả đó Dữ liệu cần được tiền xử lý để đảm bảo tính nhất quán và chất lượng cao
B2: Chọn kiến trúc mạng GAN
Lựa chọn một kiến trúc mạng GAN phù hợp cho bài toán cụ thể này Điều này bao gồm lựa chọn kiến trúc của mạng Generator và mạng Discriminator, cũng như các tham số khác như kích thước của vectơ đầu vào và đầu ra
B3: Huấn luyện mạng GAN:
Huấn luyện Discriminator: Discriminator được huấn luyện với hai loại dữ liệu: hình ảnh thật từ tập dữ liệu và hình ảnh được tạo ra từ Generator
Huấn luyện Generator: Generator cố gắng tạo ra hình ảnh từ văn bản đầu vào sao cho hình ảnh được tạo ra khó phân biệt được với hình ảnh thật từ tập dữ liệu Generator cập nhật tham số của mình dựa trên phản hồi từ Discriminator
B4: Tinh chỉnh và cải thiện kết quả
Sau mỗi chu kỳ huấn luyện, các kỹ thuật tinh chỉnh có thể được áp dụng để cải thiện chất lượng của hình ảnh được tạo ra Điều này có thể bao gồm việc điều chỉnh các tham số của mạng, tăng kích thước của tập dữ liệu, hoặc thậm chí thay đổi kiến trúc mạng
B5: Kiểm tra và đánh giá kết quả
Khi quá trình huấn luyện đã hoàn thành, hình ảnh được tạo ra từ văn bản mới có thể được sinh ra và đánh giá Đánh giá có thể được thực hiện thông qua các phương pháp định lượng như độ đo PSNR (Peak Signal-to-Noise Ratio),
Trang 38SSIM (Structural Similarity Index) hoặc đánh giá định tính bằng cách hỏi ý kiến của con người về sự phù hợp của hình ảnh với mô tả ban đầu
Mục tiêu của GigaGAN là cải thiện chất lượng của hình ảnh được tạo ra từ mạng GAN thông thường, đặc biệt là trong việc tạo ra các hình ảnh có độ phân giải cao Điều này đòi hỏi các kỹ thuật và kiến trúc mạng phức tạp hơn để xử lý
dữ liệu có độ phức tạp cao và tạo ra chi tiết chính xác trong hình ảnh
GigaGAN thường được áp dụng trong các ứng dụng yêu cầu hình ảnh có độ phân giải cao, chẳng hạn như trong lĩnh vực nghệ thuật số, thiết kế, y học, và địa
lý
Clip-ViT (Contrastive Language–Image Pre-training with Vision Transformer)
là một kiến trúc mạng sử dụng Transformer được áp dụng cho các thao tác về thị giác máy tính Đây là một biến thể của kiến trúc ViT được điều chỉnh để học các biểu diễn thị giác từ hình ảnh và văn bản
Clip-ViT và mạng GAN là hai phương pháp khác nhau trong lĩnh vực thị giác máy tính và xử lý ngôn ngữ tự nhiên, nhưng có một số cách mà chúng có thể liên quan hoặc được sử dụng cùng nhau:
- GAN được sử dụng nhằm tạo hình ảnh từ văn bản: Mặc dù Clip-ViT không phải là một mạng GAN, nhưng nó có thể được kết hợp với mạng GAN để tạo hình ảnh từ văn bản Clip-ViT cung cấp biểu diễn đa miền cho cả văn bản và hình ảnh, điều này được sử dụng để làm đầu vào cho mạng GAN để tạo ra hình ảnh từ mô
tả văn bản
Trang 39- Sử dụng GAN để tăng cường dữ liệu cho Clip-ViT: Mạng GAN có thể được
sử dụng để tạo ra các hình ảnh phụ trợ để tăng cường dữ liệu cho quá trình huấn luyện Clip-ViT Bằng cách này, Clip-ViT có thể học được các biểu diễn tổng quát hơn và có khả năng tổng quát hóa tốt hơn đối với các tác vụ liên quan đến hình ảnh và văn bản
- Sử dụng GAN trong các ứng dụng hợp thành ảnh (image composition): ViT có thể được sử dụng để xác định các yếu tố chính trong hình ảnh và văn bản Một khi đã có các yếu tố này, mạng GAN có thể được sử dụng để tạo ra các hình ảnh mới bằng cách kết hợp các yếu tố này, chẳng hạn như kết hợp các yếu tố văn bản và hình ảnh để tạo ra hình ảnh mới dựa trên mô tả
Clip-Tóm lại, mặc dù Clip-ViT và GAN là hai phương pháp riêng biệt, nhưng chúng
có thể được sử dụng cùng nhau hoặc kết hợp để giải quyết các vấn đề phức tạp trong lĩnh vực thị giác máy tính và xử lý ngôn ngữ tự nhiên
Một biến thể cụ thể của Clip-ViT được gọi là Clip-ViT-Base-Patch32 Dưới đây là một sơ đồ khối cơ bản của Clip-ViT-Base-Patch32: