RNN چیست؟
یک شبکه عصبی بازگشتی (RNN) یک مدل یادگیری عمیق است که برای پردازش و تبدیل ورودی دادههای ترتیبی به یک خروجی دادههای ترتیبی خاص آموزش داده میشود. دادههای ترتیبی، دادههایی مانند کلمات، جملات یا دادههای سری زمانی هستند که در آنها اجزای ترتیبی بر اساس قواعد معنایی و نحوی پیچیده با یکدیگر مرتبط هستند. یک RNN یک سیستم نرمافزاری است که از اجزای متعددی تشکیل شده که تقلید میکنند چگونه انسانها تبدیل دادههای ترتیبی، مانند ترجمه متن از یک زبان به زبان دیگر را انجام میدهند. RNNها تا حد زیادی با هوش مصنوعی مبتنی بر ترانسفورمر (AI) و مدلهای زبان بزرگ (LLM) جایگزین شدهاند که در پردازش دادههای ترتیبی بسیار کارآمدتر هستند.
یک شبکه عصبی بازگشتی چگونه کار میکند؟
RNNها از نورونها ساخته شدهاند: گرههای پردازش داده که با هم کار میکنند تا وظایف پیچیده را انجام دهند. نورونها به عنوان لایههای ورودی، خروجی و پنهان سازماندهی میشوند. لایه ورودی اطلاعات را برای پردازش دریافت میکند و لایه خروجی نتیجه را ارائه میدهد. پردازش، تجزیه و تحلیل و پیشبینی دادهها در لایه پنهان انجام میشود.
لایه پنهان
RNNها با ارسال دادههای ترتیبی که دریافت میکنند به لایههای پنهان، یک مرحله در یک زمان، کار میکنند. با این حال، آنها همچنین یک گردش کار خود-حلقهای یا بازگشتی دارند: لایه پنهان میتواند ورودیهای قبلی را برای پیشبینیهای آینده در یک جزء حافظه کوتاه مدت به خاطر بسپارد و از آنها استفاده کند. از ورودی فعلی و حافظه ذخیره شده برای پیشبینی توالی بعدی استفاده میکند.به عنوان مثال، توالی زیر را در نظر بگیرید: “سیب قرمز است”. شما میخواهید RNN وقتی توالی ورودی “سیب است” را دریافت میکند، “قرمز” را پیشبینی کند. وقتی لایه پنهان کلمه “سیب” را پردازش میکند، یک کپی از آن را در حافظه خود ذخیره میکند. سپس، وقتی کلمه “است” را میبیند، “سیب” را از حافظه خود فراخوانی میکند و توالی کامل را درک میکند: “سیب است” برای زمینه. سپس میتواند “قرمز” را برای بهبود دقت پیشبینی کند. این امر RNNها را در تشخیص گفتار، ترجمه ماشینی و سایر وظایف مدلسازی زبان مفید میکند.
آموزش
مهندسان یادگیری ماشین (ML) شبکههای عصبی عمیق مانند RNNها را با تغذیه مدل با دادههای آموزشی و بهبود عملکرد آن آموزش میدهند. در ML، وزنهای نورون سیگنالهایی برای تعیین میزان تأثیر اطلاعات آموخته شده در طول آموزش هنگام پیشبینی خروجی هستند. هر لایه در یک RNN وزن یکسانی دارد. مهندسان ML وزنها را برای بهبود دقت پیشبینی تنظیم میکنند. آنها از تکنیکی به نام انتشار پسرونده از طریق زمان (BPTT) برای محاسبه خطای مدل و تنظیم وزن آن بر این اساس استفاده میکنند. BPTT خروجی را به مرحله زمانی قبلی برمیگرداند و نرخ خطا را دوباره محاسبه میکند. به این ترتیب، میتواند مشخص کند که کدام حالت پنهان در توالی باعث خطای قابل توجهی میشود و وزن را برای کاهش حاشیه خطا دوباره تنظیم میکند.
انواع شبکههای عصبی بازگشتی کدامند؟
RNNها اغلب با معماری یک به یک مشخص میشوند: یک توالی ورودی با یک خروجی مرتبط است. با این حال، شما میتوانید آنها را به طور انعطافپذیر به پیکربندیهای مختلف برای اهداف خاص تنظیم کنید. موارد زیر چندین نوع رایج RNN هستند.
- یک به چند: این نوع RNN یک ورودی را به چندین خروجی هدایت میکند. برنامههای زبانی مانند شرح تصویر را با تولید یک جمله از یک کلمه کلیدی واحد فعال میکند.
- چند به چند: مدل از ورودیهای متعدد برای پیشبینی خروجیهای متعدد استفاده میکند. به عنوان مثال، میتوانید یک مترجم زبان با یک RNN ایجاد کنید که یک جمله را تجزیه و تحلیل میکند و کلمات را به درستی در یک زبان دیگر ساختار میدهد.
- چند به یک: چندین ورودی به یک خروجی نگاشت میشوند. این در برنامههایی مانند تحلیل احساسات مفید است، جایی که مدل احساسات مشتریان مانند مثبت، منفی و خنثی را از نظرات ورودی پیشبینی میکند.
شبکههای عصبی بازگشتی در مقایسه با سایر شبکههای یادگیری عمیق چگونه هستند؟
RNNها یکی از چندین معماری مختلف شبکه عصبی هستند.
شبکه عصبی بازگشتی در مقابل شبکه عصبی پیشخور
مانند RNNها، شبکههای عصبی پیشخور شبکههای عصبی مصنوعی هستند که اطلاعات را از یک انتها به انتهای دیگر معماری منتقل میکنند. یک شبکه عصبی پیشخور میتواند وظایف طبقهبندی، رگرسیون یا تشخیص ساده را انجام دهد، اما نمیتواند ورودی قبلی را که پردازش کرده به خاطر بسپارد. به عنوان مثال، وقتی نورون آن کلمه “است” را پردازش میکند، “سیب” را فراموش میکند. RNN با گنجاندن یک حالت حافظه پنهان در نورون بر این محدودیت حافظه غلبه میکند.
شبکه عصبی بازگشتی در مقابل شبکههای عصبی کانولوشن
شبکههای عصبی کانولوشن شبکههای عصبی مصنوعی هستند که برای پردازش دادههای فضایی طراحی شدهاند. میتوانید از شبکههای عصبی کانولوشن برای استخراج اطلاعات فضایی از فیلمها و تصاویر با عبور دادن آنها از یک سری لایههای کانولوشن و تجمیع در شبکه عصبی استفاده کنید. RNNها برای گرفتن وابستگیهای طولانی مدت در دادههای ترتیبی طراحی شدهاند.
برخی از انواع معماری شبکه عصبی بازگشتی کدامند؟
معماری RNN پایه و اساس مدلهای ML را برای داشتن قابلیتهای پردازش زبان بنا نهاد. چندین نوع ظاهر شدهاند که اصل حفظ حافظه آن را به اشتراک میگذارند و عملکرد اصلی آن را بهبود میبخشند. موارد زیر چند نمونه هستند.
- شبکههای عصبی بازگشتی دوطرفه: یک شبکه عصبی بازگشتی دوطرفه (BRNN) توالی دادهها را با لایههای رو به جلو و رو به عقب از گرههای پنهان پردازش میکند. لایه رو به جلو به طور مشابه با RNN کار میکند، که ورودی قبلی را در حالت پنهان ذخیره میکند و از آن برای پیشبینی خروجی بعدی استفاده میکند. در همین حال، لایه رو به عقب با گرفتن ورودی فعلی و حالت پنهان آینده برای به روز رسانی حالت پنهان فعلی در جهت مخالف کار میکند. ترکیب هر دو لایه BRNN را قادر میسازد تا با در نظر گرفتن زمینههای گذشته و آینده، دقت پیشبینی را بهبود بخشد. به عنوان مثال، میتوانید از BRNN برای پیشبینی کلمه “درختان” در جمله “درختان سیب بلند هستند” استفاده کنید.
- حافظه بلند مدت کوتاه: حافظه بلند مدت کوتاه (LSTM) یک نوع RNN است که مدل را قادر میسازد تا ظرفیت حافظه خود را برای تطبیق با یک بازه زمانی طولانیتر گسترش دهد. یک RNN فقط میتواند ورودی بلافاصله گذشته را به خاطر بسپارد. نمیتواند از ورودیهای چندین توالی قبلی برای بهبود پیشبینی خود استفاده کند. جملات زیر را در نظر بگیرید: “تام یک گربه است. غذای مورد علاقه تام ماهی است.” وقتی از یک RNN استفاده میکنید، مدل نمیتواند به خاطر بسپارد که تام یک گربه است. ممکن است هنگام پیشبینی کلمه آخر غذاهای مختلفی تولید کند. شبکههای LSTM یک بلوک حافظه ویژه به نام سلول در لایه پنهان اضافه میکنند. هر سلول توسط یک دروازه ورودی، دروازه خروجی و دروازه فراموشی کنترل میشود که لایه را قادر میسازد تا اطلاعات مفید را به خاطر بسپارد. به عنوان مثال، سلول کلمات “تام” و “گربه” را به خاطر میسپارد و مدل را قادر میسازد تا کلمه “ماهی” را پیشبینی کند.
- واحدهای بازگشتی دروازهدار: یک واحد بازگشتی دروازهدار (GRU) یک RNN است که حفظ حافظه انتخابی را فعال میکند. مدل یک
دروازه بهروزرسانی و فراموشی به لایه پنهان خود اضافه میکند که میتواند اطلاعات را در حافظه ذخیره یا حذف کند.
محدودیتهای شبکههای عصبی بازگشتی چیست؟
از زمان معرفی RNN، مهندسان ML پیشرفتهای چشمگیری در کاربردهای پردازش زبان طبیعی (NLP) با RNNها و انواع آنها داشتهاند. با این حال، خانواده مدل RNN محدودیتهای متعددی دارد.
- گرادیان انفجاری: یک RNN میتواند خروجی را در آموزش اولیه به اشتباه پیشبینی کند. شما به چندین تکرار برای تنظیم پارامترهای مدل برای کاهش نرخ خطا نیاز دارید. میتوانید حساسیت نرخ خطا مربوط به پارامتر مدل را به عنوان گرادیان توصیف کنید. میتوانید گرادیان را به عنوان شیبی تصور کنید که برای پایین آمدن از یک تپه طی میکنید. یک گرادیان تندتر مدل را قادر میسازد تا سریعتر یاد بگیرد و یک گرادیان کم عمق نرخ یادگیری را کاهش میدهد. گرادیان انفجاری زمانی اتفاق میافتد که گرادیان به صورت نمایی افزایش مییابد تا زمانی که RNN ناپایدار شود. وقتی گرادیانها بینهایت بزرگ میشوند، RNN به طور نامنظم عمل میکند و منجر به مشکلات عملکردی مانند بیشبرازش میشود. بیشبرازش پدیدهای است که در آن مدل میتواند با دادههای آموزشی به طور دقیق پیشبینی کند، اما نمیتواند همین کار را با دادههای دنیای واقعی انجام دهد.
- گرادیان محوشونده: مشکل گرادیان محوشونده وضعیتی است که در آن گرادیان مدل در آموزش به صفر نزدیک میشود. وقتی گرادیان محو میشود، RNN نمیتواند به طور مؤثر از دادههای آموزشی یاد بگیرد و منجر به کمبرازش میشود. یک مدل کمبرازش نمیتواند در برنامههای دنیای واقعی عملکرد خوبی داشته باشد زیرا وزنهای آن به درستی تنظیم نشدهاند. RNNها هنگام پردازش توالیهای طولانی داده در معرض مشکلات گرادیان محوشونده و انفجاری هستند.
- زمان آموزش کند: یک RNN دادهها را به صورت متوالی پردازش میکند که توانایی آن را برای پردازش تعداد زیادی متن به طور مؤثر محدود میکند. به عنوان مثال، یک مدل RNN میتواند احساس خریدار را از چند جمله تجزیه و تحلیل کند. با این حال، برای خلاصه کردن یک صفحه از یک مقاله به قدرت محاسباتی، فضای حافظه و زمان زیادی نیاز دارد.
ترانسفورمرها چگونه بر محدودیتهای شبکههای عصبی بازگشتی غلبه میکنند؟
ترانسفورمرها مدلهای یادگیری عمیق هستند که از مکانیسمهای خود-توجه در یک شبکه عصبی پیشخور رمزگذار-رمزگشا استفاده میکنند. آنها میتوانند دادههای ترتیبی را به همان روشی که RNNها انجام میدهند پردازش کنند.
- خود-توجه: ترانسفورمرها از حالتهای پنهان برای گرفتن وابستگیهای متقابل توالیهای داده استفاده نمیکنند. در عوض، آنها از یک سر خود-توجه برای پردازش موازی توالیهای داده استفاده میکنند. این امر ترانسفورمرها را قادر میسازد تا توالیهای طولانیتر را در زمان کمتری نسبت به RNN آموزش داده و پردازش کنند. با مکانیسم خود-توجه، ترانسفورمرها بر محدودیتهای حافظه و وابستگیهای متقابل توالی که RNNها با آن مواجه هستند غلبه میکنند. ترانسفورمرها میتوانند توالیهای داده را به صورت موازی پردازش کنند و از کدگذاری موقعیتی برای به خاطر سپردن نحوه ارتباط هر ورودی با سایرین استفاده کنند.
- موازیسازی: ترانسفورمرها با فعال کردن موازیسازی در طول آموزش، مشکلات گرادیان را که RNNها با آن مواجه هستند حل میکنند. با پردازش همزمان تمام توالیهای ورودی، یک ترانسفورمر به دلیل اینکه گرادیانها میتوانند آزادانه به همه وزنها جریان یابند، تحت محدودیتهای انتشار پسرونده قرار نمیگیرد. آنها همچنین برای محاسبات موازی بهینه شدهاند که واحدهای پردازش گرافیکی (GPU) برای توسعه هوش مصنوعی مولد ارائه میدهند. موازیسازی ترانسفورمرها را قادر میسازد تا به طور گسترده مقیاس شوند و وظایف پیچیده NLP را با ساخت مدلهای بزرگتر انجام دهند.