Hiểu rõ kiến trúc Transformer với Self-Attention Mechanism

MỤC LỤC

Chi tiết Self-Attention Mechanism

Query được sử dụng khi một token “quan sát” những tokens còn lại, nó sẽ tìm kiếm thông tin xung quanh để hiểu được ngữ cảnh và mối quan hệ của nó với các tokens còn lại. Cuối cùng, Value được sử dụng trọng số attention vừa rồi để tính ra vector đại diện (attention vector). Trong ảnh 3 ma trận WQ, WK và WV chính là các hệ số mà mô hình cần huấn luyện.

Kỹ thuật này giúp kiểm soát độ phức tạp tính toán và tránh vấn đề gradient bùng nổ. Bên cạnh đó có thể tính toán song song trên nhiều key vectors, giúp tăng cường hiệu suất. Thông thường, để có thể hiểu được vai trò của một từ trong một câu ta cần hiều được sự liên quan giữa từ đó và các thành phần còn lại trong câu.

Điều này rất quan trọng trong quá trình xử lí câu đầu vào ở ngôn ngữ A và cả trong quá trình tạo ra câu ở ngôn ngữ B. Vì vậy, mô hình cần phải tập trung vào nhiều thứ khác nhau, cụ thể là thay vì chỉ có một cơ chế self attention như đã giới thiệu hay còn gọi là 1 "head" thì mô hình sẽ có nhiều "heads" mỗi head sẽ tập trung vào khía cạnh về sự liên quan giữa từ và các thành phần còn lại. Sau đó ta sẽ concat các ma trận thu được để thu được ma trận của multi-head attention.

Là cơ chế được sử dụng cho decoder trong transformer, cụ thể nó thực hiện nhiệm vụ chỉ cho phép target token tại timestep hiện tại chỉ được phép dùng các tokens ở time-step trước đó. Về hoạt động nó cũng giống như đã giới thiệu ở trên, ngoại trừ việc nó không tính đến attention của những tokens trong tương lai. Giả sử bạn muốn Transformer thực hiện bài toán English-France translation, thì công việc của Decoder là giải mã thông tin từ Encoder và sinh ra từ tiếng Pháp dựa trên những từ trước đó.

Vậy nên, nếu ta sử dụng multi-head attention trên cả câu như ở Encoder, Decoder sẽ “thấy” luôn từ tiếp theo mà nó cần dịch. Để ngăn điều đó, khi Decoder dịch đến từ thứ i, phần sau của câu tiếng Pháp sẽ bị che lại (masked) và Decoder chỉ được phép “nhìn thấy” phần nó đã dịch trước đó. Decoder về cơ bản là giống với encode, chỉ khác là Decoder decode từng từ một và input của Decoder (câu tiếng Pháp) bị masked.

Encoder và decoder

Encoder đầu tiên sẽ nhận ma trận biểu diễn của các từ đã được cộng với thông tin vị trí thông qua positional encoding. Multi Head Attention thật chất là self-attention, nhưng mà để mô hình có thể có chú ý nhiều pattern khác nhau, tác giả đơn giản là sử dụng nhiều self-attention. - Decode về cơ bản là giống với encode, chỉ khác là Decoder decode từng từ một và input của Decoder (câu tiếng Pháp) bị masked.

- Là một kỹ thuật chuẩn hóa dữ liệu đầu ra của mỗi layer trong mạng nơ-ron. Mục tiêu của nó là giảm thiểu hiện tượng "covariate shift", tức là sự thay đổi trong phân phối của đầu vào cho mỗi layer. Bằng cách này, Layer Normalization giúp đảm bảo rằng các đầu vào cho mỗi layer đều ở cùng một khoảng giá trị, giảm thiểu sự biến động và giúp mô hình học tốt hơn.

- Residual Connections (hoặc còn gọi là skip connections) là một kiến trúc trong các mô hình nơ-ron sâu để giải quyết vấn đề của việc huấn luyện mô hình sâu. Khi mô hình trở nên quá sâu, việc lan truyền ngược và học các trọng số có thể trở nên khó khăn. Residual Connections giúp giải quyết vấn đề này bằng cách thêm một đường dẫn trực tiếp từ đầu vào của một layer đến đầu ra của layer tiếp theo.

Residual Connections giúp qua mô hình thông tin từ layer trước đó mà không làm mất thông tin, giúp lan truyền ngược hiệu quả hơn và giảm nguy cơ vanishing. Điều này làm cho việc huấn luyện các mô hình sâu trở nên dễ dàng hơn và giúp tăng cường hiệu suất của mạng.

Ứng dụng kiến trúc Transformer trong việc xử lý ảnh

    Ở đây có các tham số cần lưu ý như image_size để đưa kích thước hình ảnh từ 32x32 lên 72x72 và kích thước của các patch nhỏ là 6x6 từ đó suy ra số lượng patch mà hình ảnh sẽ có. Đoạn mã trên cho ta thấy được dữ liệu hình ảnh và cách các patch được chia ra sử dụng matplotlib để tạo một vòng lặp đưa các patch ra theo trình tự dựa theo index của chiều cao và chiều rộng ảnh gốc input. Elements per patch là giá trị của từng patch ta có 6x6x3 = 108 tức chiều rông và chiều cao cùng với giá trị màu rgb x3 là red, green, blue.

    Đây là bước thêm các giá trị learnable embedding vào các patch do Transformer không thể tự nhận biết được vị trí các patch được sắp xếp. Lý do sử dụng thờm top 5 độ chớnh xỏc là để xỏc định rừ thờm về khả năng của mô hình khi mà dự đoán đầu ra có thể nằm trong top 5 giá trị được dự đoán. Như đã nhắc tới từ trước về việc ViT chỉ làm tốt hơn vượt trội và đạt tới trạng thái state of art khi mà được train trên bộ dữ liệu lớn trên 300 triệu.

    - Object Detection: Mô hình Transformer có thể được sử dụng để giải quyết bài toán object detection, trong đó mục tiêu là xác định vị trí và lớp của các đối tượng trong ảnh. Một số phương pháp như DETR (DEtection TRansformer) đã sử dụng mô hình Transformer để thay thế cho phần encoder trong các kiến trúc truyền thống như Faster R- CNN hay SSD. - Semantic Segmentation: Mô hình Transformer cũng có thể được áp dụng trong bài toán semantic segmentation, nơi mục tiêu là gán nhãn cho từng điểm ảnh trong ảnh để xác định các vùng có cùng thuộc tính.

    - Generative Models: Mô hình Transformer cũng được sử dụng trong các mô hình sinh dữ liệu như Generative Adversarial Networks (GANs) và Variational Autoencoders (VAEs). Các mô hình như DALL-E và CLIP đã sử dụng cấu trúc Transformer để sinh ra hình ảnh mới từ các mô tả văn bản hoặc thực hiện việc tạo ra mô tả văn bản từ hình ảnh. - Pose Estimation: Các phương pháp sử dụng Transformer trong Pose Estimation (ước lượng tư thế) cho phép mô hình học được mối quan hệ không gian xa giữa các khớp và dự đoán tư thế hoặc cấu trúc 3D của con người hoặc tay.

    - Phát hiện người đi bộ: Sử dụng mô hình PED (Pedestrian End-to-end Detector) để hỗ trợ phát hiện người đi bộ trong môi trường mật độ cao và che khuất. - Phát hiện làn đường: Sử dụng mô hình LSTR (Lane Segmentation Transformer) để tăng cường hiệu suất phát hiện làn đường cong bằng cách học thông tin ngữ cảnh toàn cầu. - Scene Graph (Biểu đồ cảnh): Sử dụng mô hình Graph R-CNN hoặc Texema để tạo ra biểu đồ cảnh, biểu thị đối tượng, thuộc tính và mối quan hệ giữa các đối tượng trong cảnh.

    - Theo dừi (Tracking): Sử dụng kiến trỳc Transformer Encoder-Decoder trong cỏc mụ hỡnh Theo dừi dựa trờn mẫu như TMT, TrTr và TransT để theo dừi vật thể trong video. - Nhận dạng lại (Re-Identification): Sử dụng mô hình TransReID để xác định lại đối tượng, đạt được hiệu suất tương đương với các mô hình dựa trên CNN.

    Đánh giá

    Ưu điểm và đặc điểm độc đáo

    - Khả năng tái sử dụng cao: Cấu trúc modulized của Transformer làm cho nó dễ dàng tái sử dụng và cấu hình cho nhiều mục đích khác nhau, từ dịch máy đến phân loại ngôn ngữ. - Self-Attention Mechanism: Mô hình có cơ chế tự chú ý (self-attention) mạnh mẽ, giúp nó tập trung vào các phần tử quan trọng của dữ liệu đầu vào một cách linh hoạt. - Không gian và thời gian độc lập: Transformer không yêu cầu thứ tự cụ thể của dữ liệu đầu vào, điều này làm cho nó thích hợp cho việc xử lý dữ liệu không có tính chất chuỗi, như hình ảnh.

    - Đa tác vụ (Multi-head Attention): Cơ chế multi-head attention của Transformer cho phép mô hình tập trung vào các khía cạnh khác nhau của dữ liệu đầu vào đồng thời, tăng khả năng học và biểu diễn.

    Nhược điểm và thách thức

    - Dữ liệu không đầy đủ và không chính xác: Transformer có thể nhạy cảm với dữ liệu huấn luyện không đầy đủ hoặc không chính xác, có thể dẫn đến kết quả dự đoán không chính xác. - Vấn đề đa ngôn ngữ: Trong một số trường hợp, đặc biệt là khi đối mặt với ngôn ngữ ngôn ngữ hiếm hoặc dữ liệu đa ngôn ngữ, hiệu suất của Transformer có thể bị giảm.