Tải bản đầy đủ (.pdf) (51 trang)

Đồ án image classification with transformers

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.72 MB, 51 trang )

ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO ĐỒ ÁN 1

ĐỀ TÀI: Image Classification with Transformers

Giáo viên hướng dẫn:
Thầy Huỳnh Tuấn Anh
Sinh viên thực hiện:
Phạm Nhật Minh – 20521003
Nguyễn Đức Tuấn - 20522117

TP. Hồ Chí Minh, tháng 6 năm 2023


LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn đến thầy Huỳnh Tuấn Anh, giảng viên khoa
Công nghệ phần mềm trường Đại học Công nghệ Thông tin – Đại học Quốc gia
TP.HCM, về việc hỗ trợ và đồng hành cùng chúng em trong quá trình thực hiện
đồ án. Chúng em viết những dòng này để bày tỏ lòng cảm ơn sâu sắc tới thầy vì
sự giúp đỡ mang lại cho chúng em
Xin gửi lời cảm ơn đến các tác giả của các bài báo cáo nghiên cứu khoa học trong
và ngồi nước mà nhóm đã tham khảo trong q trình thực hiện đề tài. Trong thời
gian thực hiện đề tài, nhóm đã cố gắng vận dụng những kiến thức nền tảng đã học,
kết hợp học hỏi và tìm hiểu các kiến thức, cơng nghệ khác để hồn thành một báo
cáo đồ án tốt nhất có thể. Tuy nhiên trong quá trình hồn thiện, vì kiến thức và kinh
nghiệm cịn nhiều hạn chế nên cũng khơng tránh khỏi những thiếu sót. Chính vì
vậy, nhóm mong sẽ nhận được sự góp ý từ q thầy cơ để hồn thiện thêm những


kiến thức mà nhóm đã học tập, làm hành trang quý báu cho công việc sau này.
Xin trân trọng cảm ơn!


MỤC LỤC
1. Tổng quan về Image Classification và các phương pháp............................................7
1.1. Mục tiêu ...................................................................................................................................7
1.2. Tổng quan về bài toán Image Classification ............................................................7
1.2.1. Định nghĩa ......................................................................................................................7
1.2.2. Bài toán : .........................................................................................................................9
1.3. Các phương pháp truyền thống trong bài toán Image Classification........ 10
1.4. Các phương pháp hiện đại trong bài toán Image Classification .................. 11
1.4.1. Tổng quan CNN ......................................................................................................... 11
1.4.2. Các biến thể của CNN ............................................................................................. 14
1.4.3. Hạn chế của CNN ...................................................................................................... 16
2. Giới thiệu về mơ hình Transformer và sử dụng trong bài tốn image
classification..................................................................................................................................... 17
2.1. Mơ hình Transformer ..................................................................................................... 17
2.2. Kiến trúc ............................................................................................................................... 19
3. Vision Transformer (ViT) ...................................................................................................... 23
3.1. Kiến trúc tổng thể ............................................................................................................. 26
3.2. Sự khác nhau giữa mạng nơ-ron tích chập (Convolutional Neural
Network – CNN) và Vision Transformer (ViT) ............................................................ 30
3.2.1. So sánh kết quả ........................................................................................................... 31
4. Tiến hành huấn luyện mơ hình và đánh giá hiệu suất của chúng trên các bộ
dữ liệu khác nhau........................................................................................................................... 32
4.1. Tiền xử lý dữ liệu .............................................................................................................. 32


4.1.1. Dữ liệu sử dụng ......................................................................................................... 32

4.1.2. Đặt các siêu tham số (hyperparameters)...................................................... 33
4.2. Tăng cường dữ liệu .......................................................................................................... 34
4.3. MLP ......................................................................................................................................... 34
4.4. Trực quan hóa .................................................................................................................... 35
4.5. Lớp encoder ........................................................................................................................ 37
4.6. Bắt đầu xây dựng ViT ...................................................................................................... 37
4.7. Bước cuối ............................................................................................................................. 38
5. Ứng dụng ngoài xử lý ảnh ..................................................................................................... 41
6. So sánh hiệu suất với các phương pháp truyền thống và đưa ra nhận xét ..... 42
6.1. Tiềm năng và những hướng phát triển trong việc kết hợp mô hình
Transformer với các phương pháp khác trong xử lý hình ảnh ............................ 42
6.2. Về phương pháp sử dụng riêng Transformer: .................................................... 43
6.3. Các phương pháp kết hợp Convolution: ................................................................ 45
7. Kết luận 46
7.1. Thách thức ........................................................................................................................... 46
7.2. Hướng phát triển .............................................................................................................. 47
8. TÀI LIỆU THAM KHẢO ............................................................................................................ 48


Danh mục hình ảnh

Hình 1-1: Quá trình thực hiện image classification ................................................................8
Hình 1-2: Image recognition và image recognition ................................................................8
Hình 1-3: Kiến trúc của CNN ..................................................................................................... 12
Hình 1-4: Kernel feature map................................................................................................... 12
Hình 1-5: Convolution Sharpen ............................................................................................... 13
Hình 1-6: Convolution Edge Enhance ................................................................................... 13
Hình 1-7: Convolution Edge Detect ....................................................................................... 13
Hình 1-8: Các biến thể của CNN ............................................................................................... 14
Hình 2-1: Tổng quan mơ hình transformer ............................................................................. 18

Hình 2-2: Mơ hình chi tiết hơn ................................................................................................... 18
Hình 2-3: Cách tính positional encoding ................................................................................. 19
Hình 2-4: Mơ tả self-attention ..................................................................................................... 20
Hình 2-5: Self Attention Layer ................................................................................................... 20
Hình 2-6: Multi Head Attention ................................................................................................. 21
Hình 2-7: Encoder và Decoder ................................................................................................... 23
Hình 3-1: Timeline mốc thời gian của các mơ hình Transformer (Các mơ hình liên
quan tới ViT được đánh dấu đỏ)................................................................................................. 24
Hình 3-2: Kiến trúc của ViT ........................................................................................................ 26
Hình 3-3: Chia thành các patchs ................................................................................................. 27
Hình 3-4: Quá trình làm phẳng input đầu vào ....................................................................... 27
Hình 3-5: Hình ảnh khi khơng áp dụng posional embedding. ......................................... 28
Hình 3-6: Quá trình huấn luyện của ViT ................................................................................. 29
Hình 4-1: Tập dữ liệu ví dụ của CF100 ................................................................................... 33
Hình 4-2: Hình ảnh đầu vào với kích thước 72x72 ............................................................. 36
Hình 6-1: Sự khác biệt giữa phương pháp sử dụng thuần transformer và kết hợp
convolution ........................................................................................................................................ 45


TĨM TẮT ĐỒ ÁN
Đồ án tập trung vào bài tốn Image Classification và áp dụng mơ hình Transformer
trong việc giải quyết bài toán này.
Chương 1 cung cấp một tổng quan về Image Classification và các phương pháp
truyền thống và hiện đại trong lĩnh vực này. Nó cũng giới thiệu các khái niệm và
định nghĩa liên quan đến bài toán Image Classification.
Chương 2 giới thiệu về mơ hình Transformer và mơ tả kiến trúc của nó. Mơ hình
Transformer đã đạt được sự thành công trong lĩnh vực xử lý ngôn ngữ tự nhiên và
đang được áp dụng trong các bài toán liên quan đến xử lý hình ảnh, bao gồm cả
Image Classification.
Chương 3 tập trung vào Vision Transformer (ViT), một biến thể của mơ hình

Transformer được sử dụng trong bài tốn Image Classification. Nó trình bày kiến
trúc tổng thể của ViT và phân tích và so sánh kết quả của các mơ hình Image
Classification sử dụng Convolutional Neural Network (CNN) và ViT.
Chương 4 mơ tả q trình huấn luyện mơ hình và đánh giá hiệu suất của chúng trên
các bộ dữ liệu khác nhau. Nó cũng trình bày q trình tiền xử lý dữ liệu được sử
dụng trong đồ án.
Chương 5 đề cập đến ứng dụng của đồ án ngoài việc xử lý ảnh.
Chương 6 so sánh hiệu suất của mô hình Image Classification with Transformer với
các phương pháp truyền thống và đưa ra nhận xét. Nó cũng thảo luận về tiềm năng
và hướng phát triển trong việc kết hợp mô hình Transformer với các phương pháp
khác trong xử lý hình ảnh.
Chương 7 đưa ra kết luận với việc nêu rõ thách thức và hướng phát triển tiếp theo
trong lĩnh vực này.

