14 điểm bởi xguru 2024-04-17 | 1 bình luận | Chia sẻ qua WhatsApp
  • Vision Transformers (ViTs) là một lớp mô hình học sâu đạt hiệu năng hàng đầu trong các tác vụ phân loại ảnh
  • Áp dụng kiến trúc transformer vốn được thiết kế cho xử lý ngôn ngữ tự nhiên (NLP) vào dữ liệu hình ảnh
  • Hướng dẫn này sử dụng hình minh họa và các giải thích đơn giản để giúp hiểu cách những mô hình này hoạt động, cũng như luồng dữ liệu trông như thế nào khi đi qua mô hình

Nội dung chính

  • Chia ảnh thành các patch có cùng kích thước p x p
  • Vector mã hóa của mỗi patch có kích thước cố định d
  • Phần còn lại là một mảng có kích thước n x d (n là số patch của ảnh, d là kích thước embedding của patch)
  • Để huấn luyện mô hình hiệu quả, mở rộng mảng embedding patch bằng một vector bổ sung gọi là token phân loại (token cls)
  • Vì không có thông tin vị trí, thêm các vector embedding vị trí được khởi tạo ngẫu nhiên
  • Sau khi thêm các vector embedding vị trí, đưa mảng có kích thước (n+1) x d vào làm đầu vào cho transformer
  • Bên trong transformer
    • 10.1 Các vector embedding patch đầu vào của transformer được nhúng tuyến tính thành nhiều vector lớn hơn: Q - vector truy vấn, K - vector khóa, V - vector giá trị
    • 10.2 Nhân tất cả các vector truy vấn Q với tất cả các vector khóa K để tính điểm attention A
    • 10.3 Sau khi có ma trận điểm attention A, áp dụng hàm softmax cho mọi hàng để tổng của mỗi hàng bằng 1
    • 10.4 Để tính thông tin ngữ cảnh tổng hợp cho vector embedding patch đầu tiên, tập trung vào hàng đầu tiên của ma trận attention và dùng các phần tử trong đó làm trọng số cho vector giá trị V
    • 10.5 Bây giờ lặp lại quy trình này cho mọi hàng của ma trận điểm attention để tạo ra N+1 vector thông tin ngữ cảnh tổng hợp (một cho mỗi patch + một cho token phân loại); bước này hoàn tất attention head đầu tiên
    • 10.6 Vì đang xử lý multi-head attention, lặp lại toàn bộ quy trình từ bước 10.1 - 10.5 bằng cách dùng ánh xạ QKV khác
    • 10.7 Bước cuối của lớp attention. Các head được ghép lại với nhau và ánh xạ thành một vector có kích thước d, giống với embedding patch
    • 10.8 Ở các bước trước, lớp attention đã hoàn tất và còn lại cùng số lượng embedding với kích thước hoàn toàn giống đầu vào
    • 10.9 Transformer sử dụng nhiều kết nối tắt (Residual Connection), nghĩa là đơn giản cộng đầu vào của lớp trước vào đầu ra của lớp hiện tại
    • 10.10 Kết quả của kết nối tắt (phép cộng) tạo ra vector có cùng kích thước
    • 10.11 Đầu ra này đi qua một mạng nơ-ron feed-forward với hàm kích hoạt phi tuyến
    • 10.12 Sau bước transformer còn có thêm một kết nối tắt nữa nhưng được lược bỏ ở đây. Như vậy một lớp transformer đã hoàn tất. Kết quả là transformer tạo ra đầu ra có cùng kích thước với đầu vào
  • Sau đó lặp lại toàn bộ các bước tính toán của transformer từ 10.1 - 10.12 nhiều lần (ví dụ: 6 lần)
  • Bước cuối là xác định đầu ra của token phân loại. Vector này sẽ được dùng ở giai đoạn cuối của Vision Transformer
  • Ở bước cuối cùng, dùng token đầu ra phân loại này cùng một mạng nơ-ron fully connected khác để dự đoán xác suất phân loại của ảnh đầu vào
  • Vision Transformer được huấn luyện bằng hàm mất mát cross-entropy tiêu chuẩn, so sánh xác suất lớp được dự đoán với nhãn lớp thực tế
    • Mô hình được huấn luyện bằng lan truyền ngược và gradient descent, cập nhật các tham số của mô hình để cực tiểu hóa hàm mất mát

1 bình luận

 
ninebow 2024-04-22

Tôi thấy bài viết được giới thiệu rất hay nên nghĩ rằng sẽ tốt hơn nếu có phần giải thích kèm hình ảnh, vì vậy tôi đã xin phép tác giả và dịch nguyên văn bài viết: