Vision Transformer (ViT)
Khám phá sức mạnh của Vision Transformers (ViT). Tìm hiểu cách self-attention và patch tokenization cách mạng hóa thị giác máy tính vượt ra ngoài CNN với Ultralytics.
Vision Transformer (ViT) là một kiến trúc deep learning áp dụng cơ chế self-attention vốn được thiết kế ban đầu cho Natural Language Processing (NLP) để giải quyết các tác vụ thị giác. Khác với Convolutional Neural Network (CNN) truyền thống vốn xử lý hình ảnh thông qua hệ thống phân cấp các lưới pixel cục bộ, ViT đối xử với hình ảnh như một chuỗi các bản vá (patch) rời rạc. Cách tiếp cận này trở nên phổ biến nhờ bài báo nghiên cứu mang tính bước ngoặt "An Image is Worth 16x16 Words", chứng minh rằng các kiến trúc transformer thuần túy có thể đạt hiệu năng tối tân trong computer vision (CV) mà không cần dựa vào các lớp convolution. Bằng cách tận dụng global attention, ViT có thể nắm bắt các mối phụ thuộc tầm xa trên toàn bộ hình ảnh ngay từ lớp đầu tiên.
Vision Transformers hoạt động như thế nào#
Cốt lõi đổi mới của ViT nằm ở cách nó cấu trúc dữ liệu đầu vào. Để làm cho hình ảnh tương thích với một Transformer tiêu chuẩn, mô hình chia nhỏ thông tin hình ảnh thành một chuỗi các vector, mô phỏng cách một ngôn ngữ mô hình xử lý một câu từ.
-
Patch Tokenization: Hình ảnh đầu vào được chia thành một lưới các ô vuông có kích thước cố định, thường là 16x16 pixel. Mỗi ô vuông được làm phẳng thành một vector, qua đó trở thành một token thị giác.
-
Linear Projection: Các patch đã được làm phẳng này được chuyển qua một lớp tuyến tính có thể huấn luyện để tạo ra các embeddings dày đặc. Bước này ánh xạ các giá trị pixel thô thành một không gian nhiều chiều mà mô hình có thể xử lý.
-
Positional Encoding: Vì kiến trúc xử lý các chuỗi song song và thiếu sự hiểu biết vốn có về thứ tự hoặc không gian, các positional encodings có thể học được được thêm vào các patch embedding. Điều này cho phép mô hình giữ lại thông tin không gian về vị trí của mỗi patch thuộc về đâu trong ảnh gốc.
-
Self-Attention Mechanism: Chuỗi đi vào bộ mã hóa Transformer, nơi self-attention cho phép mọi patch tương tác với mọi patch khác cùng một lúc. Điều này cho phép mạng học bối cảnh toàn cục, hiểu cách một pixel ở góc trên bên trái liên quan đến pixel ở góc dưới bên phải.
-
Classification Head: Đối với các tác vụ như image classification, một "class token" đặc biệt thường được thêm vào trước chuỗi. Trạng thái đầu ra cuối cùng của token này đóng vai trò là đại diện tổng hợp của hình ảnh, sau đó được đưa vào một bộ phân loại, chẳng hạn như multilayer perceptron (MLP).
Vision Transformers so với CNNs#
Mặc dù cả hai kiến trúc đều nhằm mục đích hiểu dữ liệu trực quan, chúng khác biệt đáng kể về triết lý vận hành. CNN sở hữu "inductive bias" mạnh mẽ được gọi là tính bất biến dịch chuyển (translation invariance), có nghĩa là chúng vốn cho rằng các tính năng cục bộ (như cạnh và kết cấu) quan trọng bất kể vị trí của chúng. Điều này làm cho CNN có hiệu quả cao về dữ liệu và hiệu quả trên các datasets nhỏ hơn.
Conversely, Vision Transformers have less image-specific bias. They must learn spatial relationships from scratch using massive amounts of training data, such as the JFT-300M or full ImageNet datasets. While this makes training more computationally intensive, it allows ViTs to scale remarkably well; with sufficient data and compute power, they can outperform CNNs by capturing complex global structures that local convolutions might miss.
Các ứng dụng trong thực tế#
Khả năng hiểu ngữ cảnh toàn cầu làm cho ViT đặc biệt hữu ích cho các môi trường phức tạp, có rủi ro cao.
- Medical Image Analysis: Trong healthcare AI, ViT được sử dụng để phân tích các bản quét độ phân giải cao như MRI hoặc các tiêu bản mô bệnh học. Ví dụ, trong tumor detection, ViT có thể tương quan các dị thường kết cấu tinh tế trong mô với các thay đổi cấu trúc rộng hơn trên toàn bộ tiêu bản, xác định các mẫu ác tính mà quá trình xử lý cục bộ có thể bỏ sót.
- Satellite Imagery and Remote Sensing: ViT xuất sắc trong satellite image analysis nơi các mối quan hệ giữa các đối tượng trải dài trên khoảng cách lớn. Ví dụ, việc kết nối một vị trí phá rừng với một con đường khai thác gỗ từ xa đòi hỏi phải hiểu "bức tranh lớn" về một cảnh quan, một nhiệm vụ mà global attention của ViT vượt trội hơn trường tiếp nhận hạn chế của CNN tiêu chuẩn.
Sử dụng Transformers với Ultralytics#
Thư viện ultralytics hỗ trợ các kiến trúc dựa trên Transformer, đáng chú ý nhất là RT-DETR (Real-Time Detection Transformer). Trong khi YOLO26 hàng đầu thường được ưa chuộng vì sự cân bằng giữa tốc độ và độ chính xác trên các thiết bị biên, RT-DETR cung cấp một giải pháp thay thế mạnh mẽ cho các kịch bản ưu tiên bối cảnh toàn cục.
Ví dụ Python sau đây minh họa cách tải một mô hình dựa trên Transformer đã được huấn luyện trước và chạy suy luận:
from ultralytics import RTDETR
# Load a pre-trained RT-DETR model (Vision Transformer-based)
model = RTDETR("rtdetr-l.pt")
# Run inference on an image source
# The model uses self-attention to detect objects globally
results = model("https://ultralytics.com/images/bus.jpg")
# Display the detection results
results[0].show()Triển vọng tương lai#
Nghiên cứu đang phát triển nhanh chóng để giải quyết chi phí tính toán cao của ViT. Các kỹ thuật như FlashAttention đang làm cho các mô hình này nhanh hơn và tiết kiệm bộ nhớ hơn. Hơn nữa, các kiến trúc kết hợp kết hợp hiệu quả của CNN với attention của Transformer đang trở nên phổ biến. Đối với các nhóm muốn quản lý các quy trình làm việc nâng cao này, Ultralytics Platform cung cấp một môi trường thống nhất để chú thích dữ liệu, huấn luyện các mô hình phức tạp qua đám mây và triển khai chúng đến các điểm cuối khác nhau.