6


1. Tổng quan về Image Classification và các phương pháp
1.1. Mục tiêu
Mục tiêu chính nhóm đặt ra trong q trình thực hiện đề tài là tìm hiểu chuyên
sâu về transformer và ứng dụng của nó trong bài tốn hiện đại. Mục đích như một
bài nghiên cứu giới thiệu cho người đọc một cái nhìn đầy đủ và mới mẻ về việc phát
triển transformer trong lĩnh vực thị giác máy tính.
1.2. Tổng quan về bài toán Image Classification
1.2.1. Định nghĩa
Image classification là quá trình nhận diện và phân loại các hình ảnh vào các
lớp khác nhau dựa trên nội dung của chúng. Nhiệm vụ chính của bài tốn image
classification là xây dựng một mơ hình có khả năng học từ dữ liệu huấn luyện và
sau đó có thể dự đốn class của các hình ảnh mới [1].
Trong bài tốn image classification, một hình ảnh được coi là đầu vào, và mơ

hình cần dự đốn lớp tương ứng của hình ảnh đó từ một tập hợp các lớp đã được
định nghĩa trước. Mỗi lớp đại diện cho một đối tượng, một vật thể hoặc một khái
niệm cụ thể.
Để thực hiện image classification, mơ hình cần được huấn luyện trên một tập
dữ liệu huấn luyện đã được gán nhãn, trong đó mỗi hình ảnh được gán nhãn với lớp
tương ứng của nó. Trong q trình huấn luyện, mơ hình học cách tạo ra các đặc
trưng phân biệt từ các hình ảnh và xây dựng một quy tắc phân loại để gán nhãn cho
các hình ảnh mới.

7


Hình 1-1: Quá trình thực hiện image classification

Phân biệt Image Classification và Image Recognition :
Image classification (phân loại hình ảnh) là quá trình gán nhãn cho một hình
ảnh bằng cách xác định xem nó thuộc vào một trong các lớp hay nhãn đã được định
trước.
Image recognition (nhận dạng hình ảnh) mở rộng khái niệm phân loại hình
ảnh bằng cách xác định và nhận dạng đối tượng cụ thể trong hình ảnh. Điều này có
thể bao gồm việc xác định và phân loại các đối tượng, vùng quan tâm, hoặc phân
đoạn (segmentation) các phần của hình ảnh.

Hình 1-2: Image recognition và image recognition

8


Sử dụng Image Classification mang lại nhiều lợi ích quan trọng và có ứng dụng
rộng rãi trong nhiều lĩnh vực khác nhau. Dưới đây là một số lý do tại sao nên sử

dụng image classification [2]:
-

Tự động hóa q trình phân loại : Image classification giúp tự động hóa q
trình phân loại hình ảnh, giảm cơng sức và thời gian của con người. Thay vì
phải phân loại hàng ngàn hoặc thậm chí hàng triệu hình ảnh một cách thủ
cơng, một mơ hình image classification có thể tự động phân loại các hình ảnh
với tốc độ nhanh và độ chính xác cao.

-

Nhận dạng và phát hiện : Image classification có thể được sử dụng để nhận
dạng và phát hiện các đối tượng, vật thể hoặc biểu đồ trong hình ảnh. Ví dụ,
nó có thể giúp nhận dạng khn mặt, phát hiện vật thể trong an ninh, nhận
dạng biểu đồ và biểu đồ từ hình ảnh khoa học.

-

Ứng dụng trong y tế : Image classification có thể được sử dụng để phân loại
và phát hiện bệnh tật trong hình ảnh y tế, chẳng hạn như phân loại các loại
ung thư từ hình ảnh X-quang hoặc cắt lớp, phân loại và phát hiện bệnh trong
hình ảnh siêu âm, và nhiều ứng dụng khác để hỗ trợ chẩn đoán và điều trị.

-

Ứng dụng trong cơng nghệ thơng tin và truyền thơng : Image classification
có thể được sử dụng để phân loại, gắn nhãn và quản lý hàng ngàn hoặc hàng
triệu hình ảnh trong các hệ thống quản lý dữ liệu, truyền thông xã hội, cơng
cụ tìm kiếm hình ảnh và ứng dụng web khác.


-

Tối ưu hóa sản xuất và kiểm tra chất lượng : Image classification có thể được
sử dụng để phân loại và kiểm tra chất lượng sản phẩm trong ngành công
nghiệp, chẳng hạn như sản xuất, kiểm tra hàng hoá và quản lý chất lượng.
1.2.2. Bài toán :

Đánh giá về tổng quan bài toán :
Bài toán Image Classification là một trong những bài toán quan trọng và phổ
biến trong lĩnh vực thị giác máy tính và trí tuệ nhân tạo. Với sự phát triển nhanh
chóng của cơng nghệ và mức độ phổ biến ngày càng tăng của dữ liệu hình ảnh, bài

9


toán Image Classification đã trở thành một lĩnh vực nghiên cứu quan trọng và có
ứng dụng rộng rãi trong nhiều lĩnh vực thực tế.
Bài toán Image Classification bao gồm hai bước chính : trích xuất đặc trưng và
mơ hình hóa.
Trích xuất đặc trưng (feature extraction) là quá trình chuyển đổi hình ảnh thành các
đặc trưng số học có thể được sử dụng để phân loại. Các đặc trưng này có thể là các
thuộc tính hình học, các đặc trưng màu sắc, đặc trưng textural hoặc các đặc trưng
phức tạp hơn như các đặc trưng được học từ mạng neural. Trong quá khứ, các
phương pháp truyền thống như SIFT (Scale-Invariant Feature Transform), HOG
(Histogram of Oriented Gradients) và các phương pháp khác đã được sử dụng để
trích xuất đặc trưng từ hình ảnh. Tuy nhiên, với sự phát triển của deep learning, các
mạng neural tích chập (CNNs) đã trở thành cơng cụ phổ biến và mạnh mẽ để tự
động học các đặc trưng từ dữ liệu hình ảnh.
Sau khi có các đặc trưng, bước tiếp theo là mơ hình hóa (modeling), tức là xây
dựng một mơ hình máy tính có khả năng phân loại hình ảnh dựa trên các đặc trưng

đã trích xuất. Các mơ hình học máy và deep learning như SVM (Support Vector
Machines), Random Forests, Naive Bayes, K-Nearest Neighbors và CNNs được sử
dụng rộng rãi để giải quyết bài toán Image Classification. Các mơ hình này được
huấn luyện trên tập dữ liệu huấn luyện đã được gán nhãn, trong đó mỗi hình ảnh
được gán nhãn với lớp tương ứng của nó. Trong q trình huấn luyện, mơ hình học
cách tạo ra các quy tắc phân loại từ các đặc trưng và tối ưu hóa các thơng số mơ
hình để đạt được độ chính xác cao nhất.
1.3. Các phương pháp truyền thống trong bài toán Image Classification
Các phương pháp truyền thống trong image classification thường tập trung vào
việc tạo ra các đặc trưng (features) phân biệt từ hình ảnh và sử dụng các thuật toán
máy học truyền thống để phân loại. Dưới đây là một số phương pháp truyền thống
phổ biến:

10


-

Phương pháp học máy cơ bản: Trong phương pháp này, các đặc trưng được
trích xuất từ ảnh và sau đó sử dụng để huấn luyện một mơ hình học máy cơ
bản như Support Vector Machines (SVM), Random Forests, hoặc K-Nearest
Neighbors (K-NN). Các đặc trưng có thể là các đặc trưng màu sắc, textural
hoặc hình học được tính tốn từ ảnh.

-

Histogram of Oriented Gradients (HOG): Phương pháp HOG [3] dựa trên
việc mơ tả hình dạng và đặc trưng bằng cách tính gradient của ảnh. Các biểu
đồ hướng gradient được tạo ra và sau đó được sử dụng để đại diện cho ảnh.
Các mơ hình học máy như SVM sau đó được sử dụng để phân loại các biểu

đồ HOG.

-

Scale-Invariant Feature Transform (SIFT): Phương pháp SIFT [4] sử dụng để
trích xuất các điểm đặc trưng không bị ảnh hưởng bởi sự thay đổi tỉ lệ. Các
điểm đặc trưng này sau đó được mơ tả bằng các vector đặc trưng, và các mơ
hình học máy như SVM được sử dụng để phân loại các vector đặc trưng này.

-

Bag of Visual Words (BoVW): Phương pháp BoVW [5] dựa trên ý tưởng sử
dụng bộ từ vựng hình ảnh để mơ tả ảnh. Các bước chính bao gồm trích xuất
đặc trưng từ ảnh (thơng qua phương pháp như SIFT), xây dựng bộ từ vựng
bằng cách gom cụm các vector đặc trưng và sử dụng histogram từ vựng để
biểu diễn mỗi ảnh. Các mơ hình học máy như SVM được sử dụng để phân
loại các histogram từ vựng.

-

Phương pháp đối chiếu (Template Matching): Phương pháp này dựa trên
việc so sánh sự tương đồng giữa các mẫu đã biết và vùng quan tâm trong ảnh
đầu vào. Đối chiếu có thể được thực hiện bằng cách tính tốn độ tương đồng,
tương quan hoặc sử dụng các phép tốn hình học.

1.4. Các phương pháp hiện đại trong bài toán Image Classification
1.4.1. Tổng quan CNN
Các phương pháp hiện đại trong bài toán Image Classification thường liên quan
đến sự phát triển của deep learning và mạng neural tích chập (CNNs).


11


Hình 1-3: Kiến trúc của CNN

Kiến trúc CNN (Convolutional Neural Network) [6] là một loại mạng nơ-ron sâu
(deep neural network) thường được sử dụng trong xử lý hình ảnh và bài tốn phân
loại ảnh. CNN có khả năng tự động học các đặc trưng và mẫu trong hình ảnh thơng
qua việc áp dụng các lớp tích chập (convolutional layers), lớp gộp (pooling layers)
và lớp kết nối đầy đủ (fully connected layers).
1.4.1.1. Convolutional layers
Lớp tích chập (Convolutional layers) : [7] Lớp tích chập là lõi của kiến trúc CNN.
Nó sử dụng các bộ lọc (filters) để thực hiện phép tích chập trên ảnh đầu vào.

Hình 1-4: Kernel feature map

12


Mỗi bộ lọc nhận diện các đặc trưng cụ thể trong ảnh, như cạnh, góc, hoặc mẫu.
Các lớp tích chập tạo ra các feature map, trong đó mỗi pixel trong feature map biểu
diễn mức độ phù hợp của một đặc trưng cụ thể với ảnh gốc.
Ví dụ :

Hình 1-5: Convolution Sharpen

Hình 1-6: Convolution Edge Enhance

Hình 1-7: Convolution Edge Detect


13


1.4.1.2.

Pooling layers

Lớp gộp (Pooling layers): [7] Lớp gộp được sử dụng để giảm kích thước của
feature map và giảm độ phức tạp tính tốn. Thơng thường, lớp gộp sử dụng phép
gộp cực đại (max pooling) hoặc phép gộp trung bình (average pooling) trên các
vùng không chồng lấp của feature map. Điều này giúp tạo ra các feature map có
kích thước nhỏ hơn và giữ lại thông tin quan trọng nhất.
1.4.1.3.

Fully connected layers

Lớp kết nối đầy đủ (Fully connected layers): [7] Sau khi thơng qua các lớp tích
chập và lớp gộp, các feature map được đưa vào các lớp kết nối đầy đủ. Lớp kết nối
đầy đủ là một mạng nơ-ron thơng thường, trong đó mỗi nơ-ron kết nối với tất cả các
nơ-ron trong lớp trước và sau nó. Các lớp kết nối đầy đủ được sử dụng để tìm ra
mối quan hệ giữa các đặc trưng trong feature map và thực hiện phân loại cuối cùng.
1.4.2. Các biến thể của CNN

Hình 1-8: Các biến thể của CNN

14


1.4.2.1.
-


VGGNet

VGGNet [8] là một kiến trúc CNN được đề xuất bởi nhóm nghiên cứu VGG tại
Đại học Oxford.

-

Nổi tiếng với cấu trúc đơn giản và đồ sộ, VGGNet [8] sử dụng các lớp tích chập
3x3 nhỏ liên tiếp nhau và các lớp gộp 2x2 để tạo ra độ sâu lớn.

-

Ưu điểm của VGGNet [8] bao gồm hiệu suất tốt trên các tập dữ liệu lớn, dễ triển
khai và tái sử dụng mã nguồn.
1.4.2.2.

ResNet (Residual Network) :

-

