Swin Transformer
Khám phá cách kiến trúc Swin Transformer sử dụng các cửa sổ dịch chuyển (shifted windows) để đạt hiệu suất thị giác máy tính cao, và tìm hiểu các quy trình làm việc trên Ultralytics Platform.
Được giới thiệu bởi các nhà nghiên cứu tại Microsoft trong bài báo mang tính bước ngoặt năm 2021 "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows", kiến trúc deep learning (DL) này điều chỉnh attention mechanism để xử lý sự phức tạp của dữ liệu hình ảnh độ phân giải cao. Khác với các mô hình natural language processing xử lý các token văn bản có độ dài đồng nhất, kiến trúc này thừa nhận rằng các yếu tố hình ảnh thay đổi đáng kể về quy mô. Bằng cách xây dựng một biểu diễn phân cấp và sử dụng kỹ thuật cửa sổ độc đáo, nó đạt được linear computational complexity tương ứng với kích thước hình ảnh, biến nó thành một backbone hiệu quả cao cho nhiều tác vụ computer vision (CV).
Link to this sectionCách hoạt động của Shifted Windows và thiết kế phân cấp#
Sự đổi mới chính nằm ở cách mô hình cấu trúc feature extraction. Nó bắt đầu bằng cách chia hình ảnh đầu vào thành các bản vá (patch) nhỏ, không chồng lấp. Tuy nhiên, không giống như các mô hình trước đó, nó hợp nhất dần dần các bản vá lân cận này thành các vùng lớn hơn ở các lớp sâu hơn. Cách tiếp cận phân cấp này cho phép mạng trích xuất các feature maps phong phú đại diện cho ngữ cảnh toàn cục ở nhiều quy mô khác nhau, từ các chi tiết hình ảnh nhỏ đến các đối tượng lớn.
Để duy trì hiệu suất tính toán, self-attention chỉ được tính toán trong các cửa sổ cục bộ, biệt lập thay vì trên toàn bộ hình ảnh. Để đảm bảo thông tin truyền qua các ranh giới này, các cửa sổ được "dịch chuyển" giữa các lớp kế tiếp. Cơ chế cửa sổ dịch chuyển này kết nối hiệu quả các khu vực độc lập, cung cấp multi-scale spatial hierarchies toàn diện mà không gây ra gánh nặng tính toán lớn liên quan đến global attention.
Link to this sectionSwin Transformer so với Vision Transformer (ViT)#
Khi so sánh các kiến trúc hiện đại, điều quan trọng là phải phân biệt mô hình này với Vision Transformer (ViT) tiêu chuẩn. ViT ban đầu xử lý hình ảnh như một chuỗi các bản vá có kích thước cố định và tính toán global attention trên tất cả chúng cùng một lúc. Mặc dù có độ chính xác cao, điều này dẫn đến quadratic computational complexity, nghĩa là thời gian xử lý và yêu cầu bộ nhớ tăng vọt khi độ phân giải hình ảnh tăng lên.
Ngược lại, thiết kế dựa trên cửa sổ và phân cấp của kiến trúc Swin giữ cho độ phức tạp ở mức tuyến tính. Điều này làm cho nó trở nên thực tiễn hơn nhiều cho các tác vụ dự đoán dày đặc đòi hỏi đầu vào và đầu ra độ phân giải cao. Do đó, nó đạt được kết quả hiện đại trên các benchmark như COCO test-dev dataset cho object detection đa quy mô và ADE20K semantic segmentation dataset cho image segmentation chính xác.
Link to this sectionCác ứng dụng thực tế trong AI hiện đại#
Nhờ tính linh hoạt và hiệu quả, triển khai trong Microsoft Research GitHub repository chính thức đã được điều chỉnh trên các ngành công nghiệp phức tạp, đòi hỏi cao.
- Medical Image Analysis: Trong các môi trường lâm sàng, các mạng như Swin-Unet tận dụng kiến trúc này cho volumetric 3D MRI scans và phân tích mô bệnh học độ phân giải cao. Khả năng giữ lại các phân cấp không gian dày đặc của mô hình giúp xác định các bất thường nhỏ như khối u giai đoạn đầu. Bạn có thể đọc thêm về những đột phá gần đây trong medical imaging research.
- Satellite Image Analysis: Đối với environmental monitoring and remote sensing, việc nắm bắt ngữ cảnh địa lý quy mô lớn là rất quan trọng. Cấu trúc phân cấp xử lý hiệu quả các tập dữ liệu trên không khổng lồ để theo dõi nạn phá rừng, quy hoạch đô thị và giám sát sức khỏe cây trồng.
Link to this sectionTích hợp với PyTorch và Ultralytics#
Đối với các nhà phát triển đang xây dựng mạng thần kinh tùy chỉnh, việc triển khai kiến trúc này rất đơn giản khi sử dụng official PyTorch documentation. Thư viện torchvision library bao gồm các phiên bản tiền huấn luyện, chẳng hạn như biến thể Tiny nhẹ, được tối ưu hóa trên ImageNet.
import torch
from torchvision.models import Swin_T_Weights, swin_t
# Load a pre-trained Tiny variant with ImageNet weights
weights = Swin_T_Weights.IMAGENET1K_V1
model = swin_t(weights=weights)
model.eval()
# Run a single batch containing a 3-channel, 224x224 dummy image tensor
dummy_image = torch.randn(1, 3, 224, 224)
output = model(dummy_image)
# The output shape is [1, 1000], representing the 1000 ImageNet classes
print(f"Prediction tensor shape: {output.shape}")Trong khi các backbone dựa trên transformer cung cấp biểu diễn đa quy mô tuyệt vời, các ứng dụng hiện đại thường đòi hỏi sự tối ưu hóa end-to-end thuần túy cho edge AI devices. Ví dụ, Ultralytics YOLO26 cung cấp một kiến trúc end-to-end tự nhiên, nhỏ hơn, nhanh hơn và có độ chính xác cao ngay từ khi sử dụng, vượt trội trong các môi trường edge thời gian thực. Cho dù sử dụng các kiến trúc nặng về transformer hay các mô hình convolutional nhanh, các nhà phát triển có thể quản lý toàn bộ quy trình làm việc của mình—từ chú thích dữ liệu đến đào tạo—thông qua Ultralytics Platform. Chuỗi công cụ đám mây toàn diện này làm cho model deployment và model monitoring liên tục trở nên đơn giản và hiệu quả.






