اخبار

مقدمه

در دنیای هوش مصنوعی و یادگیری ماشین، درک داده‌های متوالی اهمیت فراوانی دارد. داده‌های متوالی به نوعی از داده اطلاق می‌شود که در آن ترتیب یا توالی عناصر مهم است و رابطۀ بین این عناصر به موقعیت آنها در دنباله بستگی دارد. در بسیاری از حوزه‌ها، مانند تجزیه و تحلیل سری‌های زمانی، تشخیص گفتار و پردازش زبان طبیعی از داده‌های متوالی استفاده می‌شود.

شبکه‌های عصبی روبه‌جلو سنتی مانند‌ شبکه‌های عصبی پرسپترون چندلایه (MLP) و شبکه‌های عصبی پیچشی (CNN)، در بسیاری از مسائل دسته‌بندی و رگرسیون موفق عمل می‌کنند، اما برای پردازش کارآمد داده‌های متوالی مناسب نیستند. شبکه‌های روبه‌جلو داده‌هایی با اندازه ثابت را در ورودی می‌گیرند و فرض می‌کنند که داده‌های ورودی مستقل از هم هستند.

برای پردازش داده‌های متوالی از شبکه‌‌های عصبی بازگشتی (RNN) و انواع مختلف آن مانند حافظۀ طولانیِ کوتاه‌مدت (LSTM) و واحد بازگشتی دارای دروازه (GRU) استفاده می‌شود. ایدۀ اصلی RNNها پردازش داده‌های متوالی است که محاسبات یکسانی را برای هر عنصر از دنباله انجام می‌دهند و خروجی هر مرحله به محاسبات عناصر قبلی بستگی دارد. به عبارت ساده‌تر، این شبکه‌ها از یک حالت پنهان به‌عنوان «حافظه» استفاده می‌کنند که اطلاعاتی در مورد عناصر قبلی در دنباله را نگه می‌دارند.

در این مطلب، ابتدا عملکرد درونی RNNها به همراه معماری، ریاضیات و پیاده‌سازی عملی آنها را بررسی می‌کنیم. سپس به جزئیات LSTM و GRU می‌پردازیم و کشف خواهیم کرد که چگونه این دو شبکه بر برخی از محدودیت‌های RNN ساده غلبه می‌کنند.

شبکه عصبی بازگشتی چیست؟

شبکه‌های عصبی بازگشتی یا RNNها یک نوع معماری شبکه‌های عصبی عمیق هستند که به پردازش داده‌های متوالی و زمانی مشهورند. یکی از ویژگی‌های اصلی RNNها اتصالات بازگشتی است. این ویژگی به معنای این است که این شبکه‌ها، اطلاعات را از داده‌های گذشته در خود نگه می‌دارند و از آنها در پردازش داده‌های فعلی استفاده می‌کنند. این ویژگی بسیار مهم است؛ زیرا امکان تشخیص ارتباطات زمانی و وابستگی‌های زمانی در داده‌ها و ساختن مدل براساس آن‌ها را فراهم می‌کند. در تئوری، می‌توان از RNNها برای پردازش دنباله‌هایی با طول دلخواه و یا بلند استفاده کرد. اما در عمل، می‌توان آن‌ها را برای دنباله‌هایی با طول کوتاه یا محدود نیز به کار برد.

یکی از مفاهیم کلیدی در شبکه‌های عصبی بازگشتی، ایدۀ گسترش در زمان است. این مفهوم به معنای تبدیل شبکۀ عصبی بازگشتی به دنباله‌ای از لایه‌های تکراری برای هر گام زمانی است (شکل 1). به‌عنوان مثال، اگر دنبالۀ ورودی، یک جملۀ پنج‌کلمه‌ای باشد، شبکه به یک شبکۀ عصبی پنج‌لایه تبدیل می‌شود.

شکل 1: نمایی از گسترش شبکۀ عصبی بازگشتی در زمان.شکل 1: نمایی از گسترش شبکۀ عصبی بازگشتی در زمان.

در شکل 1، و به ترتیب بردار ورودی، حالت پنهان و بردار خروجی در گام زمانی t است. بر اساس حالت پنهان قبلی و ورودی در مرحله فعلی محاسبه می‌شود:

(1) تابع f معمولاً یک تابع غیرخطی مانند tanh یا ReLU است. در نهایت، خروجی به‌صورت زیر به دست می‌آید:

(2) همان‌طور که در شکل 1 مشخص است، بر خلاف شبکه‌های عصبی عمیق سنتی، که در هر لایه از پارامترهای مختلف استفاده می‌شود، RNNها در تمام مراحل پارامترهای یکسانی (U,V,W) را به کار می‌برند. این امر نشان‌دهندۀ این واقعیت است که در هر گام زمانی بر روی ورودی‌های مختلف محاسبات یکسانی انجام می‌شود. این موضوع، به میزان زیادی تعداد پارامترهای قابل‌یادگیری در RNNها را کاهش می‌دهد. علاوه بر این موضوع، RNN نشان‌داده‌شده در شکل 1 در هر مرحلۀ زمانی یک خروجی دارد، اما بسته به وظیفه، ممکن است این کار ضروری نباشد. برای مثال، هنگام پیش‌بینی احساس یک جمله، ممکن است فقط به خروجی نهایی اهمیت دهیم، نه احساس بعد از هر کلمه. به‌طور مشابه، ممکن است در هر مرحلۀ زمانی به ورودی نیاز نداشته باشیم؛ بنابراین، بسته به وظیفه‌ای که می‌خواهیم انجام دهیم RNNها می‌توانند معماری‌های متفاوتی داشته باشند. در بخش بعد معماری‌های مختلف RNNها را به‌طور مفصل توضیح می‌دهیم.

انواع مختلف معماری RNN

RNNها در بسیاری از وظایف پردازش زبان طبیعی (NLP) موفقیت زیادی از خود نشان داده‌اند که از معماری‌های مختلف RNN در این وظایف استفاده شده‌است. در ادامه معماری‌های مختلف RNN آورده شده‌است.

معماری یک‌به‌یک

در این نوع معماری شبکه RNN، اندازه ورودی و خروجی ثابت است و هر دوی آنها مستقل از اطلاعات یا خروجی قبلی هستند. به همین دلیل به این نوع معماری RNN، شبکه عصبی ساده نیز می‌گویند. شماتیک این معماری در شکل 2 نشان داده شده‌است. از این نوع معماری برای وظیفه دسته‌بندی تصویر می‌توان استفاده کرد.

شکل 2: معماری یک‌به‌یک RNN.

شکل 2: معماری یک‌به‌یک RNN.

معماری یک‌به‌چند

در معماری یک‌به‌چند RNN، اندازه ورودی ثابت و خروجی یک دنباله است. یک مثال مناسب برای استفاده از این معماری وظیفۀ توصیف تصویر است که تصویر را به‌عنوان ورودی می‌گیرد و دنباله‌ای از کلمات را به‌عنوان خروجی می‌دهد. شکل 3 معماری یک‌به‌چند را نشان می‌دهد.

شکل 3: معماری یک‌به‌چند RNN.

شکل 3: معماری یک‌به‌چند RNN.

معماری چندبه‌یک

مطابق شکل 4، در معماری چندبه‌یک، ورودی یک دنباله و اندازه خروجی ثابت است. از این معماری در وظایفی مانند تجزیه و تحلیل احساسات استفاده می‌شود که در آن جمله به‌عنوان بیان‌کنندۀ احساسات مثبت یا منفی دسته‌بندی می‌شود.

شکل 4: معماری چندبه‌یک RNN.

شکل 4: معماری چندبه‌یک RNN.

در معماری چندبه‌چند، دنباله‌ای از اطلاعات به‌عنوان ورودی دریافت و با روش بازگشتی می تواند حذف شود. این معماری به دو صورت استفاده می‌گردد. حالت اول در شکل 5 نشان داده شده‌است. این حالت در وظیفه‌ای مانند ترجمه ماشینی استفاده می‌شود که ابتدا، جمله در زبان مبدأ به‌عنوان ورودی به مدل داده و پردازش می‌شود، سپس جمله در زبان مقصد در خروجی تولید می‌گردد. این حالت معماری چندبه‌چند، در وظیفه مدل‌سازی زبان نیز به کار برده می‌شود. مدل‌های زبانی، احتمال کلمه بعدی را با توجه به کلمه‌های قبلی پیش‌بینی می‌کنند. در مدل‌سازی زبان، ورودی معمولاً متشکل از دنباله‌ای از کلمات، و خروجی دنباله‌ای از کلمات پیش‌بینی‌شده است.

شکل 5: معماری چندبه‌چند RNN.