ResNet [9] là một kiến trúc CNN được đề xuất bởi Microsoft Research.

-

Khám phá khái niệm của "Residual Learning", trong đó các đường dẫn dư thừa
được thêm vào để truyền các đặc trưng từ các lớp trước đó trực tiếp đến các lớp
sau.

-


ResNet [9] giúp giảm hiện tượng vanishing gradient và cho phép huấn luyện
mạng nơ-ron sâu hơn mà không gặp vấn đề hiệu suất.

-

Ưu điểm của ResNet [9] là khả năng xây dựng mạng nơ-ron rất sâu và khả năng
học được các đặc trưng phức tạp.
1.4.2.3.

-

InceptionNet (Inception V3 và InceptionResNet)

InceptionNet [10], còn được gọi là GoogleNet, là một kiến trúc CNN được đề
xuất bởi nhóm nghiên cứu Google.

-

Nổi tiếng với cấu trúc mạng phức tạp sử dụng các module Inception, trong đó
các lớp tích chập với các kích thước khác nhau được sử dụng song song.

-

InceptionNet [10] giúp giảm số lượng tham số và tính tốn trong mạng, đồng
thời tăng độ chính xác.

-

Ưu điểm của InceptionNet [10] là khả năng tăng tốc tính tốn, hiệu quả và độ

chính xác cao trong phân loại ảnh.

15


1.4.3. Hạn chế của CNN
1.4.3.1.
-

Về loại ảnh

Ảnh có kích thước lớn: CNN thường u cầu ảnh đầu vào có kích thước cố định
và nhỏ hơn. Khi xử lý các ảnh có kích thước lớn, việc đưa tồn bộ ảnh qua mạng
CNN có thể địi hỏi tài ngun tính tốn lớn và tốn thời gian. Điều này có thể
hạn chế khả năng áp dụng CNN cho các tác vụ xử lý ảnh với ảnh có kích thước
lớn, như phân tích ảnh y tế chất lượng cao hoặc ảnh quang học.

-

Ảnh không cân bằng: Khi một tập dữ liệu ảnh có sự mất cân bằng về số lượng
ảnh của các lớp khác nhau, CNN có thể gặp khó khăn trong việc học và phân
loại đúng các lớp thiểu số. Mơ hình CNN có thể trở nên chệch và khơng đủ khả
năng phân loại đúng các ảnh thiểu số trong tập dữ liệu. Để khắc phục hạn chế
này, cần thực hiện các kỹ thuật xử lý mẫu không cân bằng hoặc sử dụng các mơ
hình cân bằng mẫu như Weighted Loss hoặc Oversampling/Undersampling.

-

Ảnh có biến dạng và nhiễu: CNN có khả năng ổn định đối với một số biến dạng
như dịch chuyển, co giãn và xoay. Tuy nhiên, nếu ảnh chứa biến dạng mạnh,

nhiễu lớn hoặc lỗi, CNN có thể gặp khó khăn trong việc phân loại chính xác.
Đơi khi cần sử dụng các phương pháp tiền xử lý như cắt bớt (cropping), xoay,
thu nhỏ hoặc làm sạch ảnh để cải thiện khả năng xử lý của CNN.

-

Thiếu dữ liệu: CNN cần một lượng lớn dữ liệu huấn luyện để có thể học và phân
loại đúng các đặc trưng. Nếu dữ liệu huấn luyện hạn chế, CNN có thể gặp khó
khăn trong việc học và có thể gây overfitting, tức là mơ hình chỉ học nhớ dữ liệu
huấn luyện mà không tổng quát hoá được cho các ảnh mới. Để giải quyết hạn
chế này, cần thu thập và sử dụng một tập dữ liệu đủ lớn và đa dạng hoặc sử dụng
các kỹ thuật như data augmentation để tăng cường dữ liệu huấn luyện.
1.4.3.2.

-

Về tính tốn

Tính tốn phức tạp: Mơ hình Convolutional Neural Network (CNN) có khả năng
học các đặc trưng phức tạp từ dữ liệu ảnh nhưng cũng đi kèm với tính tốn phức
tạp. Các phép tính tích chập và pooling được thực hiện trên các lớp của mạng

16


CNN, địi hỏi một lượng tính tốn lớn, đặc biệt là khi mạng có độ sâu và số
lượng tham số lớn. Điều này có thể đặt ra thách thức về hiệu suất tính tốn và tài
ngun máy tính khi triển khai mơ hình CNN trên các hệ thống có giới hạn.
-


