Download as pdf or txt
Download as pdf or txt
You are on page 1of 55

LICERIA INC.

VISION
TRANSFORMER
PRESENTATION BY NGUYỄN TUẤN

TRẦN NGỌC NHẬT HƯNG


NỘI DUNG CHÍNH

VIT
1. Giới thiệu về Vision Transformer
2. So sánh giữa ViT và CNN
3. Huấn luyện với Vision Transformer
4. Ứng dụng của Vision Transformer
5. Kết luận
1. GIỚI THIỆU VỀ
VISION
TRANSFORMER
VISION TRANSFORMER

Mô hình Vision Transformer (ViT) được giới thiệu vào năm 2021 trong bài
nghiên cứu hội nghị có tiêu đề "An Image is Worth 16*16 Words:
Transformers for Image Recognition at Scale", được xuất bản tại ICLR
2021.
VISION TRANSFORMER

Vision Transformer (ViT) là một mô hình học sâu được sử dụng cho xử lý
hình ảnh. Nó sử dụng cơ chế Transformer, một kiến trúc chủ yếu được sử
dụng trong xử lý ngôn ngữ tự nhiên, và áp dụng nó vào việc xử lý hình ảnh.
Điều này cho phép ViT chuyển đổi hình ảnh thành các vectơ biểu diễn, từ
đó mô hình có thể học và rút trích các đặc trưng quan trọng từ hình ảnh.

Mặc dù mạng neural tích chập (CNN) đã thống trị lĩnh vực thị giác máy tính
(Computer vision) trong nhiều năm, nhưng các mô hình vision transformer
mới đã cho thấy khả năng đáng kinh ngạc, đạt được hiệu suất tương đương
hoặc thậm chí vượt trội hơn so với CNN trên nhiều bài toán.
KIẾN TRÚC CỦA VISION
TRANSFORMER
SERVICE
LINEAR PROJECTION AND FLATTEND PATCHES

Patch Embedding

Với mỗi ảnh đầu vào, ViT xử lý bằng cách chia ảnh ra
thành các phần có kích thước bằng nhau (patch)
SERVICE
LINEAR PROJECTION AND FLATTEND PATCHES

Patch Embedding
SERVICE
LINEAR PROJECTION AND FLATTEND PATCHES

Patch Embedding
SERVICE
LINEAR PROJECTION AND FLATTEND PATCHES

Patch Embedding
Hình trên mô tả phần Linear Projection. Thực chất Linear Projection là
một lớp Dense với đầu vào là flattend vector của các patches, đầu ra
sẽ là embedding vector tương ứng với từng patch.
SERVICE
LINEAR PROJECTION AND FLATTEND PATCHES

Positional Embedding
Positional embedding trong mô hình ViT sẽ chứa thông tin về vị trí của
patch trong ảnh (spatial information)
SERVICE
LINEAR PROJECTION AND FLATTEND PATCHES

Positional Embedding
SERVICE
LINEAR PROJECTION AND FLATTEND PATCHES

Learnable (Class) Embedding


Learnable embedding giống với [CLS] token được sử dụng bởi BERT
SERVICE
LINEAR PROJECTION AND FLATTEND PATCHES

Learnable (Class) Embedding


SERVICE
TRANSFORMER ENCODER
SERVICE
TRANSFORMER ENCODER

Self Attention
Self attention layer là thành phần chính để tạo nên một block
trong Transformer Encoder.
SERVICE
TRANSFORMER ENCODER

Multi-head Attention

Multi-head Attention đơn giản là sự xếp chồng các lớp self


attention.
Ví dụ 1 lớp Multi-head Attention có l lớp self attention. Đầu ra
của mỗi lớp self attention có kích thước d x m thì đầu ra của
multi-head attention sẽ là (ld) x m
CLASSIFICATION HEAD

Classification Head
VISION TRANSFORMER
HOẠT ĐỘNG NHƯ THẾ NÀO?
VISION TRANSFORMER
HOẠT ĐỘNG NHƯ THẾ NÀO?

1. Chia một hình ảnh thành các phân vùng (patches).


2. Làm phẳng các phân vùng.
3. Tạo ra các vector nhúng tuyến tính có ít chiều hơn từ các phân vùng đã
làm phẳng.
4. Bổ sung các feature về vị trí vào vector nhúng
5. Đưa chuỗi này vào lớp encoder của transformer.
6. Train mô hình với các nhãn tương ứng (dữ liệu lớn, supervised).
7. Tinh chỉnh (fine-tuning) trên tập dữ liệu mục tiêu để phân loại hình ảnh.
2. SO SÁNH GIỮA
VIT VÀ CNN
TRAINING STRATEGIES

Để đạt được độ chính xác cao, quá trình training ViT gồm có 3 bước:
1. Pre-Training: Khởi tạo model và training trên tập Dataset A, Dataset A
thường là một tập dataset với kích thước lớn.
2. Fine-tuned: Sử dụng pretrained model ở bước 1, fine tune trên tập
dataset B. Dataset B là tập dataset mục tiêu mà ta cần model học tốt
trên nó.
3. Testing: Sau khi model được fine tune trên tập training của dataset B nó
sẽ được đánh giá trên tập Test của dataset B. Các thông số đánh giá ở
bước này sẽ thể hiện performance của model.
TRAINING STRATEGIES
TRAINING STRATEGIES
CLASSIFICATION
ACCURACIES
CLASSIFICATION
ACCURACIES

Pretrained on ImageNet (small), kết quả kém hơn ResNet


Pretrained on ImageNet - 21K (medium), độ chính xác của ViT đạt xấp xỉ
bằng ResNet
Pretrained on JFT (large), ViT đạt độ chính xác vượt trội hơn so với
ResNet
MỘT SỐ ĐIỂM KHÁC NHAU
CƠ BẢN CỦA VIT VÀ CNN

Giữa các layer trước và layer sau trong mạng deep learning, ViT giữ lại
được nhiều feature (như cách ta hình thể hóa các layer CNN) hơn so với
CNNs.
Khác với CNNs, ViT thu được các đặc điểm global từ các lớp shallow, tuy
nhiên, bài báo nói rằng những đặc điểm local thu được từ các layer trước
cũng rất quan trọng.
Các skip connections trong ViT có tác động quan trọng hơn cả trong
CNNs (ResNet) và ảnh hưởng đáng kể đến hiệu suất và sự tương đồng
của các feature.
MỘT SỐ ĐIỂM KHÁC NHAU
CƠ BẢN CỦA VIT VÀ CNN

ViT giữ lại nhiều thông tin về vị trí hơn so với ResNet.
ViT có thể học được các feature trung gian chất lượng cao với lượng dữ
liệu lớn.
Các feature của MLP-Mixer gần giống hơn với ViT hơn là với ResNet.
3. HUẤN LUYỆN MÔ
HÌNH VISION
TRANSFORMER
QUY TRÌNH HUẤN LUYỆN

VIT
Xây dựng dataset:
Thu thập và chuẩn bị dữ liệu: Một tập
dữ liệu ảnh phù hợp để huấn luyện
mô hình. Dữ liệu này có thể là các
tập dữ liệu công khai như ImageNet
hoặc CIFAR-10. Hoặc có thể là dữ
liệu tự tạo
Tiền xử lý dữ liệu: Như chia tập dữ
liệu thành các batch, thay đổi kích
thước ảnh, chuẩn hóa dữ liệu, và
các biến đổi dữ liệu khác.
QUY TRÌNH HUẤN LUYỆN

VIT
Xây dựng mô hình:
Xác định cấu trúc mô hình: Chọn một
kiến trúc ViT phù hợp với nhiệm vụ
của bạn, có thể là một trong các
phiên bản cơ bản như Base, Large,
hoặc Huge, hoặc có thể tạo ra một
kiến trúc tùy chỉnh.
Xây dựng đầy đủ các lớp cơ bản của
mô hình Vision Transformer: Flatten
Layer, Projection Layer, Positional
Layer, Encoder Layer, Transformer
Layer, Classification Layer
FEATURES
QUY TRÌNH HUẤN LUYỆN
Huấn luyện mô hình:
Chọn thuật toán tối ưu: Chọn
một thuật toán tối ưu hóa như
AdamW, SGD, hoặc các biến
thể của chúng để cập nhật
trọng số của mô hình.
QUY TRÌNH HUẤN LUYỆN

ViT
Đánh giá mô hình:
Sử dụng tập dữ liệu kiểm tra
hoặc tập dữ liệu validation để
đánh giá hiệu suất của mô
hình.
Dựa vào thông số accurracy
sau khi train xong mô hình.
Lưu mô hình vào máy cục bộ.
Flatten Layer:

ViT
Ví dụ như trong hình bên với kích
thước của hình là (300, 300, 3)
Hình sẽ được chia thành các
patch với một tham số P được cho
ví dụ P=100)
Các patch được chia theo cách
sau: (300 *300)/ (100* 100) = 9
patch
Flatten Layer:

ViT
Việc thực hiện chia patch như thế
này được thực hiện trong chương
trình như sau:
Flatten Layer:

ViT
Việc chia patch đồng thời cũng reshape các patch lại thành 9 vector với mỗi vector có:
100 x 100 x3 = 30000 phần tử
Projection Layer:

ViT
Sau khi hoàn thành việc reshape, 9 vector sẽ được đưa vào projection layer
Thực chất Projection Layer là một lớp Dense với đầu vào là flattend vector của các
patches, đầu ra sẽ là embeding vector tương ứng với từng patch.
Projection Layer:
Quá trình sinh ra embedding vector được mô tả

ViT
trong chương trình như sau:

Embedding vector sinh ra sẽ có số chiều là 768


(Sử dụng ViTBase)
Positional Encoding:

ViT
Ma trận Epos chứa thông tin vị trí của patch trong ảnh
Chương trình mô tả quá trình trên:

ViT
Transformer encoder:

ViT
Transformer Encoder:

ViT
Classification Layer:

ViT
Vector đầu tiên là vector chứa tất cả các thông tin của vùng ảnh xung quanh
Sử dụng vector đầu tiên để phân lớp
Chương trình mô tả Classification Layer:

ViT
Đánh giá kết quả sau khi train:

ViT
Lưu model vào trong thư mục output:

ViT
4. ỨNG DỤNG CỦA
VISION
TRANSFORMER
1. Image classification: CNN hiện tại là mô hình tiên tiến nhất cho bài toán
này. ViT không hiệu quả hơn so với CNN trên những tập data vừa và
nhỏ, tuy nhiên với những tập data lớn, ViT lại có hiệu quả lớn hơn

VIT
2. Image captioning: Với sự xuất hiện của vision transformer, thay vì gắn các
nhãn cố định cho hình ảnh, ta có thể tạo ra một chú thích cho cả hình ảnh
3. Image segmentation: DPT (DensePredictionTransformers) là một mô hình segment
ảnh được công bố vào 03-2021 bởi Intel, áp dụng vision transformer. Cho bài toán
segment hình ảnh, nó đạt được 49.02% mIoU trên tập ADE20K. DPT cũng hiệu quả
hơn 28% trên bài toán ước lượng chiều sâu depth estimation so với mô hình CNN hiện

VIT
đại nhất.
4. Anomaly detection: Sử dụng kiến trúc transformer giúp lưu giữ lại các thuộc tính
về vị trí, nhờ đó, một mạng Guassian mixture density có thể được sử dụng để tìm ra
tọa độ các bất thường.

VIT
KẾT LUẬN
ƯU ĐIỂM

VIT
Xử lý linh hoạt với các đầu vào đa
Cơ chế tự chú ý (self-attention) có
dạng: ViTs có thể xử lý các ảnh Thời gian huấn luyện của
thể mang lại nhận thức sâu hơn
với kích thước và độ phân giải Transformer nhanh hơn so với
cho mô hình. Rất khó hiểu được
khác nhau mà không cần sự tiền CNNs. So sánh theo hiệu suất tính
các điểm yếu của mô hình CNNs,
xử lý như độ phân giải và cắt toán và độ chính xác, Transformers
nhưng attention maps có thể được
ghép. Điều này làm cho chúng linh có thể được lựa chọn nếu thời gian
trực quan hóa và giúp tìm ra cách
hoạt hơn trong việc xử lý các dữ huấn luyện mô hình bị giới hạn.
cải tiến mô hình. Quá trình này khó
liệu đa dạng từ nhiều nguồn khác
hơn đối với các mô hình CNNs.
nhau.
NHƯỢC ĐIỂM

VIT
Chi phí tính toán cao.
Đối phó với ảnh lớn: Trong một số trường hợp, ViTs có thể gặp khó khăn khi đối phó với các ảnh có độ
phân giải cao hoặc kích thước lớn. Việc xử lý các ảnh lớn có thể gây ra vấn đề về bộ nhớ và tính toán.
Khả năng tổng quát hóa: Mặc dù ViTs đã đạt được kết quả tốt trên nhiều tập dữ liệu, nhưng khả năng tổng
quát hóa của chúng vẫn còn là một vấn đề. Các mô hình có thể gặp khó khăn trong việc tổng quát hóa từ
một tập dữ liệu đến các tập dữ liệu mới hoặc không quen thuộc.
Yêu cầu dữ liệu lớn: ViTs thường yêu cầu lượng dữ liệu lớn để đạt được hiệu suất tốt nhất. Điều này có thể
là một hạn chế trong các ứng dụng thực tế khi dữ liệu có sẵn là hạn chế.
Tính phức tạp của huấn luyện: Huấn luyện Vision Transformers có thể đòi hỏi các tài nguyên tính toán và
thời gian lớn, đặc biệt là trên các tập dữ liệu lớn.
THANK YOU

You might also like