Chuyển đến nội dung chính

Vision Mamba là gì? Kiến trúc, State Space Models và so sánh với Vision Transformer

Computer Vision · Deep Learning · Mamba

Vision Mamba (Vim) thay cơ chế self-attention toàn cục bằng các khối Mamba quét chuỗi patch ảnh theo hai hướng. Bài viết giải thích nguyên lý SSM, luồng xử lý ảnh, sự khác biệt với ViT và VMamba, cùng những giới hạn khi đánh giá hiệu năng.

Chủ đề: AI, Computer Vision, Mamba, Vision Transformer · Thời gian đọc: khoảng 9 phút

Sơ đồ khái niệm luồng xử lý trong Vim; đã giản lược các lớp chiếu tuyến tính, tích chập, cổng điều khiển và residual.

1. Vision Mamba là gì?

Vision Mamba (Vim) là kiến trúc học biểu diễn thị giác sử dụng Bidirectional State Space Models để xử lý chuỗi patch ảnh. Công trình Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model của Lianghui Zhu và cộng sự được công bố tại ICML 2024.

Hiểu ngắn gọn: ViT hỏi “mỗi patch nên chú ý đến patch nào?”, còn Vim truyền ngữ cảnh qua trạng thái ẩn được cập nhật dọc chuỗi patch. Cách truyền thông tin khác nhau dẫn đến các đánh đổi khác nhau về độ phức tạp và năng lực biểu diễn.

Tương tự Vision Transformer (ViT), Vim chia ảnh thành những patch, biến chúng thành token và bổ sung thông tin vị trí. Điểm khác biệt là Vim sử dụng các khối Mamba hai chiều thay cho Self-Attention để truyền và tổng hợp thông tin trên chuỗi token.

Ý chính: Vision Mamba không cần tạo ma trận Attention giữa mọi cặp patch. Phần Selective Scan có chi phí tăng tuyến tính theo số token khi kích thước mô hình cố định, tạo tiềm năng tốt cho ảnh có độ phân giải cao.

2. Tại sao cần một hướng đi ngoài Vision Transformer?

Trong Transformer với Self-Attention toàn cục, mỗi token có thể tương tác trực tiếp với mọi token khác. Với chuỗi N token, ma trận Attention có kích thước N × N.

Attention(Q, K, V) = softmax(QKᵀ / √dk)V

Với patch 16 × 16 và bỏ qua token đặc biệt, ảnh 224 × 224 tạo 196 token; ảnh 1024 × 1024 tạo 4.096 token. Số phần tử của một ma trận attention tăng tương ứng từ 38.416 lên 16.777.216, tức khoảng 437 lần. Đây là minh họa cho độ lớn của ma trận, không phải phép đo trực tiếp thời gian chạy hay VRAM.

Những tối ưu như FlashAttention có thể giảm bộ nhớ trung gian đáng kể, nhưng chi phí tính toán Attention toàn cục vẫn tăng theo bậc hai của chiều dài chuỗi. Đây là động lực để khám phá các mô hình tuần tự như Mamba.

3. State Space Models và Mamba hoạt động thế nào?

3.1. State Space Models (SSM)

SSM mô tả một hệ động lực thông qua trạng thái ẩn h, đầu vào x và đầu ra y. Dạng rời rạc đơn giản của hệ tuyến tính là:

Trong công thức bên dưới, ht là trạng thái tại bước t, xt là đầu vào, còn yt là đầu ra. Các ma trận có gạch ngang biểu diễn tham số đã rời rạc hóa. Đây là mô hình minh họa đơn giản, chưa thể hiện trọn vẹn cơ chế chọn lọc của Mamba.

ht = Āht−1 + B̄xt
yt = Cht + Dxt

Thay vì so sánh mọi token với nhau, SSM cập nhật một trạng thái ẩn để tổng hợp thông tin đã đi qua. Cách tiếp cận này phù hợp với việc xử lý chuỗi dài.

3.2. Mamba và Selective Scan

Mamba của Albert Gu và Tri Dao đưa vào cơ chế lựa chọn phụ thuộc đầu vào. Một số tham số như B, C và bước rời rạc hóa Δ được điều chỉnh dựa trên token hiện tại, giúp mô hình học cách giữ lại hoặc làm suy giảm thông tin.