Khả năng diễn giải: Một hạn chế của mơ hình CNN là khả năng diễn giải kém.
Khi mơ hình CNN được huấn luyện, các trọng số và đặc trưng học được trong
mạng không thể được hiểu rõ một cách trực tiếp. Việc giải thích lý do mơ hình
ra quyết định như thế nào và tại sao nó phân loại một ảnh nhất định có thể trở
thành một thách thức. Điều này có thể gây khó khăn trong việc xác định lý do và
tin cậy của dự đốn mơ hình, đặc biệt là trong các tác vụ nhạy cảm như y tế hoặc
an ninh.
1.4.3.3.

Cách khắc phục

Để khắc phục những hạn chế của Convolutional Neural Network (CNN)
trong việc xử lý ảnh, một kiến trúc mạng nơ-ron khác đã được giới thiệu, đó là
Transformer.

2. Giới thiệu về mơ hình Transformer và sử dụng trong bài tốn image
classification.
2.1. Mơ hình Transformer
Trước khi Google cơng bố bài báo về Transformers (Attention Is All You Need),
hầu hết các tác vụ xử lý ngôn ngữ tự nhiên, đặc biệt là máy học phiên dịch
(Machine Translation) sử dụng kiến trúc Recurrent Neural Networks (RNNs) [11].
Điểm yếu của phương pháp này là rất khó bắt được sự phụ thuộc xa giữa các từ
trong câu và tốc độ huấn luyện chậm do phải xử lý input tuần tự.
-

Transformer bao gồm 2 phần lớn là encoder và decoder. Encoder dùng để
học vector biểu của câu với mong muốn vector này mang thơng tin hồn hảo
của câu đó. Decoder thực hiện chức năng chuyển vector biểu diễn kia thành
ngơn ngữ đích.


17


Hình 2-1: Tổng quan mơ hình transformer


Ưu điểm xử lý song song các từ nhờ nhiều lớp Encoder

Hình 2-2: Mơ hình chi tiết hơn

18


2.2. Kiến trúc
-

Input Embedding: Máy tính khơng hiểu câu chữ mà chỉ đọc được số, vector,
ma trận; vì vậy ta phải biểu diễn câu chữ dưới dạng vector, gọi là input
embedding.

-

Position Encoding dùng để đưa thơng tin về vị trí của các từ vào mơ hình
transformer.
o

Các từ được biểu diễn bằng một vector sử dụng một ma trận word
embedding có số dịng bằng kích thước của tập từ vựng. Sau đó các từ
trong câu được tìm kiếm trong ma trận này, và được nối nhau thành
các dòng của một ma trận 2 chiều chứa ngữ nghĩa của từng từ riêng

biệt.


Word embeddings phần nào cho giúp ta biểu diễn ngữ nghĩa
của một từ, tuy nhiên cùng một từ ở vị trí khác nhau của câu lại
mang ý nghĩa khác nhau.

o

Positional Encoding để inject thêm thơng tin về vị trí của một từ.

Hình 2-3: Cách tính positional encoding
-

Self-Attention là cơ chế giúp Transformers "hiểu" được sự liên quan giữa các
từ trong một câu.

19


Hình 2-4: Mơ tả self-attention

Hình 2-5: Self Attention Layer

20


Một phiên bản nâng cấp hơn của Self-attention là multi-head attention. Ý tưởng rất
đơn giản là thay vì sử dụng 1 Self-attention (1 head) thì ta sử dụng nhiều Attention
khác nhau (multi-head) và mỗi Attention sẽ chú ý đến một phần khác nhau trong

câu.

Hình 2-6: Multi Head Attention

Multi head attention cho phép mơ hình chú ý đến đồng thời những pattern dễ quan
sát được như sau.
-

Chú ý đến từ kế trước của một từ

-

Chú ý đến từ kế sau của một từ

-

Chú ý đến những từ liên quan của một từ

Residuals Connection và Normalization Layer

21


Trong kiến trúc của mơ hình transformer, residuals connection và normalization
layer được sử dụng mọi nơi, giống như tinh thần của nó. 2 kỹ thuật giúp cho mơ
hình huấn luyện nhanh hội tụ hơn và trách mất mát thông tin trong q trình huấn
luyện mơ hình, ví dụ như là thơng tin của vị trí các từ được mã hóa.
Decoder
-


