شبکه خود-توجهی (Self-Attention Network)، در ریاضیات (Mathematics)
انواع شبکه های عصبی (Neural Networks) را در آموزش زیر شرح دادیم :
شبکه خود-توجهی (Self-Attention Network) :
شبکه خود-توجهی (Self-Attention Network) نوعی شبکه است که از مکانیزم خود-توجهی (self-attention) به عنوان عملیات اصلی برای مدل سازی وابستگی ها درون یک توالی استفاده می کند. در خود-توجهی، هر عنصر توالی (مثلا یک کلمه) با محاسبه توجه به تمام عناصر دیگر (از جمله خودش) یک بازنمایی غنی شده از کل توالی دریافت می کند. این برخلاف RNN است که به صورت ترتیبی عمل می کند.
خود-توجهی ضرب نقطه ای مقیاس یافته: با فرض ماتریس ورودی
\[ X \in \mathbb{R}^{n \times d} \]، سه ماتریس
\[ Q = XW_Q \],
\[ K = XW_K \],
\[ V = XW_V \]محاسبه می شوند. سپس خروجی خود-توجهی:
\[ \text{SelfAttention}(X) = \text{softmax}\left( \frac{QK^T}{\sqrt{d_k}} \right) V \]که
\[ d_k \]بعد کلیدهاست. این عملیات می تواند چندسر (multi-head) باشد: چندین مجموعه از
\[ W_Q, W_K, W_V \]و سپس الحاق خروجی ها.
شبکه خود-توجهی خالص، پایه گذار ترانسفورمر است. معماری هایی مانند Transformer Encoder (که در BERT استفاده می شود) از چندین لایه خود-توجهی به همراه Feed-Forward Networks تشکیل شده اند.
مزایا: موازی پذیری کامل، توانایی مدل سازی وابستگی های طولانی، قابلیت یادگیری ساختارهای پیچیده. معایب: پیچیدگی محاسباتی
\[ O(n^2) \]برای توالی های بلند، نیاز به داده زیاد.
کاربردها: تمامی مدل های NLP مدرن (BERT، GPT)، Vision Transformer (ViT) برای تصاویر، و مدل های گفتار. خود-توجهی به یک بلوک ساختمانی اصلی تبدیل شده است.