1. مقدمه
این سومین وبلاگ از مجموعه در حال انجام من در رابطه با معماری شبکه عصبی ترانسفورمر است - هدف از کل مجموعه، ابهامزدایی از واحدها / اجزای مختلف معماری شبکه عصبی ترانسفورمر به منظور ایجاد درک دقیق و شهودی از کلیت کار ترانسفورمر است.
2 مقاله اول مربوط به این سری، درک عمیقتری از اصول بنیادی یادگیری عمیق و تکامل مدلهای زبانی ارائه کردند.
https://concepts-define.blogsky.com/1403/08/11/post-30/اصول-اساسی-یادگیری-عمیق
https://ali-rouhanifar.blogsky.com/1403/08/18/post-63/تکامل-مدل%e2%80%8cهای-زبانی
مقاله در اصول بنیادی یادگیری عمیق به تدریج درک شبکه های عصبی را از مفهوم پرسپترون تا شبکه عصبی تک لایه تا شبکه عصبی چند لایه ایجاد کرد. بحث از طریق مقاله مفهوم توابع فعالسازی، منظمسازی در مورد شبکههای عصبی را پوشش میدهد.
مقاله تکامل مدلهای زبان، تکامل سلسله مراتبی مدلهای زبان را از مدلهای n-gram و محدودیتهای آنها شروع کرد و سپس به عصر یادگیری عمیق با شبکههای عصبی بازگشتی، واحدهای حافظه کوتاهمدت بلند مدت (LSTM) و مسائل در این شبکهها و سپس پیشرفت به عصر هوشمصنوعی مولد - صحبت از ترانسفورمرها با تأکید دقیق بر مکانیسم توجه، صحبت کردن در سطح بالاتر از معماری معماری ترانسفورمر وارد شد.
معماری شبکه عصبی ترانسفورمر مکانیسم توجه را به عنوان نقطه برجسته اصلی خود دارد - هدف این مقاله پوشش - یا کشف - جزئیات بیشتر Self-Attention است! مقاله به شرح زیر تنظیم شده است:
· در مرحله اول، ما انگیزه پشت توجه را بازبینی میکنیم - با تأکید بر مفهوم "امتیازات توجه[1]" که به طور بسیار شهودی کلمات مرتبط را در یک جمله نشان میدهد و بنابراین معنای متنی / معنایی جمله را به تصویر میکشد.
· در بخش بعدی مقاله، به بررسی کلی معماری ترانسفورمر در سطح بسیار بالا میپردازم.
· و در نهایت، مهمترین نکته این مقاله - من وارد دفترچه Colab می شوم که در آن ریاضیات مربوط به خود توجه را رمزگذاری کردهام.
2. انگیزه پشت توجه
2.1 شبکههای عصبی بازگشتی و موفقیتهای آنها با مدلسازی متوالی
شبکههای عصبی بازگشتی – همانطور که در مقاله من در مورد تکامل مدلهای زبانی بحث شد، برای مسائل مربوط به مدلسازی دنبالهای[2]، پیشرفتهترین فناوری بودند. آنها در بسیاری از برنامههای کاربردی شامل مدلسازی توالی استفاده شدهاند. برخی از نمونههایی از مسائل مربوط به دادههای دنبالهای که در آن از RNN استفاده شده است شامل موارد زیر است:
الف) متن را میتوان به دنبالهای از کاراکترها یا کلمات تقسیم کرد و هر یک از نویسهها یا کلمهها را میتوان به عنوان یک مرحله زمانی یا دنباله در نظر گرفت - RNNها در نمونههایی به عنوان مدلهای زبان، البته با محدودیتهایی استفاده شدهاند.
ب) اشکال موج مانند صوتی از یک سخنرانی را میتوان به دنبالهای از امواج صوتی تقسیم کرد. RNNها برای مسائل مربوط به تشخیص گفتار استفاده شدهاند.
ج) مسائل مربوط به پیشبینی ناهنجاریها در الکتروکاردیوگرام - خواندن الکتروکاردیوگرام یک مسئله مربوط به مدلسازی متوالی است و برای این منظور از RNN استفاده شده است.
شکل: شبکههای عصبی بازگشتی برای پیشبینی متن
شکل: شبکههای عصبی بازگشتی برای تشخیص گفتار
شکل: شبکههای عصبی بازگشتی برای تشخیص ناهنجاریها در الکتروکاردیوگرام
۲.۲ مسائل شبکههای عصبی بازگشتی
علیرغم کاربردهای فوق که در آنها RNNها کاملاً موفقیتآمیز بودند، همانطور که قبلاً مورد بحث قرار گرفت از محدودیتهایی رنج میبردند:
· اولاً، RNNها به کندی آموزش داده میشدند - دادههای ورودی باید به صورت متوالی یا متوالی یکی پس از دیگری ارسال شوند. برای انجام هر عملیاتی در وضعیت فعلی، ورودیهایی از حالت قبلی مورد نیاز بود. بنابراین، امکان استفاده مؤثر از GPU وجود نداشت زیرا عملیات امکان پردازش موازی را نمیداد.
· RNNها همچنین نمیتوانستند به خوبی با دنبالههای طولانی برخورد کنند و نمیتوانستند به خوبی در جملات طولانی زمینه ایجاد کنند. مسائلی مانند انفجار گرادیان که قبلاً مورد بحث قرار گرفت، با استفاده از برش گرادیان حل شد - با این حال، باید به خاطر داشت که گرادیانها اطلاعات را حمل میکنند و برش گرادیان منجر به از دست دادن اطلاعات میشود - بنابراین از دست دادن زمینه میشود.
شکل: مسائل گرادیانهای ناپدید و انفجار در RNNها
شکل: RNNها - از دست دادن زمینه برای جملات طولانی
۲.۳ مکانیسم توجه
لازمه اولیه در مورد مدلسازی زبان این است که بردارهای کلمه بسیار کلمه حامل اطلاعات متنی باشند – بنابراین کیفیت «بالا» داشته باشند. و این از طریق مکانیسم توجه امکانپذیر شد. تعبیههای کلمه پالایش شده از طریق رمزگذاری موقعیتی از طریق 3 لایه خطی مجزا منتقل شدند که منجر به بردارهای Query، Key و Value شد.
لازمه اولیه در مورد مدلسازی زبان این است که بردارهای کلمه بسیار کلمه حامل اطلاعات متنی باشند – بنابراین کیفیت «بالا» داشته باشند. و این از طریق مکانیسم توجه امکان پذیر شد. تعبیههای کلمه پالایش شده[3] از طریق رمزگذاری موقعیتی از طریق 3 لایه خطی مجزا منتقل شدند که منجر به بردارهای Query، Key و Value شد.
شکل: بردارهای Query، Key، Value از تعبیه موقعیتی
ماتریس توجه همانطور که در زیر نشان داده شده است از حاصل ضرب نقطهای ماتریسهای Query و Key حاصل شده است. همانطور که ممکن است متوجه شوید، ماتریس توجه به وضوح نشان میدهد که هر کلمه در یک جمله باید روی کدام کلمه تمرکز کند تا در بردار ویژگی خاص خود گنجانده شود.
به عنوان مثال، یک جمله داده شود: "I Love Deep Learning".
ماتریس توجه آن از نظر کیفی باید مانند زیر باشد:
شکل: امتیازات توجه - پدیده توجه به خود
همانطور که ممکن است متوجه شوید - با مشاهده ماتریس بالا -
· اولاً، هر کلمه باید روی خودش تمرکز کند، بنابراین، امتیاز توجه هر کلمه برای همان کلمه بالاترین است. بنابراین، امتیاز توجه کلمه «I» برای «I»، امتیاز توجه «Love» برای همان کلمه «Love» و غیره بالاترین است.
· بدیهی است که کلمه Deep و Learning ارتباط نزدیکی با هم دارند و این در ماتریس توجه با امتیاز توجه بالاتر برای Deep در ردیف چهارم منعکس شده است. بنابراین، برداری که با کلمه "Learning" مطابقت دارد، زمینه بیشتری را با توجه به کلمه "Deep" در خود جای میدهد.
موارد بالا خودتوجهی است زیرا ما به همان جملهای که به عنوان ورودی استفاده میکنیم توجه میکنیم. لازم به ذکر است که توجه اشکال بسیار دیگری نیز دارد و میتوان از آن در برنامههای کاربردی دیگری مانند Computer Vision استفاده کرد.
بنابراین، از طریق مکانیسم توجه، تعبیههای کلمه اصلی به تعبیههای کلمه با کیفیت بالا تبدیل شدند.
3. مروری بر معماری شبکه عصبی ترانسفورمر
معماری شبکه عصبی ترانسفورماتور برای اولین بار در سال 2017 در مقاله Attention Is All You Need معرفی شد - این مقاله به وظیفه خاص ترجمه زبان می پردازد.
شکل: معماری ترانسفورمر و توجه همه آن چیزی است که نیاز دارید
معماری ترانسفورماتور از 2 بخش تشکیل شده است: رمزگذار و رمزگشا. در طول آموزش، کلمات انگلیسی (فرض کنید در حال انجام ترجمه زبان از انگلیسی به فرانسوی) به طور همزمان در بخش رمزگذار معماری شبکه عصبی ترنسفورمر قرار میدهیم. خروجی بخش رمزگذار مجموعهای از تعبیههای کلمه خواهد بود که به دلیل مکانیسم توجه در بخش رمزگذار معماری، از نظر متنی آگاه هستند. بنابراین، فرض کنید، جمله «ما این فیلم را دوست داریم» از انگلیسی به فرانسوی ترجمه میکنیم، مجموعهای از تعبیههای کلمه را دریافت میکنیم که از نظر متنی به عنوان خروجی از بخش رمزگذار معماری ترنسفورمر همانطور که در شکل نشان داده شده است، دریافت میکنیم. زیر:
شکل: بردارهای کلمه آگاه از متن با کیفیت بالا
در کنار بخش رمزگشا، انگلیسی - تعبیههای آگاه از زمینه - را به همراه یک نشانه شروع که شروع جمله را نشان میدهد، منتقل میکنیم و شروع به تولید کلمات فرانسوی یکی پس از دیگری میکنیم. در مرحله زمانی n - برای به دست آوردن nامین کلمه فرانسوی - کلمات انگلیسی را که پس از پردازش به دست آمدهاند از طریق واحد رمزگذار معماری به اضافه کلمات فرانسوی که تا مرحله زمانی (n-1) تولید شدهاند عبور میدهیم. این در شکلهای زیر نشان داده شده است.
شکل: کار بخش رمزگشا برای کار ترجمه زبان
شکل: کار بخش رمزگشا برای کار ترجمه زبان