Masked Multi-head Attention.
o

Giả sử bạn muốn Transformers thực hiện bài toán English-France
translation, thì cơng việc của Decoder là giải mã thơng tin từ Encoder
và sinh ra từng từ tiếng Pháp dựa trên NHỮNG TỪ TRƯỚC ĐÓ. Vậy
nên, nếu ta sử dụng multi-head attention trên cả câu như ở Encoder,
Decoder sẽ "thấy" ln từ tiếp theo mà nó cần dịch. Để ngăn điều đó,
khi Decoder dịch đến từ thứ i, phần sau của câu tiếng Pháp sẽ bị che
lại (masked) và Decoder chỉ được phép "nhìn" thấy phần nó đã dịch
trước đó.

o

Decode về cơ bản là giống với encode, chỉ khác là Decoder decode
từng từ một và input của Decoder (câu tiếng Pháp) bị masked.

22


Hình 2-7: Encoder và Decoder

3. Vision Transformer (ViT)
Vào năm 2022, Vision Transformer (ViT) nổi lên như một giải pháp thay thế cạnh
tranh so với các mạng thần kinh tích chập (Convolutional Neural Network, gọi tắt là
CNN) vốn đang là ứng dụng tiên tiến trong thị giác máy tính, và được sử dụng rộng
rãi trong các tác vụ nhận dạng hình ảnh khác nhau. Các mơ hình ViT được đánh giá

23



là vượt trội hơn so với CNN gần 4 lần về hiệu quả tính tốn và độ chính xác.

Hình 3-1: Timeline mốc thời gian của các mơ hình Transformer (Các mơ hình liên quan tới ViT được đánh
dấu đỏ)
-

Được giới thiệu trong một bài báo nghiên cứu được xuất bản dưới dạng báo
cáo hội nghị tại ICLR 2021, có tiêu đề “An Image is Worth 16*16 Words:
Transformers for Image Recognition in Scale”. [12]

-

ViT là một mơ hình trực quan dựa trên kiến trúc của một kiến trúc
Transformer ban đầu được thiết kế cho các tác vụ dựa trên văn bản.
o

Mô hình ViT chuyển hình ảnh đầu vào thành một loạt các mảng hình
ảnh, và dự đốn trực tiếp các nhãn lớp cho hình ảnh.

o

ViT cho thấy một hiệu suất phi thường khi được huấn luyện trên đủ
dữ liệu, vượt xa hiệu suất của một CNN hiện đại tương tự với tài
ngun tính tốn ít hơn 4 lần.

o

CNN sử dụng mảng pixel, trong khi ViT chia hình ảnh thành các
tokens trực quan.



Kiến trúc Transformer truyền thống nhận đầu vào là một chuỗi
token embedding 1D.



Do đó để xử lý đầu vào là ảnh có kích thước 2D, Transformer
trực quan chia hình ảnh thành các mảng hình ảnh có kích thước
cố định, mã hóa từng mảng theo thứ tự làm đầu vào cho
Transformer encoder.



Lớp Self-attention trong ViT có khả năng tổng hợp thơng tin
trên tồn bộ hình ảnh. Mơ hình này cũng học trên dữ liệu huấn

24


luyện để mã hóa vị trí tương đối của các mảng ảnh nhằm tái tạo
lại cấu trúc của hình ảnh.
o

Cấu trúc


Encoder bao gồm:



Lớp Multi-Head Self Attention (MSP): Lớp này nối tất
cả các kết quả đầu ra của Cơ chế Attention một cách
tuyến tính theo đúng kích thước. Nhiều Attention head
sẽ giúp huấn luyện những yếu tố phụ thuộc cục bộ và
tồn bộ trong một hình ảnh.



Lớp Multi-Layer Perceptrons (MLP): Lớp này chứa một
hàm Gaussian Error Linear Unit hai lớp.



Lớp thường: Lớp này được thêm vào trước mỗi khối, vì
nó khơng bao gồm bất kỳ yếu tố phụ thuộc mới nào giữa
các hình ảnh huấn luyện. Điều này giúp cải thiện thời
gian đào tạo và hiệu suất tổng thể.

25


×