Vision Transformer (ViT)
Khám phá sức mạnh của Vision Transformer (ViT) trong thị giác máy tính. Tìm hiểu cách chúng vượt trội hơn CNN bằng cách nắm bắt ngữ cảnh hình ảnh toàn cục.
Vision Transformer (ViT) là một loại kiến trúc mạng nơ-ron áp dụng mô hình Transformer rất thành công, ban đầu được thiết kế cho xử lý ngôn ngữ tự nhiên (NLP), vào các tác vụ thị giác máy tính (CV). Được giới thiệu bởi các nhà nghiên cứu của Google trong bài báo "An Image is Worth 16x16 Words", ViT đại diện cho một sự khác biệt đáng kể so với các kiến trúc Mạng nơ-ron tích chập (CNN) chiếm ưu thế. Thay vì xử lý hình ảnh bằng các bộ lọc trượt, ViT coi một hình ảnh là một chuỗi các bản vá, cho phép nó nắm bắt các mối quan hệ toàn cầu giữa các phần khác nhau của một hình ảnh bằng cách sử dụng cơ chế tự chú ý.
Cách Vision Transformer hoạt động
Ý tưởng cốt lõi đằng sau ViT là xử lý một hình ảnh theo cách mô phỏng cách Transformers xử lý văn bản. Quá trình này bao gồm một vài bước chính:
- Chia Ảnh Thành Mảnh: Hình ảnh đầu vào trước tiên được chia thành một lưới các mảnh có kích thước cố định, không chồng chéo. Ví dụ: một hình ảnh 224x224 pixel có thể được chia thành 196 mảnh, mỗi mảnh 16x16 pixel.
- Nhúng Patch (Patch Embedding): Mỗi patch được làm phẳng thành một vectơ duy nhất. Các vectơ này sau đó được chiếu vào một không gian chiều thấp hơn để tạo ra "nhúng patch". Một "nhúng vị trí" có thể học được được thêm vào mỗi nhúng patch để giữ lại thông tin không gian.
- Bộ mã hóa Transformer: Chuỗi embedding này được đưa vào một bộ mã hóa Transformer tiêu chuẩn. Thông qua các lớp tự chú ý, mô hình học các mối quan hệ giữa tất cả các cặp vùng ảnh (patch), cho phép nó nắm bắt ngữ cảnh toàn cục trên toàn bộ hình ảnh ngay từ lớp đầu tiên.
- Classification Head (Đầu phân loại): Đối với các tác vụ như phân loại ảnh, một embedding có thể học được bổ sung (tương tự như token [CLS] trong BERT) được thêm vào chuỗi. Đầu ra tương ứng từ Transformer được chuyển đến một lớp phân loại cuối cùng để đưa ra dự đoán.
ViT so với CNN
Mặc dù cả ViT và CNN đều là kiến trúc nền tảng trong thị giác máy tính (computer vision), nhưng chúng khác nhau đáng kể về cách tiếp cận:
- Độ lệch quy nạp (Inductive Bias): CNN sở hữu độ lệch quy nạp mạnh (các giả định về dữ liệu) như tính cục bộ và tính tương đương tịnh tiến thông qua các lớp tích chập (convolution) và gộp (pooling). ViT có độ lệch quy nạp yếu hơn nhiều, khiến chúng linh hoạt hơn nhưng cũng phụ thuộc nhiều hơn vào việc học các mẫu trực tiếp từ dữ liệu.
- Sự phụ thuộc vào dữ liệu (Data Dependency): Do các thiên kiến yếu hơn, ViT thường yêu cầu các tập dữ liệu lớn (ví dụ: ImageNet-21k) hoặc huấn luyện trước mở rộng để vượt trội hơn CNN hiện đại. Với các tập dữ liệu nhỏ hơn, CNN thường khái quát hóa tốt hơn. Đây là lý do tại sao học chuyển giao (transfer learning) rất quan trọng đối với ViT.
- Ngữ cảnh Toàn cục so với Cục bộ: CNN xây dựng các đặc trưng phân cấp từ các mẫu cục bộ đến các mẫu toàn cục. Ngược lại, ViTs có thể mô hình hóa các tương tác toàn cục giữa các vùng (patch) từ các lớp sớm nhất, có khả năng nắm bắt ngữ cảnh rộng hơn một cách hiệu quả hơn cho một số tác vụ nhất định.
- Chi phí tính toán: Việc huấn luyện ViT có thể tốn kém về mặt tính toán, thường đòi hỏi tài nguyên GPU đáng kể. Các framework như PyTorch và TensorFlow cung cấp các triển khai để huấn luyện các mô hình này.
Các ứng dụng và Mô hình Hybrid
ViTs đã thể hiện hiệu suất vượt trội trong nhiều ứng dụng khác nhau, đặc biệt là những nơi mà việc hiểu ngữ cảnh toàn cục là chìa khóa.
- Phân tích ảnh y tế: ViT có hiệu quả cao trong việc phân tích ảnh chụp y tế như MRI hoặc ảnh mô bệnh học. Ví dụ: trong phát hiện khối u, ViT có thể xác định các mối quan hệ giữa các mô ở xa, giúp phân loại khối u chính xác hơn so với các mô hình chỉ tập trung vào kết cấu cục bộ.
- Lái xe tự hành: Trong xe tự lái, ViT có thể phân tích các cảnh phức tạp để phát hiện đối tượng và phân đoạn. Bằng cách xử lý toàn bộ cảnh một cách toàn cầu, chúng có thể hiểu rõ hơn về các tương tác giữa các phương tiện, người đi bộ và cơ sở hạ tầng, như được trình bày chi tiết bởi nhiều nghiên cứu về AI ô tô.
Sự thành công của ViT cũng đã truyền cảm hứng cho các kiến trúc hybrid. Các mô hình như RT-DETR kết hợp backbone CNN để trích xuất đặc trưng hiệu quả với bộ mã hóa-giải mã dựa trên Transformer để mô hình hóa các mối quan hệ đối tượng. Cách tiếp cận này nhằm mục đích đạt được những điều tốt nhất của cả hai thế giới: hiệu quả của CNN và nhận thức ngữ cảnh toàn cầu của Transformer.
Đối với nhiều ứng dụng thời gian thực, đặc biệt là trên các thiết bị biên bị hạn chế về tài nguyên, các mô hình dựa trên CNN được tối ưu hóa cao như họ Ultralytics YOLO (ví dụ: YOLOv8 và YOLO11) thường cung cấp sự cân bằng tốt hơn giữa tốc độ và độ chính xác. Bạn có thể xem so sánh chi tiết giữa RT-DETR và YOLO11 để hiểu các đánh đổi. Việc lựa chọn giữa ViT và CNN cuối cùng phụ thuộc vào nhiệm vụ cụ thể, dữ liệu có sẵn và ngân sách tính toán.