شکل 5: معماری چندبه‌چند RNN.

حالت دوم معماری چندبه‌چند، در شکل 6 نشان داده شده‌است. از این حالت می‌توان در وظیفه‌ای مانند دسته‌بندی ویدئو استفاده کرد که هر قاب از ویدئو یک برچسب دارد. ورودی و خروجی در این معماری هم‌زمان هستند.

شکل 6: معماری چندبه‌چند RNN.

شکل 6: معماری چندبه‌چند RNN.

نحوۀ آموزش RNNها چگونه است؟

آموزش RNNها شبیه آموزش شبکه‌های عصبی سنتی است که از همان الگوریتم پس‌انتشار اما با کمی تغییرات استفاده می‌کند. از آنجا که وزن‌ها در RNN در تمام گام‌های زمانی، مشترک و یکسان است، گرادیان هر خروجی نه تنها به محاسبات گام زمانی فعلی، بلکه به گام‌های زمانی قبلی نیز بستگی دارد. به‌عنوان مثال، برای محاسبه گرادیان در گام زمانی چهارم (t=4)، باید گرادیان سه مرحله قبلی را به دست آوریم و گرادیان‌ها را جمع کنیم. به این روش «پس‌انتشار در طول زمان» (BPTT) گفته می‌شود.

برای توضیح BPTT، ابتدا محاسبات مربوط به RNN را یادآوری می‌کنیم که در هر گام زمانی t، حالت پنهان و خروجی ، به‌صورت زیر به دست می‌آید:

اگر تابع خطا یا ضرر را آنتروپی متقابل در نظر بگیریم خواهیم داشت:

که در آن خروجی صحیح در مرحله زمانی t و خروجی پیش‌بینی‌شده توسط RNN است. در RNNها معمولاً یک دنبالۀ کامل به‌عنوان یک دادۀ آموزشی در نظر گرفته می‌شود؛ بنابراین خطای کل برابر با مجموع خطاها در هر مرحله زمانی است. برای به‌روزرسانی و آموزش پارامترهای RNN، از روش‌های کاهش گرادیان استفاده می‌شود. بنابراین گرادیان‌های خطا با توجه به پارامتر‌های مدل یعنی U، V و W محاسبه و از گام‌های زمانی انتهایی به گام‌های زمانی ابتدایی منتقل می‌گردد. برای راحتی و نشان‌دادن بهتر محاسبه گرادیان‌ها، یک RNN با سه گام زمانی را در نظر می‌گیریم و گرادیان‌ها را برای گام زمانی سوم (t=3) نسبت به پارامترهای U، V و W محاسبه می‌کنیم:

شکل 7: یک RNN بازشده در طول زمان برای سه گام زمانی.

شکل 7: یک RNN بازشده در طول زمان برای سه گام زمانی.

ابتدا گرادیان را نسبت به پارامتر وزن V با قاعده زنجیره‌ای محاسبه می‌کنیم. برای محاسبه گرادیان نسبت به V تنها به حالت فعلی نیاز است.:

شکل 8: نحوه انتشار گرادیان E3 نسبت به پارامتر V در RNN.

شکل 8: نحوه انتشار گرادیان E3 نسبت به پارامتر V در RNN.

حال، گرادیان E_3 نسبت به W را به دست می‌آوریم. گرادیان E_3 نسبت به W تنها به حالتS_3 وابسته نیست. بلکه به حالت‌های قبلی یعنی S_2 و S_1 نیز بستگی دارد؛ زیرا در RNN‌ها برای محاسبه هر حالت از حالت‌های قبلی استفاده می‌شود. بنابراین محاسبۀ چنین خواهد بود:

(6)

شکل 9: نحوه انتشار گرادیان E3 نسبت به پارامتر W در RNN.

شکل 9: نحوه انتشار گرادیان E3 نسبت به پارامتر W در RNN.

به‌طور کلی عبارت را می‌توان به‌صورت زیر بیان کرد:

(7)

در نهایت، گرادیان E_3 را نسبت به U محاسبه می‌کنیم:

(8)

شکل 10: نحوه انتشار گرادیان E3 نسبت به پارامتر U در RNN.

شکل 10: نحوه انتشار گرادیان E3 نسبت به پارامتر U در RNN.

مشابه پارامتر W، گرادیان E_3 نسبت به U تنها به حالت S_3 وابسته نیست. بلکه به حالت‌های قبلی یعنی S_2 و S_1 نیز بستگی دارد؛ زیرا همان‌طور که اشاره کردیم، در RNNها برای محاسبه هر حالت، از حالت‌های قبلی استفاده می‌شود. به‌طور خلاصه، عبارت (8) را می‌توانیم به‌صورت زیر بازنویسی کنیم:

(9)

محدودیت RNNها چیست؟

محاسبات بخش قبل نشان می‌دهد که از روش BPTT تنها می‌توان برای تعداد محدودی از گام‌های زمانی استفاده کرد. زیرا اگر تعداد گام‌های زمانی طولانی باشد، مشکلات متعددی را به وجود می‌آورد. به‌عنوان مثال، یکی از چالش‌های مهم در آموزش RNNها مسئله «محوشدگی گرادیان» است که سپ هوکرایتر در سال 1991 آن را کشف کرد. زمانی که گرادیان‌ها در فرایند پس‌انتشار از گام‌های زمانی انتهایی به سمت گام‌های زمانی ابتدایی منتقل می‌شوند، باید از طریق مجموعه‌ای از ضرب‌ها (قاعده زنجیره‌ای) به لایه‌های ابتدایی برسند. اگر مقدار این گرادیان‌ها کوچک باشد، ضرب آن‌ها در هم باعث کوچک‌شدن تدریجی مقادیر گرادیان‌ها می‌شود. این فرایند به‌صورت مداوم ادامه پیدا می‌کند و مقادیر به حدی کوچک می‌شوند که فرایند آموزش به مشکل برمی‌خورد و عملاً متوقف می‌شود؛ زیرا گرادیان‌ها مقادیر بسیار کوچکی دارند و تأثیر چندانی در تغییر وزن‌ها ندارند. این مشکل با اصطلاح «محوشدگی گرادیان» شناخته می‌شود. علاوه بر این، ممکن است به‌صورت معکوس مشکل «انفجار گرادیان» پیش بیاید. در این حالت، مقادیر گرادیان به‌تدریج بزرگ‌تر می‌شوند تا سرانجام مدل دچار خطا می‌شود و در محاسبات سرریز رخ می‌دهد.

حافظۀ طولانیِ کوتاه‌مدت (LSTM) چیست؟

همان‌طور که در بخش قبل توضیح دادیم، RNNها با مشکل محوشدگی یا انفجار گرادیان روبه‌رو هستند. مشکل محوشدگی گرادیان باعث می‌شود که RNNها حافظۀ کوتاه‌مدت داشته باشند و در درک و ذخیره اطلاعات مهم در دنباله‌های بلند دچار مشکل شوند. به عبارت ساده‌تر، حافظه بلندمدت RNNها به درستی کار نمی‌کند. این مشکل به این دلیل به وجود می‌آید که یادگیری در لایه‌های ابتدایی مدل‌های RNN به خوبی صورت نمی‌گیرد و مدل اطلاعات مربوط به عناصر ابتدای دنباله را فراموش می‌کند. بنابراین در عمل نمی‌توان از RNNها برای دنباله‌های طولانی استفاده کرد.

برای رفع این مشکل از شبکه‌ حافظه طولانی کوتاه‌مدت (LSTM) استفاده می‌شود. LSTM‌ یک نوع ویژه از RNN است که در درک و به یاد سپردن اطلاعات مهم در دنباله‌های بلند عملکرد برجسته‌ای دارد.

معماری LSTM پیچیده‌تر از معماری RNN ساده است. همان‌طور که در بخش‌‌های قبل توضیح دادیم، در هر گام زمانی یک عنصر از دنباله ورودی و حالت پنهان مرحله قبلی به‌عنوان ورودی به RNN ساده داده می‌شود و یک خروجی و حالت پنهان فعلی در خروجی RNN ایجاد می‌شود. در LSTM، علاوه بر این ورودی و خروجی‌ها، در هر گام زمانی یک مؤلفه جدید به نام حالت سلول به ورودی و خروجی اضافه می‌شود که تمامی گام‌های زمانی را به هم متصل می‌کند و به نوعی نقش حافظه بلندمدت را ایفا می‌کند. به عبارت دیگر، حالت سلول مانند یک بزرگراه میان‌بر بین گام‌های زمانی مختلف است که اطلاعات را در طول دنباله منتقل می‌کند. در طول زمان، در حالت سلول اطلاعاتی ذخیره یا حذف می‌شود. LSTM برای کنترل جریان داده و حذف یا ذخیرۀ اطلاعات از سه دروازه استفاده می‌کند. این سه دروازه عبارت‌اند از:

  1. دروازۀ فراموشی
  2. دروازۀ ورودی
  3. دروازۀ خروجی

در ادامه این بخش این مفاهیم جدید در LSTM را توضیح خواهیم داد.

شکل 11: نحوه انجام محاسبات در هر گام زمانی LSTM.

شکل 11: نحوه انجام محاسبات در هر گام زمانی LSTM.

شکل 11 جزئیات محاسبات در درون LSTM را نشان می‌دهد. برای درک بهتر این محاسبات، می‌توانیم مراحل زیر را در نظر بگیریم:

  1. تولید اطلاعات یا حافظه جدید: در LSTM، از ورودی جدید و حالت پنهان قبلی استفاده می‌شود و اطلاعات جدید تولید می‌گردد:

(10)

شکل 12: : تولید حافظه جدید در LSTM.

شکل 12: : تولید حافظه جدید در LSTM.

  1. دروازۀ ورودی: در این مرحله، مقدار دروازۀ ورودی تعیین می‌کند که چه میزان از حافظه جدید در حافظه بلندمدت یا حالت سلول ذخیره گردد. اگر مقدار دروازۀ ورودی نزدیک به یک باشد، اطلاعات جدید در حافظه بلندمدت ذخیره می‌شود و اگر مقدار آن نزدیک به صفر باشد، اطلاعات جدید در حافظه ذخیره نمی‌شود. مقدار دروازۀ ورودی براساس ورودی جدید x_t و حالت پنهان قبلی h_(t-1) محاسبه می‌گردد:

(11)

شکل 13: محاسبه دروازۀ ورودی در LSTM.

شکل 13: محاسبه دروازۀ ورودی در LSTM.

  1. دروازۀ فراموشی: این دروازه شبیه دروازۀ ورودی است، با این تفاوت که سودمندی ورودی را تعیین نمی‌کند. در عوض ارزیابی می‌کند که آیا حافظه بلندمدت گذشته یا حالت سلول قبلی c_(t-1) برای محاسبه حالت سلول فعلی c_t مفید است یا خیر. اگر مقدار دروازۀ فراموشی نزدیک به یک باشد، حافظۀ گذشته در حافظۀ فعلی باقی می‌ماند و اگر مقدار آن نزدیک به صفر باشد، حافظۀ قبلی فراموش می‌شود. مقدار دروازۀ فراموشی f_t بر اساس ورودی جدید x_t و حالت پنهان قبلی به دست می‌آید:

(12)

شکل 14: محاسبه دروازۀ فراموشی در LSTM.

شکل 14: محاسبه دروازۀ فراموشی در LSTM.

  1. تولید حافظه نهایی: در این مرحله با توجه به دروازۀ ورودی i_t و دروازۀ فراموشی f_tبه ترتیب میزان ذخیره اطلاعات ورودی جدید c ̃_t و فراموشی حافظه قبلی c_(t-1) محاسبه و از جمع این دو حالت سلول یا حافظه نهایی c_t به دست می‌آید:

(13)

شکل 15: تولید حافظه نهایی در LSTM.

شکل 15: تولید حافظه نهایی در LSTM.

  1. دروازۀ خروجی: هدف این دروازه، جداسازی حافظه نهایی c_t از حالت پنهان h_t است. حافظه نهایی c_tحاوی اطلاعات زیادی است که لزوماً نیاز نیست در حالت پنهان h_t ذخیره شود. حالت‌های پنهان در هر دروازه LSTM استفاده می‌شوند. بنابراین، این دروازه ارزیابی می‌کند که چه بخش‌هایی از حافظه c_t باید در حالت پنهان h_t باشد. برای این منظور دروازۀ خروجی، سیگنالی به نام o_t تولید می‌کند که از آن برای فیلتر کردن تانژانت هایپربولیک حافظه c_t و به دست آوردن حالت پنهان h_t استفاده می‌شود.
شکل 16: محاسبۀ دروازۀ خروجی در LSTM.

شکل 16: محاسبۀ دروازۀ خروجی در LSTM.

واحد بازگشتی دارای دروازه (GRU) چیست؟

در بخش قبل به‌طور مفصل توضیح دادیم که LSTM چگونه کار می‌کند. اکنون در این بخش به ساختار درونی نوع دیگری از RNNها به نام GRU می‌پردازیم. GRUها نسل جدیدتر شبکه‌های عصبی بازگشتی هستند و نسخۀ ساده‌شدۀ LSTM است. در LSTM، تعداد پارامترها و دروازه‌ها نسبتاً زیاد است و باعث بروز مشکلاتی مانند بیش‌برازش و افزایش هزینه محاسباتی می‌شود. از این رو برای رفع این مشکل، شبکه‌های GRU با تعداد پارامترها و دروازه‌های کمتر نسبت به LSTM معرفی گردید. در GRU حالت سلول، که در LSTM وجود دارد، حذف شده‌است و از حالت پنهان برای انتقال اطلاعات استفاده می‌شود. علاوه بر این، در GRU تنها دو دروازۀ تنظیم مجدد و دروازۀ به‌روزرسانی وجود دارد. دروازۀ تنظیم مجدد تصمیم می‌گیرد چه مقدار از حالت پنهان قبلی را حفظ کند و دروازۀ به‌روزرسانی تصمیم می‌گیرد چه مقدار از ورودی جدید را در حالت پنهان قرار دهد. پیاده‌سازی GRU آسان‌تر است و در مقایسه با LSTM به پارامترهای کمتری نیاز دارد.

شکل 17: نحوۀ انجام محاسبات در هر گام زمانی GRU.

شکل 17: نحوۀ انجام محاسبات در هر گام زمانی GRU.

برای درک بهتر عملکرد درونی GRUها مراحل زیر را در نظر بگیرید:

  1. تولید حافظه جدید: در GRU، از ورودی جدید x_t و حالت پنهان قبلی h_(t-1) استفاده می‌شود و اطلاعات یا حافظه جدید h ̃_t تولید می‌شود:

(15)

شکل 18: تولید حافظۀ جدید در GRU.

شکل 18: تولید حافظۀ جدید در GRU.

  1. دروازۀ تنظیم مجدد: دروازۀ تنظیم مجدد r_t مسئول تعیین اهمیت حالت پنهان قبلی h_(t-1) در فرایند محاسبه حافظه جدید h ̃_t است. دروازۀ تنظیم مجدد این توانایی را دارد که متوجه شود اگر حالت پنهان قبلی h_(t-1) به محاسبه حافظه جدید h ̃_t بی‌ربط است، حالت پنهان قبلی h_(t-1) را کاملاً از محاسبات حذف کند. در واقع GRU با استفاده از این دروازه تصمیم می‌گیرد که چقدر از اطلاعات گذشته را فراموش کند.

(16)

دروازۀ به‌روزرسانی: دروازۀ به‌روزرسانی مسئول تعیین مقدار تاثیر حالت پنهان گذشته برای محاسبه حالت بعدی است. اگر مقدار این دروازه برابر یک باشد، حالت پنهان قبلی h_(t-1)تقریباً به‌طور کامل در حالت بعدی h_t کپی می‌شود. برعکس، اگر مقدار این دروازه صفر باشد، بیشتر حافظه جدید h ̃_t به حالت پنهان بعدی h_t ارسال می‌شود. به زبان ساده‌تر، دروازۀ به‌روز‌رسانی مشابه دروازۀ فراموشی و ورودی LSTM عمل می‌کند و تصمیم می‌گیرد چه اطلاعاتی دور ریخته شود و چه اطلاعات جدیدی اضافه شود.

(17)

حالت پنهان: در نهایت حالت پنهان h_t با استفاده از ورودی پنهان گذشته h_(t-1) و حافظه جدید h ̃_t و با توجه به دروازۀ به‌روزرسانی تولید می‌شود.

(18)

توجه داشته باشید که GRU کمی سریع‌تر از LSTM آموزش داده می‌شود؛ زیرا محاسبات کمتری نسبت به LSTM دارد. با این حال هنوز به‌طور واضح مشخص نیست که کدام یک از این دو بهتر عمل می‌کند و معمولاً محققان از هر دو در آزمایش‌های خود استفاده می‌کنند و مشخص می‌کنند که کدام یک از این شبکه‌ها در وظیفه مد نظر آن‌ها بهتر عمل می‌کند.

مقایسه LSTM و GRU /h2>

تفاوت‌ اصلی بین LSTM و GRU در معماری آنها نهفته است. LSTM دروازه‌ها و پارامترهای بیشتری نسبت به GRU دارد که به آن انعطاف‌پذیری بیشتری می‌دهد، اما هزینه محاسباتی را بالا می‌برد. GRU دارای دروازه‌ها و پارامترهای کمتری نسبت به LSTM است که آن را ساده‌تر و سریع‌تر می‌کند؛ اما قدرت و سازگاری کمتری دارد. LSTM در خروجی دارای حالت سلولی و خروجی جداگانه است که به آن امکان ذخیره و خروجی اطلاعات مختلف را می‌دهد. در حالی که GRU در خروجی تنها دارای یک حالت پنهان است که ممکن است ظرفیت آن را محدود کند.

با وجود این تفاوت‌ها، LSTM و GRU ویژگی‌های مشترکی دارند که باعث می‌شود هر دو ‌RNNهای کارآمدی باشند. آنها هر دو از دروازه‌ها برای کنترل جریان اطلاعات و جلوگیری از محوشدگی یا انفجار گرادیان استفاده می‌کنند. هر دوی آنها می‌توانند وابستگی‌های طولانی‌مدت را یاد بگیرند و الگوهای متوالی را در داده‌ها ثبت کنند. برای افزایش عمق و پیچیدگی شبکه، هر دوی آنها را می‌توان به‌صورت چند لایه پشت‌سرهم استفاده کرد. علاوه بر این، هر دوی آنها را می‌توان با دیگر معماری‌های شبکه عصبی مانند شبکه‌های عصبی کانولوشن (CNN) یا مکانیزم‌های توجه ترکیب کرد تا عملکرد آنها افزایش یابد.

عملکرد LSTM و GRU به وظیفه، داده و ابرپارامترها بستگی دارد. به‌طور کلی، LSTM قدرتمندتر و انعطاف‌پذیرتر از GRU است، اما همچنین پیچیده‌تر و مستعد بیش‌برازش است. GRU سریع‌تر و کارآمدتر از LSTM است، اما ممکن است وابستگی‌های طولانی‌مدت را به خوبی LSTM دریافت نکند. برخی از مطالعات تجربی نشان داده‌اند که LSTM و GRU در بسیاری از وظایف پردازش زبان طبیعی مانند تجزیه و تحلیل احساسات، ترجمه ماشینی و تولید متن به‌طور مشابه عمل می‌کنند. با این حال، برخی از وظایف ممکن است از ویژگی‌های خاص LSTM یا GRU بهره‌مند شوند، مانند توصیف تصویر، تشخیص گفتار، یا تجزیه و تحلیل ویدئو.

نتیجه‌گیری

به‌طور خلاصه، RNNها برای پردازش داده‌های متوالی بسیار مفید هستند، اما از مشکل حافظه کوتاه‌مدت رنج می‌برند و وابستگی‌های بلندمدت در دنباله را فراموش می‌کنند. به منظور حل این مشکل، شبکه‌های LSTM و GRU با استفاده از مکانیزم‌هایی به نام «دروازه» ایجاد شدند. این دروازه‌ها، جریان اطلاعاتی را که از طریق زنجیره توالی جریان می‌یابد، تنظیم می‌کنند. با وجود به‌کارگیری دروازه‌ها در شبکه‌های LSTM و GRU، همچنان مشکل فراموشی دنباله‌های طولانی در شبکه‌های عصبی بازگشتی وجود دارد. در سال 2014 و 2015 مکانیزم دیگری به نام «توجه» برای حل این مشکل مطرح شد. در پست‌های آینده، ایدۀ اصلی این مکانیزم و کاربردهای آن را بررسی خواهیم کرد.

منابع

https://dennybritz.com/posts/wildml/recurrent-neural-networks-tutorial-part-1 https://dennybritz.com/posts/wildml/recurrent-neural-networks-tutorial-part-3/ https://www.geeksforgeeks.org/ml-back-propagation-through-time/ https://medium.com/@annikabrundyn1/the-beginners-guide-to-recurrent-neural-networks-and-text-generation-44a70c34067f https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a-step-by-step-explanation-44e9eb85bf21 https://www.linkedin.com/advice/0/what-differences-similarities-between-lstm-gru
( )( )( )( )( )
به این مطلب امتیاز دهید

نظرات

جهت ارسال نظر و دیدگاه خود باید ابتدا وارد سایت شوید