Thuật toán hardware-aware selective scan được thiết kế để thực thi hiệu quả trên GPU. Khi các kích thước trạng thái và đặc trưng được giữ cố định, thành phần scan có chi phí tuyến tính theo độ dài chuỗi.

4. Kiến trúc Vision Mamba: Từ ảnh đến biểu diễn hai chiều

4.1. Patch Embedding

Với ảnh có chiều cao H, chiều rộng W và patch kích thước P × P (giả sử H và W chia hết cho P), số patch là:

N = HW / P²

Mỗi patch được ánh xạ thành một vector có D chiều, tạo chuỗi X ∈ ℝN×D.

4.2. Positional Embedding

Vì việc biến ảnh 2D thành chuỗi 1D có thể làm yếu thông tin về vị trí, Vim cộng positional embedding vào chuỗi token để mô hình nhận biết thứ tự các patch.

4.3. Bidirectional Mamba Block

Mamba ban đầu được thiết kế để xử lý chuỗi theo một hướng. Nhưng khi nhận diện một vật thể, thông tin từ các vùng ảnh ở cả trước và sau vị trí đang xét đều quan trọng. Do đó, Vim dùng hai hướng quét:

  • Forward scan: xử lý chuỗi patch từ đầu đến cuối.
  • Backward scan: xử lý chuỗi patch theo chiều ngược lại.

Hai luồng thông tin được kết hợp trong khối mạng. Ngoài SSM, khối Vim thực tế còn có các phép chiếu tuyến tính, convolution cục bộ, normalization, gating và kết nối residual. Nhờ đó, mô hình vừa xử lý đặc trưng cục bộ vừa tổng hợp ngữ cảnh từ hai hướng.

Điều quan trọng là quét hai chiều trên chuỗi không đồng nghĩa mô hình giữ nguyên hoàn toàn cấu trúc hai chiều của ảnh. Thứ tự sắp xếp patch vẫn ảnh hưởng tới những quan hệ không gian mà mô hình cần học.

4.4. Luồng xử lý tổng quát

  1. Chia ảnh thành patch: chuyển ảnh 2D thành chuỗi token.
  2. Gắn thông tin vị trí: bổ sung positional embedding trước khi xử lý tuần tự.
  3. Quét hai chiều: mô hình thu nhận thông tin từ đầu đến cuối chuỗi và ngược lại.
  4. Kết hợp biểu diễn: dùng các lớp biến đổi và nhánh residual để tạo đặc trưng cho tác vụ đầu ra.

Ví dụ trực quan: khi một patch chứa một phần bánh xe, thông tin từ các patch ở trước và sau nó trong chuỗi có thể giúp mô hình nhận ra bối cảnh chiếc xe. Tuy nhiên, hai patch gần nhau trong chuỗi chưa chắc gần nhau trong không gian 2D.

5. So sánh Vision Transformer, Vision Mamba và VMamba

Vision Mamba (Vim) và VMamba không phải cùng một kiến trúc. VMamba là công trình riêng, sử dụng 2D Selective Scan (SS2D) để xây dựng các tuyến quét trên biểu diễn ảnh.

Trong VMamba, SS2D khai thác bốn tuyến quét để xử lý đặc trưng không gian. Bảng dưới đây đối chiếu ý tưởng cốt lõi, không nhằm xếp hạng mô hình nào luôn chính xác hoặc nhanh hơn.

Tiêu chíViTVision Mamba (Vim)VMamba
Cơ chếSelf-AttentionBidirectional SSM2D Selective Scan
Xử lý không gianTương tác token trực tiếpQuét chuỗi hai hướngNhiều tuyến quét trên đặc trưng 2D
Chi phí theo số tokenBậc hai với Attention toàn cụcTuyến tính cho Selective ScanTuyến tính cho SS2D
Điểm mạnhHọc tương tác trực tiếpTiềm năng tốt cho chuỗi dàiThiết kế sát cấu trúc không gian ảnh hơn
Công bốViT: ICLR 2021ICML 2024NeurIPS 2024

Độ phức tạp ở đây mô tả cơ chế xử lý token cốt lõi, không phải toàn bộ chi phí tính toán của cả mạng.

6. Kết quả thực nghiệm, ưu điểm và hạn chế

Nhóm tác giả Vim đánh giá mô hình trên ImageNet (phân loại ảnh), COCO (phát hiện đối tượng) và ADE20K (phân đoạn ngữ nghĩa). Theo bài báo, Vim cho kết quả cạnh tranh so với các baseline DeiT cùng thiết lập.

Theo bài báo gốc, trong phép thử batch inference để trích xuất đặc trưng ở độ phân giải 1248 × 1248, Vim đạt tốc độ cao hơn 2,8 lần và sử dụng ít hơn 86,8% bộ nhớ GPU so với DeiT theo cấu hình được nhóm tác giả báo cáo. Không nên áp dụng trực tiếp các tỷ lệ này cho mọi GPU, batch size, độ phân giải hoặc tác vụ. Xem công bố chính thức tại ICML 2024.

Ưu điểm

  • Tránh ma trận Self-Attention toàn cục kích thước N × N.
  • Khả năng mở rộng thuận lợi về mặt lý thuyết với chuỗi token dài.
  • Biểu diễn ngữ cảnh từ cả hai chiều quét.
  • Tiềm năng ứng dụng trong các bài toán hình ảnh độ phân giải cao.

Hạn chế

  • Việc làm phẳng ảnh thành chuỗi vẫn gây ra thách thức bảo toàn cấu trúc không gian.
  • Thông tin cần được tổng hợp qua trạng thái ẩn hữu hạn thay vì tương tác token trực tiếp như Attention.
  • Hiệu năng thực tế còn phụ thuộc GPU, batch size, kernel tối ưu và kiến trúc đầy đủ.
  • Không thể kết luận Mamba luôn vượt Transformer chỉ từ độ phức tạp lý thuyết.

7. Vision Mamba phù hợp với những ứng dụng nào?

Vim và các backbone dựa trên SSM là hướng đáng khảo sát khi chuỗi token dài: ảnh y tế, ảnh viễn thám, phân đoạn ảnh và phân tích video. Đây là các kịch bản tiềm năng, không phải cam kết rằng Vim đã tốt nhất cho từng lĩnh vực. Cần đánh giá trên bộ dữ liệu, độ phân giải, cấu hình phần cứng và tiêu chí đo cụ thể.

Một hướng nghiên cứu hứa hẹn là kết hợp Attention và State Space Models: tận dụng tương tác trực tiếp của Attention ở những vị trí cần thiết, đồng thời sử dụng scan để xử lý chuỗi dài hiệu quả.

8. Câu hỏi thường gặp về Vision Mamba

Vision Mamba có phải là Vision Transformer không?

Không. Cả hai đều có thể dùng patch embedding để biểu diễn ảnh thành token, nhưng Vision Mamba sử dụng các khối SSM hai chiều thay cho Self-Attention toàn cục trong backbone được đề xuất.

Vision Mamba có nhanh hơn ViT không?

Vim cho thấy lợi thế trong một số benchmark, nhất là ở độ phân giải cao. Tuy nhiên, tốc độ thực tế phụ thuộc kích thước mô hình, phần cứng, kernel và tác vụ nên không thể khẳng định luôn nhanh hơn.

Vision Mamba và VMamba khác nhau thế nào?

Vim xử lý chuỗi patch bằng Mamba hai chiều; VMamba sử dụng 2D Selective Scan để mô hình hóa đặc trưng không gian qua nhiều tuyến quét. Đây là hai công trình độc lập.

Vision Mamba có độ phức tạp O(N) không?

Thành phần Selective Scan có chi phí tuyến tính theo số token N khi giữ cố định kích thước trạng thái và đặc trưng. Tổng chi phí của cả mô hình còn chứa các phép biến đổi khác.

Khi nào nên thử Vision Mamba thay vì ViT?

Khi dữ liệu có độ phân giải cao hoặc cần khảo sát một backbone không dùng attention toàn cục. Nên so sánh công bằng về số tham số, độ chính xác, thông lượng, độ trễ và mức sử dụng bộ nhớ trên cùng hệ thống.

9. Kết luận

Vision Mamba chứng minh rằng Self-Attention không phải con đường duy nhất để học biểu diễn thị giác giàu ngữ cảnh. Thông qua Selective State Space Models và quét hai chiều, Vim mang lại một hướng thiết kế vision backbone đáng chú ý, đặc biệt ở các tình huống phải xử lý chuỗi patch dài.

Thay vì xem Mamba là đối thủ thay thế tuyệt đối Transformer, có thể nhìn nhận đây là một họ công cụ bổ sung với những đánh đổi khác nhau về khả năng biểu diễn, chi phí tính toán và triển khai thực tế.

10. Tài liệu tham khảo và mã nguồn

  1. Zhu et al. (2024), Bản công bố chính thức Vision Mamba tại PMLR / ICML 2024.
  2. Liu et al. (2024), Bản công bố chính thức VMamba tại NeurIPS 2024.
  3. Zhu et al. (2024), Vision Mamba: Efficient Visual Representation Learning with Bidirectional State Space Model, ICML 2024.
  4. Gu & Dao (2023), Mamba: Linear-Time Sequence Modeling with Selective State Spaces.
  5. Liu et al. (2024), VMamba: Visual State Space Model, NeurIPS 2024.
  6. Mã nguồn Vision Mamba (Vim).
  7. Mã nguồn VMamba.

Bài viết tổng hợp kiến thức phục vụ học tập và nghiên cứu. Khi trích dẫn kết quả thực nghiệm, hãy tham khảo điều kiện đánh giá trong các bài báo gốc.

© The CS Note · THE CS NOTE

Nội dung gốc thuộc tác giả. Vui lòng không đăng lại toàn văn khi chưa được phép, trừ trường hợp pháp luật hoặc giấy phép áp dụng cho phép. Nội dung của bên thứ ba tuân theo quyền và giấy phép tương ứng.

Nguồn gốc: Vision Mamba là gì? Kiến trúc, State Space Models và so sánh với Vision Transformer

Về trang chủ Về đầu bài

Bài Đăng Phổ Biến

Bài toán tháp Hà nội

Trải nghiệm Tháp Hà Nội Kéo thả đĩa hoặc chạm vào các nút bên dưới để di chuyển. Bạn phải chuyển toàn bộ đĩa sang cột ngoài cùng bên phải (Cột 3) mà không đặt đĩa to lên đĩa nhỏ. Cột 1 Cột 2 Cột 3 Điều khiển & Chế độ Số lượng đĩa 4 Tốc độ máy giải ↪ Undo ↻ Chơi lại 🤖 Máy tự giải Thống kê ván chơi Nước đã đi 0 Thời gian 00:00 Tối thiểu cần 15 Kỷ lục của bạn - Lịch sử và Nguồn gốc Truyền thuyết Bài toán Tháp Hà Nội (hay Tháp Brahma) là một trò chơi xếp hình toán học kinh điển được giới thiệu lần đầu vào năm 1883 bởi nhà toán học người Pháp Édouard L...

Bài toán phân tích cảm xúc trong văn bản

Bài toán phân tích cảm xúc (sentiment analysis) là một bài toán NLP nhằm xác định thái độ hoặc cảm xúc được thể hiện trong văn bản. Ví dụ, từ một đánh giá như “Điện thoại đẹp, chạy nhanh nhưng pin hơi yếu”, hệ thống có thể nhận biết rằng người dùng có cả nhận xét tích cực và tiêu cực. Điểm thú vị của bài toán nằm ở khoảng cách giữa cách con người hiểu ngôn ngữ và cách máy tính xử lý dữ liệu. Một hệ thống phân tích cảm xúc cần biến văn bản tự nhiên thành dữ liệu có cấu trúc, học được các mẫu ngôn ngữ từ dữ liệu huấn luyện và đưa ra dự đoán hợp lý trên những câu chưa từng gặp. 1. Bài toán phân tích cảm xúc bắt đầu từ đâu? Hãy tưởng tượng một cửa hàng trực tuyến có hàng nghìn đánh giá mỗi ngày. Con người có thể đọc từng đánh giá để biết khách hàng hài lòng hay không, nhưng việc này nhanh chóng trở nên tốn thời gian khi dữ liệu tăng lên. NLP có thể biến bài toán đó thành một bài toán phân loại. Với mỗi văn bản, hệ thống nhận vào một chuỗi ký...

KAN cho phân đoạn khối u não với bộ BraTS 2020

Kolmogorov-Arnold Network (KAN) mở ra một hướng khác với MLP truyền thống: thay vì chỉ học các trọng số vô hướng trên mỗi kết nối, KAN có thể học những hàm phi tuyến một biến trên các cạnh . Khi đưa ý tưởng này vào kiến trúc encoder-decoder như U-Net, ta có thể sử dụng convolution để giữ cấu trúc không gian của ảnh MRI và dùng KAN để thực hiện các phép biến đổi phi tuyến mạnh hơn trên representation trung gian. Một bài toán phù hợp để nghiên cứu hướng này là phân đoạn u thần kinh đệm trên BraTS 2020 . Dataset cung cấp MRI đa mô thức và yêu cầu xác định các vùng Whole Tumor (WT), Tumor Core (TC) và Enhancing Tumor (ET). Đây là bài toán 3D có sự mất cân bằng voxel lớn, hình dạng khối u rất đa dạng và ranh giới giữa các mô bệnh lý không đơn giản. Lưu ý học thuật quan trọng: U-KAN gốc được công bố cho nhiều benchmark phân đoạn ảnh y tế nhưng không báo cáo kết quả BraTS 2020. Một công trình sau đó đã mở rộng U-KAN sang 3D MRI brain tumor segmentation , nhưng đánh giá trên BraTS 2...

Tách từ trong tiếng Việt Word Segmentation

Tách từ tiếng Việt là bài toán xác định ranh giới giữa các từ trong một chuỗi văn bản. Khó khăn nằm ở chỗ khoảng trắng trong tiếng Việt thường phân cách các âm tiết , nhưng một từ hoàn chỉnh có thể gồm nhiều âm tiết như “sinh viên” , “đại học” , “công nghệ” hay “tự nhiên” . Tách từ đúng giúp các hệ thống NLP dựa trên từ biểu diễn văn bản hợp lý hơn, đặc biệt trong tìm kiếm, TF-IDF, phân loại văn bản, gán nhãn từ loại và một số mô hình ngôn ngữ tiếng Việt. Tuy nhiên, với các Transformer sử dụng tokenizer dưới mức từ như subword hoặc SentencePiece, tách từ thủ công không phải lúc nào cũng là bước bắt buộc . Việc có cần tách từ trước hay không phụ thuộc vào mô hình và pipeline cụ thể. Tóm tắt nội dung Khoảng trắng trong tiếng Việt không phải lúc nào cũng là ranh giới từ ; nhiều từ gồm hai hoặc nhiều âm tiết. Word segmentation và tokenization có liên quan nhưng không hoàn toàn đồng nghĩa. Ba hướng chính gồm dựa trên từ điển, mô hình thống kê và mô hình học sâu . Tron...

KAN là gì? Mạng Kolmogorov-Arnold khác MLP thế nào?

Kolmogorov-Arnold Network (KAN) là một kiến trúc mạng nơ-ron trong đó mỗi cạnh không chỉ chứa một trọng số vô hướng mà mang một hàm một biến có thể học được . Đây là khác biệt cốt lõi so với Multi-Layer Perceptron (MLP), nơi các cạnh chủ yếu thực hiện phép nhân với trọng số còn hàm kích hoạt thường được áp dụng tại các node. KAN được lấy cảm hứng từ định lý biểu diễn Kolmogorov-Arnold và đặc biệt đáng chú ý trong các bài toán xấp xỉ hàm, mô hình hóa khoa học và symbolic regression. Tuy nhiên, KAN không nên được hiểu là kiến trúc đã thay thế MLP trong mọi bài toán Deep Learning; khả năng biểu diễn, chi phí tính toán và mức độ phù hợp của hai kiến trúc khác nhau theo từng nhiệm vụ. Tóm tắt nội dung MLP học chủ yếu trọng số trên các cạnh , còn KAN đặt hàm một biến học được trên từng cạnh . Một KAN layer cộng kết quả của nhiều hàm cạnh để tạo activation của node tiếp theo. KAN gốc sử dụng B-spline để tham số hóa các hàm phi tuyến trên cạnh. KAN có lợi thế đáng chú ý về trực...