Tác giả: Trịnh Quang Tin
Trong hơn một thập kỷ, Convolutional Neural Networks (CNN) đã đóng vai trò chủ đạo trong các hệ thống nhận diện ảnh. Từ LeNet-5 đến ResNet, CNN đã không ngừng phát triển và mang lại những thành tựu vượt bậc cho thị giác máy tính (Computer Vision). Tuy nhiên, vào năm 2020, một nghiên cứu mang tính đột phá mang tên Vision Transformer (ViT) đã tạo nên một làn sóng mới: thay vì sử dụng tích chập, ViT áp dụng Transformer – kiến trúc nổi tiếng trong xử lý ngôn ngữ tự nhiên (NLP) – để xử lý ảnh.
Việc sử dụng Transformer trong lĩnh vực thị giác máy tính ban đầu có vẻ lạ lẫm, nhưng chính sự đột phá này đã mang đến hiệu quả vượt trội, đặc biệt là khi mô hình được huấn luyện trên quy mô dữ liệu lớn. Trong bài viết này, chúng ta sẽ cùng tìm hiểu cách hoạt động của ViT và lý do tại sao nó được xem là một bước tiến lớn trong xử lý ảnh.
Thay vì xem ảnh là một khối dữ liệu 2D như trong CNN, Vision Transformer xử lý ảnh giống như một chuỗi (sequence), tương tự như các chuỗi văn bản trong NLP.
Chia ảnh thành các patch
Hình ảnh đầu vào được chia thành nhiều mảnh nhỏ, thường là các patch có kích thước cố định (ví dụ: 16×16 pixel). Mỗi patch sau đó được "trải phẳng" (flatten) và ánh xạ thành một vector đặc trưng (embedding).
Thêm thông tin vị trí (positional encoding)
Vì Transformer không có cơ chế nhận diện vị trí như CNN, nên ViT thêm vào mỗi patch một vector gọi là positional encoding để mô hình có thể nhận biết vị trí không gian của từng patch.
Áp dụng Transformer Encoder
Dãy các vector patch được đưa vào nhiều lớp Transformer Encoder. Ở đây, Self-Attention sẽ học mối quan hệ giữa các vùng khác nhau trong ảnh. Nhờ đó, ViT có thể nắm bắt các đặc trưng toàn cục (global features) một cách trực tiếp, thay vì tích lũy dần như CNN.
Lớp phân loại (Classification head)
Tương tự như BERT dùng một token đặc biệt [CLS] cho phân loại văn bản, ViT cũng thêm một token học được vào chuỗi. Kết quả từ token này sau các lớp Transformer sẽ được dùng cho phân loại ảnh.
Mô hình hóa quan hệ toàn cục tốt hơn: Self-Attention giúp ViT nhìn toàn bộ ảnh ngay từ đầu, thay vì chỉ dựa vào vùng cục bộ như CNN.
Khả năng mở rộng tốt: Khi được huấn luyện trên tập dữ liệu lớn như JFT-300M hoặc ImageNet-21k, ViT vượt qua nhiều mô hình CNN hiện đại như ResNet hoặc EfficientNet.
Kiến trúc đơn giản và linh hoạt: Không cần thiết kế phức tạp như CNN, ViT chỉ cần chia patch và áp dụng Transformer Encoder.
Yêu cầu dữ liệu lớn để huấn luyện: ViT không hoạt động tốt khi được huấn luyện từ đầu trên bộ dữ liệu nhỏ như ImageNet (1.2 triệu ảnh), trừ khi có tiền huấn luyện (pretraining).
Thiếu inductive bias về không gian: CNN có tính cục bộ và tịnh tiến, giúp học nhanh hơn trong môi trường hình ảnh. ViT ban đầu không có ưu điểm này.
Vision Transformer đánh dấu một bước ngoặt trong thị giác máy tính: từ mạng tích chập (CNN) chuyển sang mạng dựa trên attention (Transformer). Mặc dù còn nhiều thách thức trong việc huấn luyện hiệu quả và tối ưu hóa với dữ liệu nhỏ, ViT đã chứng minh rằng kiến trúc không tích chập cũng có thể đạt hiệu quả vượt trội.
ViT không chỉ mở rộng ứng dụng của Transformer, mà còn khơi gợi một làn sóng nghiên cứu mới: kết
» Tin mới nhất:
» Các tin khác: