**یادگیری توالیبهتوالی با شبکههای عصبی**
**مرتضـی ذاکـری** ؛ *آبانماه 1396*.
[نسخه PDF (فاز اول)](https://www.dropbox.com/s/b3n2nfc1hgmvkhh/Zakeri_NLP961_project_p1_rc01.pdf?dl=0)
[مرجع اصلی](https://www.dropbox.com/s/ikyd12fytka91f3/2014_sequence-to-sequence-learning-with-neural-networks.pdf?dl=0)
----------
**چکــیده**
![<b>دانشـکده مهندسی کامپیوتر</b>](https://boute.s3.amazonaws.com/290-IUST_logo_color.png)
**<h1 align = "center">یـادگیری توالیبهتوالی با شبکههای عصبی</h1>**
<h4 align="center">
<b> مرتــضی ذاکـری (M - Z A K E R I [ A T ] L I V E [ D O T ] C O M)
</b>
</h4>
[نسخه PDF (فاز دوم) (حجم 1.75MB)](https://www.dropbox.com/s/136sllw98zosbvp/Zakeri_NLP961_project_p2_rc01.pdf?dl=0) *آذرماه 1396*
[نسخه PDF (فاز اول) (حجم 1.23MB)](https://www.dropbox.com/s/b3n2nfc1hgmvkhh/Zakeri_NLP961_project_p1_rc01.pdf?dl=0) *آبانماه 1396*
[فایل ZIP کلیه تصاویر استفاده شده (حجم 2.22MB)](https://www.dropbox.com/s/xd5y5zxrvm9f67d/Zakeri_NLP961_project_figs.zip?dl=0)
[مرجع اصلی (حجم 165KB)](https://www.dropbox.com/s/ikyd12fytka91f3/2014_sequence-to-sequence-learning-with-neural-networks.pdf?dl=0)
----------
**<h2>چکیده</h2>**یادگیری ژرف شاخهای نسبتا جدید از یادگیری ماشین است که در آن توابع محاسباتی بهشکل گرافهای چند سطحی یا ژرف برای شناسایی و تخمین قانون حاکم بر حل یک مسئله پیچیده بهکار بسته میشوند. شبکههای عصبی ژرف ابزاری برای طراحی و پیادهسازی این مدل یادگیری هستند. این شبکهها در بسیاری از وظایف یادگیری ماشینی سخت، موفق ظاهر شدهاند. بهمنظور استفاده از شبکههای ژرف در وظایفی که ترتیب ورودی داده در انجام آن مؤثر است مانند اکثر وظایف حوزه پردازش زبان طبیعی، شبکههای عصبی مکرر ابداع گشتند که بازنمایی مناسبی از مدلهای زبانی ارایه میدهند. این مدلها در حالت ساده برای همه وظیفههای یک مدل زبانی مناسب نیستند. در این گزارش مدل خاصی از شبکههای مکرر تحت عنوان مدل توالیبهتوالی یا کدگذار-گدگشا بررسی میشود که برای وظایفی که شامل توالیهای ورودی و خروجی با طول متفاوت هستند؛ نظیر ترجمه ماشینی، توسعه داده شده و توانسته است نتایج قابل قبولی را در این زمینه تولید کند.
**کلیدواژهها:** مدل توالیبهتوالی، شبکه عصبی مکرر، یادگیری ژرف، ترجمه ماشینی.
# مقدمه<br/>
# **مقدمه**
مدلها و روشهای یادگیری بهکمک شبکههای عصبی ژرف (DNNs)[^1] اخیرا، با افزایش قدرت محاسباتی سختافزارها و نیز حل برخی از چالشهای اساسی موجود بر سر راه آموزش و یادگیری این شبکهها، بسیار مورد توجه واقع شدهاند. DNNها در انجام وظایف سخت یادگیری ماشین مانند تشخیص گفتار، تشخیص اشیاء و غیره، فوقالعاده قدرتمند ظاهر شدهاند و در مواردی روشهای سنتی را کاملاً کنار زدهاند. قدرت بازنمایی زیاد DNNها به این دلیل است که قادر هستند محاسبات زیادی را به صورت موازی در چندین لایه انجام داده، با تعداد زیادی پارامتر پاسخ مسئله داده شده را تخمین زده و مدل مناسبی از آن ارایه دهند. درحال حاضر DNNهای بزرگ میتوانند با استفاده از الگوریتم پسانتشار[^2] بهصورت بانظارت[^3] روی یک مجموعه آموزش برچسبزده و بهقدر کافی بزرگ آموزش ببینند. بنابراین در مواردی که ضابطه حاکم بر یک مسئله دارای پارامترهای بسیار زیادی است و یک مقدار بهینه از این پارامترها وجود دارد (صرفا با استناد به این که مغز انسان همین مسئله را خیلی سریع حل میکند)، روش یادگیری پسانتشار این تنظیم از پارامترها (مقدارهای بهینه) را یافته و مسئله را حل میکند [1].
بسیاری از وظایف یادگیری ماشین به حوزه پردازش زبان طبیعی (NLP)[^4] مربوط میشوند؛ جایی که در آن معمولا ترتیب ورودیها و خروجیهای یک مسئله مهم است. برای مثال در ترجمه ماشینی دو جمله با واژههای یکسان ولی ترتیب متفاوت، معانی (خروجیهای) مختلفی دارند. این وظایف اصطلاحا مبتنی بر توالی[^5] هستند. در واقع ورودی آنها به صورت یک توالی است. شبکههای عصبی رو به جلو ژرف[^6] برای این دسته از وظایف خوب عمل نمیکنند؛ چرا که قابلیتی برای بهخاطر سپاری و مدلسازی ترتیب در آنها تعبیه نشده است.شبکههای عصبی مکرر (RNNs)[^7] خانوادهای از شبکههای عصبی برای پردازش وظایف مبتنی بر توالی هستند. همانطور که شبکههای عصبی پیچشی (CNNs)[^8]، ویژه پردازش یک تور[^9] از مقادیر، برای مثال یک تصویر، طراحی شدهاند؛ یک RNN نیز همسو با پردازش یک توالی از مقادیر ورودی $$ x\quad =\quad <{ x }^{ (1) },\quad { x }^{ (2) },\quad ...,\quad { x }^{ (n) }> $$ساخته شده است [2]. خروجی RNNها نیز مانند ورودی آنها در اغلب وظایف یک توالی است. این قابلیت پردازش توالی توسط شبکههای عصبی، آنها را برای استفاده در وظایف NLP، بسیار درخور ساخته است.
## **شرح مسئله و اهمیت موضوع**
برخلاف انعطاف پذیری و قدرت بالای RNNها، در حالت ساده این شبکهها یک توالی ورودی با طول ثابت را به یک توالی خروجی با همان طول نگاشت میکنند. این موضوع اما یک محدودیت جدی است؛ زیرا، بسیاری از مسائل مهم، در قالب توالیهایی که طولشان از قبل مشخص نیست، به بهترین شکل قابل بیان هستند و در نظر گرفتن یک طول ثابت از پیش تعیین شده برای ورودی و خروجی به خوبی مسئله را مدل نمیکند. برای مثال ترجمه ماشینی (MT)[^10] و تشخیص گفتار[^11] مسائلی از این دست هستند. همچنین سیستم پرسش و پاسخ را نیز میتوان به صورت نگاشت یک توالی از واژهها بهعنوان پرسش، به یک توالی دیگر از واژهها به عنوان پاسخ، در نظر گرفت. بنابراین پُر واضح است که ایجاد یک روش مستقل از دامنه برای یادگـیری نگاشت توالیبهتولی مفید و قابل توجیه خواهد بود [1].
## **اهداف و راهکارها**
همانطور که دیدیم طیف وسیعی از وظایف NLP مبتنی بر نگاشت توالیهای با طول نامشخص و متغیر به یکدیگر است. همچنین روشهای سنتی مثل n-garm دارای محدودیتهای خاص خود در حل این دسته مسائل هستند و استفاده از روشهای یادگیری ژرف به وضوح امید بخش بوده است. بنابراین هدف ارایه یک مدل مبتنی بر RNNها جهت نگاشت توالیبهتوالی است. در این گـزارش راهکار مطرح شده در [1] و نتایج آن بهتفصیل شرح داده میشود.
Stuskever و همکاران [1] نشان دادند که چگونه یک کاربرد ساده از شبکه با معماری حافظه کوتاهمدت بلند (LSTM)[^12] میتواند مسائل نگاشت توالیبهتوالی را حل کند. ایده اصلی استفاده از یک LSTM برای خواندن توالی ورودی، بهصورت یک نمونه در هر مرحله زمانی، جهت اقتباس برداری بزرگ با بعد ثابت و سپس استفاده از یک LSTM دیگر برای استخراج توالی خروجی از آن بردار است. LSTM دوم دقیقا یک مدل زبانی مبتنی بر RNN است با این تفاوت که حاوی احتمال شرطی نسبت به توالی ورودی نیز هست. قابلیت LSTM در یادگیری موفق وابستگیهای مکانی طولانی مدت نهفته درون توالیها، آن را برای استفاده در مدل پیشنهادی مناسب ساخته است. شکل (1) یک طرحواره از این مدل را به صورت عام نشان میدهد.
![شکل (1) یک طرحواره از مدل توالیبهتوالی متشکل از دو RNN. این مدل توالی ABC را بهعنوان ورودی خوانده و توالی WXYZ را بهعنوان خروجی تولید میکند. مدل پس از تولید نشانه EOS روند پیشبینی خود را متوقف میکند [1]. ](https://boute.s3.amazonaws.com/290-fig1.PNG)
## **دادهها و نتایج**
مدل پیشنهادی در بخش قبل، برروی وظیفه ترجمه ماشینی عصبی (NMT)[^13] مورد آزمایش قرار گرفته است. برای انجام آزمایشها از مجموعه داده ترجمه انگلیسی به فرانسوی WMT’14 استفاده شده است [3]. همچنین مجموعه داده کوچکتری در [4] وجود دارد که برای آموزش مدلهای آزمایشی و غیر واقعی مناسب است. این مجموعه شامل ترجمههای انگلیسی به فارسی نیز هست.
نتایج حاصل شده از این کار بدین قرار است. بر روی مجموعه داده WMT’14 با استخراج مستقیم ترجمه از پنج LSTM ژرف با 380 میلیون پارامتر، در نهایت امتیاز BLEU معادل 34.81 کسب گردیده است. این امتیاز بالاترین امتیازی است که تا زمان ارایه این مقاله از طریق NMT حاصل شده است. بهعنوان مقایسه امتیاز BLEU برای ترجمه ماشینی آماری (SMT)[^14] برروی همین مجموعه داده برابر 33.30 است. این درحالی است که امتیاز 34.81 با احتساب اندازه واژهنامه 80هزار کلمه بهدست آمده و هرجا که کلمه ظاهر شده در ترجمه مرجع در واژهنامه نبوده این امتیاز جریمه شده است. بنابراین نتایج نشان میدهد که یک معماری مبتنی بر شبکه عصبی تقریبا غیر بهینه، که نقاط زیادی برای بهبود دارد، قادر است تا روشهای سنتی مبتنی بر عبارتِ سیستم SMT را شکست دهد [1].
# مفاهیم اولیه
<br/>
# **مفاهیم اولیه**
در این قسمت پیرامون سه مفهوم اصلی گزارش پیشرو، یعنی مدل زبانی (LM)[^15]، شبکههای عصبی مکرر و ترجمه ماشینی عصبی، بهصورت مختصر توضیحاتی ارایه میگردد.
## **مدل زبانی**
مدل زبانی یک مفهوم پایه در NLP است که امکان پیشبینی نشانه بعدی در یک توالی را فراهم میکند. بهبیان دقیقتر LM عبارت است از یک توزیع احتمالی روی یک توالی از نشانهها (اغلب واژهها) که احتمال وقوع یک توالی داده شده را مشخص میکند. در نتیجه میتوان بین چندین توالی داده شده برای مثال چند جمله، آن را که محتملتر است، انتخاب کرد [5]. LM برای توالی
$$ x\quad =\quad <{ x }^{ (1) },\quad { x }^{ (2) },\quad ...,\quad { x }^{ (n) }> $$
عبارت است از:
![](https://boute.s3.amazonaws.com/290-rel1.PNG)
مدلهای سنتی n-gram برای غلبه بر چالشهای محاسباتی، با استفاده از فرض مارکوف رابطه (1) را به درنظر گرفتن تنها n-1 نشانه قبلی محدود میکنند. بههمین دلیل برای توالیهای طولانی (بیشتر از 4 یا 5 نشانه) و دیده نشده مناسب نیستند. مدلهای زبانی عصبی (NLMs)[^16] که بر مبنای شبکههای عصبی عمل پیشبینی واژه بعدی را انجام میدهند، در ابتدا برای کمک به n-gramها با آنها ترکیب شدند که منجر به ایجاد پیچیدگیهای زیادی شد؛ در حالی که مشکل توالیهای طولانی همچنان وجود داشت [5]. اخیرا اما، معماریهای جدیدی برای LM که کاملا بر اساس DNNها است، ایجاد شدهاند. سنگبنای این مجموعه معماریها RNNها بوده که در بخش بعدی معرفی میشوند.
## **شبکههای عصبی مکرر**
شبکههای عصبی مکرر کلاسی از شبکههای عصبی هستند که بهصورت یک **_گراف جهتدار دوری_** بیان میشوند. بهعبارت دیگر ورودی هریک از لایه(های) پنهان یا خروجی علاوه بر خروجی لایه قبل، شامل ورودی از مرحله قبل بهصورت بازخورد نیز میشود. شکل (2) یک RNN را نشان میدهد. همانطور که پیداست، لایه پنهان از مراحل قبلی هم بازخورد میگیرد. در هر مرحلهزمانی t از (t=1 تا t=n) یک بردار x<sup>(t)</sup> از توالی ورودی
$$ x\quad =\quad <{ x }^{ (1) },\quad { x }^{ (2) },\quad ...,\quad { x }^{ (n) }> $$
پردازش میشود. در حالت کلی معادلههای بروزرسانی (گذرجلو[^17]) یک RNN در t عبارتند از [2]:
![](https://boute.s3.amazonaws.com/290-rel2_5.PNG)
که در آن بردارهای b و c بایاس و ماتریسهای _U_، _V_ و _W_ بهترتیب وزن یالهای لایه ورودی به پنهان، پنهان به خروجی و پنهان به پنهان، تشکیلدهنده مجموعه پارامترهای شبکه هستند. Φ تابع انگیزش است که معمولا یکی از توابع ReLU[^18] یا سیگموید[^19] انتخاب میشود. لایه آخر را نیز تابع بیشینه هموار[^20] تشکیل میدهد که احتمال وقوع هر نشانه خروجی را مشخص میکند.
![شکل (2) گراف محاسباتی مربوط به یک نوع RNN که یک توالی ورودی از مقادیر x را به یک توالی خروجی از مقادیر o نگاشت میکند. فرض شده است که خروجی o احتمالات نرمال نشده است، بنابراین خروجی واقعی شبکه یعنی ŷ از اعمال تابع بیشینه هموار روی o حاصل میشود. چپ: RNN بهصورت یال بازگشتی. راست: همان شبکه بهصورت باز شده در زمان، بهنحوی که هر گره با یک برچسب زمانی مشخص شده است [2].](https://boute.s3.amazonaws.com/290-fig2.PNG)
در شکل (2)، RNN با یک لایه پنهان نشان داده شده است. اما میتوان RNNژرف با چندین لایه پنهان نیز داشت. همچنین طول توالیهای ورودی و خروجی میتواند بسته به مسئله مورد نظر متفاوت باشد. karpathy در [6] RNNها را از منظر طول توالی ورودی و طول توالی خروجی به چند دسته تقسیمبندی کرده است. شکل (3) این دستهبندی را نشان میدهد.
![شکل (3) طرح وارهای از حالتهای مختلف RNN. (الف):شبکه عصبی استاندارد، (ب):شبکه یک به چند، (پ): شبکه چند به یک، (ت)و (ث): شبکههای چند به چند [6].](https://boute.s3.amazonaws.com/290-fig3.PNG)
تصویر karpathy از حالتهای مختلف RNN بعد از انتشار مقاله منتخب در این گزارش میباشد؛ با این حال در بخش 4 خواهیم دید که چگونه میتوان از ترکیب این طرحها نیز برای ایده معماری توالیبهتولی الهام گرفت.
## **ترجمه ماشینی عصبی**
بهطور کلی MT را می توان با یک LM که به جمله زبان مبدأ مشروط شده است، مدلسازی کرد. بر همین اساس NMT را میتوان یک مدل زبانی مکرر در نظر گرفت که مستقیما احتمال شرطی p(y|x) را در ترجمه جمله زبان مبدأ
$$ x\quad =\quad <{ x }^{ (1) },\quad { x }^{ (2) },\quad ...,\quad { x }^{ (n) }> $$به جمله زبان مقصد
$$ y\quad =\quad <{y }^{ (1) },\quad { y }^{ (2) },\quad ...,\quad { y }^{ (m) }> $$مدل میکند. دقت شود که طول جمله مبدأ یعنی n و جمله مقصد یعنی m الزاما برابر نیست. بنابراین در NMT هدف محاسبه این احتمال و سپس استفاده از آن در تولید جمله به زبان مقصد، هر دو به کمک DNNها است [5].
# کارهای مرتبط
<br/>
# **کارهای مرتبط**
کارهای زیادی در زمینه NLMs انجام شده است. در بیشتر این کارها از شبکههای عصبی روبهجلو یا مکرر استفاده شده و کاربرد آن معمولا در یک وظیفه MT با امتیازدهی مجدد n فهرست بهتر[^21]، اعمال شده و نتایج آن معمولا نشان از بهبود امتیازهای قبلی داشته است [1].
اخیرا کارهایی در زمینه فشردن اطلاعات زبان مبدأ در NLM انجام شده است. برای نمونه Auli و همکاران [7] NLM را با مدل عنوان[^22] جمله ورودی ترکیب کردهاند که نتایج بهبود بخشی داشته است. کار انجام شده در مقاله [1] به کار [8] بسیار نزدیک است. در مقاله [8] نویسندگان برای اولین بار توالی ورودی را در یک بردار فشرده کرده و سپس آن را به توالی خروجی تبدیل کردند. البته در این کار، برای تبدیل توالی به بردار، از CNNs استفاده شده که ترتیب واژهها را حفظ نمیکند. چُـــو و همکاران [9] یک معماری شبهِ LSTM را برای نگاشت توالی ورودی به بردار و سپس استخراج توالی خروجی و نهایتا ترکیب آن با SMT استفاده کردهاند. معماری آنها از دو RNN با عنوانهای کدگذار و کدگشا تشکیل شده که RNN اول وظیفه تبدیل یک توالی با طول متغیر به یک بردار با طول ثابت را قابل یک سلول زمینه c دارد و RNN دوم وظیفه تولید توالی خروجی را با لحاظ کردن c و نماد شروع جمله مقصد بر عهده دارد. معماری پیشنهادی آنها تحت عنوان کلی RNNکدگذار-کدگشا در شکل (4) نشان داده شده است. چون آنها از LSTM استفاده نکرده و بیشتر تلاش خود را معطوف به ترکیب این روش با مدلهای قبلی SMT کردهاند، برای توالیهای ورودی و خروجی طولانی همچنان مشکل عدم حفظ حافظه وجود دارد.
Bahdanau و همکاران [10] یک روش ترجمه مستقیم با استفاده از شبکه عصبی پیشنهاد دادهاند که از سازوکار _attention_ برای غلبه بر کارآمدی ضعیف روش [9] روی جملات طولانی استفاده میکند و به نتایج مطلوبی دست یافتند.
![شکل (4) مدل RNN کدگذار-کدگشا، که برای یادگـیری تولید توالی خروجی (فرمول درست چاپ نشده)$$ <{ y }^{ (1) },\quad ...,\quad { y }^{ { { (n }_{ y }) } }>$$ از روی توالی ورودی
$$ <{ x }^{ (1) },\quad ...,\quad { x }^{ { { (n }_{ x }) } }>$$
بهکار میرود [2].](https://boute.s3.amazonaws.com/290-fig4.PNG)
# مدل توالیبهتوالی
![شکل (4) مدل RNN کدگذار-کدگشا، که برای یادگـیری تولید توالی خروجی y از روی توالی ورودی x با استخراج سلول حافظه c از توالی ورودی، بهکار میرود [2].](https://boute.s3.amazonaws.com/290-fig4.PNG)
<br/>
# **مدل توالیبهتوالی**
در مدل توالیبهتوالی از دو RNN با واحدهای LSTM استفاده شده است. هدف LSTM در اینجا تخمین احتمال شرطی
$$ p(<{ y }^{ (1) },\quad ...,\quad { y }^{ (m) }>\quad |\quad <{ x }^{ (1) },\quad ...,\quad { x }^{ (n) }>) $$
است که قبلا هم دیده بودیم (بخش 2-3). LSTM این احتمال شرطی را ابتدا با اقتباس بازنمایی بعد ثابت v برای توالی ورودی
$$ <{ x }^{ (1) },\quad ...,\quad { x }^{ (n) }> $$
از آخرین مقدار حالت پنهان و در ادامه با محاسبه احتمال
$$<{ y }^{ (1) },\quad ...,\quad { y }^{ (m) }> $$
از رابطه استاندارد مطرح در LM (رابطه (1)) و درنظر گرفتن برای حالت پنهان آغازین بهصورت داده شده در رابطه زیر، حساب میکند:
![](https://boute.s3.amazonaws.com/290-rel6.PNG)
در رابطه (6) هر توزیع احتمالی
$$ p({ y }^{ (t) }\quad |\quad v,\quad y^{ (1) },\quad ...,\quad y^{ (t-1) }) $$
بهوسیله یک تابع بیشینه هموار روی همه واژههای داخل واژهنامه بازنمایی میشود. برای LSTM از روابط [11] استفاده شده است. هر جمله در این مدل نیاز است تا با یک علامت خاص مثل EOS خاتمه یابد. این امر مدل را قادر میسازد تا بتواند توزیع احتمالی را روی توالی با هر طول دلخواهی تعریف کند. شمای کلی مدل در شکل (1) نشان داده شده است. در این شکل LSTM بازنمایی توالی ورودی
$$ <'A','B','C',EOS> $$را حساب و سپس از این بازنمایی برای محاسبه احتمال توالی خروجی
$$ <'W','X','Y','Z',EOS> $$
استفاده میکند. در عین حال این مدل را میتوان ترکیبی از قسمتهای پ و ت شکل (3) دانست.
مدل پیادهسازی شده در عمل از سه جنبه با مدل معرفی شده در بالا تفاوت دارد. اول، از دو LSTM جداگانه استفاده شده است: یکی برای توالی ورودی و دیگری برای توالی خروجی؛ زیرا، انجام این کار پارامترهای مدل را با هزینه محاسباتی اندکی، به تعداد بسیار زیادی افزایش میدهد. دوم اینکه LSTMهای ژرف بهشکل قابل توجهی LSTMهای سطحی را شکست میدهند، به همین دلیل LSTM با ژرفای چهار لایه بهکار گرفته شده است. سوم اینکه نویسندگان در این مقاله یافتهاند که وارون کردن توالی ورودی در سرعتِ همگرایی آموزش شبکه و نیز دقت پیشبینی آن تأثیر شگرفی ایفا میکند. بنابراین بهجای نگاشت مستقیم توالی
$$ a,b,c $$
به توالی
$$ \alpha ,\beta ,\gamma $$
LSTM برای نگاشت
$$ c,b,a $$
به
$$ \alpha ,\beta ,\gamma $$
آموزش داده میشود که در آن
$$ \alpha ,\beta ,\gamma $$
ترجمه یا خروجی متناظر با
$$ a,b,c $$
است. توجیه علت این پدیده آن است که در نگاشت به روش وارون ابتدای عبارتها که متناظر با یکدیگر هستند بههم نزدیک شده و این امر سبب زودتر همگرا شدن الگوریتم SGD و نزدیک شدن به مقادیر بهینه میشود [1].
## آموزش شبکه a,b,c به توالی α, β, γ شبکه LSTM برای نگاشت c,b,a به α, β, γ آموزش داده میشود که در آن α, β, γ ترجمه یا خروجی متناظر با همان a,b,c است. توجیه علت این پدیده آن است که در نگاشت به شیوه وارون ابتدای عبارتها که متناظر با یکدیگر هستند بههم نزدیک شده و این امر سبب زودتر همگرا شدن الگوریتم کاهش گرادیان تصادفی (SGD) و نزدیک شدن به مقادیر بهینه میشود [1].
## **آموزش شبکه**
مدل توالیبهتوالی پس از معرفی توسط Sutskever و همکاران [1]، بارها و بارها تا به امروز مورد ارجاع دیگران قرار گرفته و تبدیل به یک مدل مرجع در NMT شده است. این مدل در رساله دکتری آقای لانگ [5] بهتفصیل و همراه با برخی اصلاحات توضیح داده شده است. در این بخش به برخی جزئیات آموزش شبکه مدل توالیبهتوالی میپردازیم.
شکل (5) یک نمایش دقیقتر از مدل ذکر شده در شکل (1) را نشان میدهد. آموزش شبکه بدین نحو است: ابتدا جمله زبان مقصد، سمت راست جمله متناظر خود در زبان مبدأ قرار داده میشود. نشان ‘-‘ در اینجا نقش EOS را دارد که البته میتواند پایان جمله مبدأ یا آغاز جمله مقصد را مشخص کند. بنابراین به هر کدام از دو گروه قابل تعلق است. LSTM سمت چپ یا همان شبکه کدگذار، در هر مرحلهزمانی یک واژه از جمله زبان مبدأ را خوانده پس از تبدیل به نمایش مناسب حالت داخلی لایه پنهان را بروزرسانی میکند. در مرحله پردازش آخرین واژه مقادیر لایههای پنهان بردار ثابت که اکنون نماینده کل جمله ورودی زبان مبدأ است را تشکیل میدهد. سپس LSTM دوم یا شبکه کدگشا اولین واژه زبان مقصد را به همراه بردار v، بهعنوان ورودی دریافت میکند و پیشبینی خود را انجام میدهد. برچسب واقعی این داده در واقع واژه بعدی در جمله زبان مقصد است. پس از مقایسه و محاسبه خطا، الگوریتم پسانتشار روی هر دو شبکه با شروع از شبکه کدگشا اجرا میشود و پارامترها را در خلاف جهت گرادیان تنظیم میکند. این روند تا پایان یافتن جمله زبان مقصد ادامه پیدا میکند. البته در عمل ممکن است ورودی به صورت یک دسته[^23] به شبکه داده شود.
![شکل (5) نمایش نحوه عملکرد و آموزش مدل توالیبهتوالی روی وظیفه ترجمه ماشینی عصبی [5].](https://boute.s3.amazonaws.com/290-fig5.PNG)
در مرحله آزمون به جای مقایسه با برچسب و محاسبه خطا فقط احتمال آمدن واژه بعدی محاسبه و واژه از روی واژگان پیدا میشود. سپس خروجی مرحله t به عنوان ورودی مرحله t+1 به شبکه کدگشا داده میشود. این روش اصطلاحا teacher forcing نامیده میشود[2].
## **جزئیات آموزش شبکه**
در مقاله [1] از LSTMژرف با چهار لایه و 1000 سلول حافظه در هر لایه استفاده شده است. همچنین اندازه واژگان ورودی 160هزار و اندازه واژگان خروجی 80هزار کلمه است. حاصل کار یک شبکه LSTM با مجموع 380میلیون پارامتر بوده که 64میلیون آن اتصالات برگشتی هستند. دیگر جزئیات پارامترها و آموزش شبکه عبارتند از:
+ پارامترها با مقادیر تصادفی از توزیع یکنواخت در بازه [0.08+ و 0.08-] مقداردهی اولیه شدهاند.
+ برای آموزش از SGD استاندارد با نرخ یادگیری 0.7 استفاده شده است. بعد از گذشت پنج دوره[^24]، نرخ یادگیری در هر نیمدور، نصف میشود. در ضمن تعداد کل دورههای آموزش برابر 7.5 بوده است.
+ گرادیان بر روی دستههای 128تایی از توالیها محاسبه شده و به اندازه دسته، یعنی 128، تقسیم میشود.
+ هرچند LSTMها از معضل میرایی گرادیان[^25] رنج نمیبرند، اما ممکن است مشکل انفجار گرادیان[^26] را داشته باشند. بنابراین محدودیت سختی بر مقدار نورم گرادیان اعمال میشود بهاین نحو که هنگامی که نورم از مقدار آستانهای بیشتر شد، مجددا تنظیم شود. برای هر دسته در مجموعه آموزش مقدار
$$ s={ ||g|| }_{ 2 }$$
محاسبه میشود که در آن g مقدار گرادیان پس از تقسیم بر 128 است. اگر s>5 شد آنگاه قرار داده میشود:
$$ g=\frac { 5g }{ s }. $$
+ جملات مختلف طولهای مختلفی دارند. بیشتر آنها کوتاه هستند (طولی بین 20 تا 30 دارند) اما برخی از آنها طولانی هستند (طولی بیشتر از 100 دارند)؛ بنابراین دستههای 128تایی از جملات که تصادفی انتخاب میشوند تعداد کمی جمله طولانی داشته و تعداد زیادی جمله کوتاه و در نتیجه سبب میشود تا بیشتر محاسبات داخل هر دسته هدر روند. برای غلبه بر این موضوع سعی شده است همه جملات داخل یک دسته طول تقریبا مساوی داشته باشند. این امر انجام محاسبات را تا 2 برابر تسریع کرده است.
# آزمایشها<br/>
# **آزمایشها**
روش یادگیری توالیبهتوالی معرفی شده روی وظیفه ترجمه ماشینی انگلیسی به فرانسوی در دو حالت مختلف آزمایش گردیده است. در حالت اول مدل، برای ترجمه مستقیم جملات انگلیسی به فرانسوی بهکار گرفته شده و در حالت دوم برای امتیاز دهی مجدد n فهرست بهتر از جملات در وظیفه SMT استفاده شده است. در این قسمت نتایج آزمایشهای انجام گرفته در قالب امتیازهای ترجمه کسب شده، نمونه جملات ترجمه شده و بلاخره مصورسازی بازنمایی جملات ورودی، بیان شده است.
## **پیادهسازی**
پیادهسازی مدل اولیه با زبان ++C انجام شده است. این پیادهسازی از LSTM ژرف با پیکربندی شرح داده شده در بخش 4-1-2 روی یک GPU، تقریبا 1700 واژه بر ثانیه را پردازش میکند. این سرعت برای پردازش حجم داده زیادی مثل مجموعه WMT بسیار پایین است. برای این منظور مدل به صورت موازی شده روی 8 عدد GPU اجرا میگردد. هر لایه از LSTM روی یک GPU اجرا شده و فعالیتهای خود را به محض محاسبه به GPU یا لایه بعدی میدهد. چون مدل چهار لایه دارد، چهار GPU دیگر برای موازیسازی بیشینه هموار استفاده شدهاند بنابراین هر GPU مسئول محاسبه یک ضرب ماتریسی (ماتریس با اندازه 2000 × 1000) است. نتیجه حاصل از این موازیسازی در سطح GPU، رسیدن به سرعت پردازش 6300 واژه بر ثانیه است. فرایند آموزش در این شیوه پیادهسازی، 10 روز به طول انجامید [1].
علاوه بر پیادهسازی اولیه، پیادهسازیهای دیگری نیز از این مدل در زبانها و چهارچوبهای مختلف ارایه شده است؛ از جمله دو پیادهسازی خوب با زبان پایتون و روی چهارچوبهای کاری Tensorflow و Keras. پیادهسازی Tensorflow سازوکارهای جدیدتر مثل سازوکار _attention_ را نیز اضافه کرده است [12]. پیادهسازی Keras هم به جای واژه، در **سطح کاراکتر** انجام شده است [13]. اگرچه در همه پیادهسازیها ترجمه ماشینی، بهعنوان وظیفه انتخاب شده است. اما این مدل عام بود و برای هر وظیفهای که شامل نگاشت یک توالی ورودی به یک توالی خروجی با طولهای متفاوت است، قابل اعمال خواهد بود.
## جزئیات مجموعه داده
این قسمت در فاز دوم تکمیل میگردد.
## کدگشایی و امتیازدهی مجدد
این قسمت در فاز دوم تکمیل میگردد.
## وارونسازی جملات مبدأ
این قسمت در فاز دوم تکمیل میگردد.
## ارزیابی نتایج
این قسمت در فاز دوم تکمیل میگردد.
## کارآمدی روی جملات طولانی
این قسمت در فاز دوم تکمیل میگردد.
## تحلیل مدل
این قسمت در فاز دوم تکمیل میگردد.
# نتیجهگیری و کارهای آتی
این قسمت در فاز دوم تکمیل میگردد.
***
[^25]: vanishing gradient
[^26]: exploding gradient
[^24]: epoch
[^23]: batch
[^22]: topic model
[^21]: n-best list
[^18]: rectified linear unit
[^19]: sigmoid
[^20]: softmax function
[^17]: forward pass
[^16]: neural language models
[^15]: language model
[^14]: statistical machine translation
[^13]: neural machine translation
[^12]: long-short term memory
[^10]: machine translation
[^11]: speech recognition
[^1]: deep neural networks
[^2]: backpropagation
[^3]: supervised
[^4]: natural language processing
[^5]: sequence
[^6]: deep feed-forward neural networks
[^7]: recurrent neural networks
[^8]: convolutional neural networks
[^9]: grid
# مراجع
[1] Q.V. Le Ilya Sutskever, Oriol Vinyals, I. Sutskever, O. Vinyals, and Q. V. Le, “Sequence to sequence learning with neural networks,” _Nips_, pp. 1–9, 2014.
[2] I. Goodfellow, Y. Bengio, and A. Courville, _Deep learning_. MIT Press, 2016.
[3] “ACL 2014 ninth workshop on statistical machine translation.” [Online]. Available: http://www.statmt.org/wmt14/medical-task/index.html. [Accessed: 13-Nov-2017].
[4] “Tab-delimited bilingual bentence pairsfrom the tatoeba project (good for anki and similar flashcard applications).”[Online]. Available: http://www.manythings.org/anki/. [Accessed: 13-Nov-2017].
[5] M. T. Luong, “Neural machine translation,” Stanford university, 2016.
[6] A. Karpathy, “Connecting images and natural language,” Stanford University, 2016.
[7] M. Auli, M. Galley, C. Quirk, and G. Zweig, “Joint language and translation modeling with recurrent neural networks.,” _Emnlp_, no. October, pp. 1044–1054, 2013.
[8] N. Kalchbrenner and P. Blunsom, “Recurrent continuous translation models,” _Emnlp_, no. October, pp. 1700–1709, 2013.
[9] K. Cho _et al._, “Learning phrase representations using RNN encoder-decoder for statistical machine translation,” 2014.
[10] D. Bahdanau, K. Cho, and Y. Bengio, “Neural machine translation by jointly learning to align and translate,” pp. 1–15, 2014.
[11] A. Graves, “Generating sequences with recurrent neural networks,” pp. 1–43, 2013.
[12] M.-T. Luong, E. Brevdo, and R. Zhao, “Neural machine translation (seq2seq) tutorial,” _https://github.com/tensorflow/nmt_, 2017.
[13] “Sequence to sequence example in Keras (character-level),” 2017. [Online]. Available: https://github.com/fcholle/keras/blob/master/examples/lstm_seq2seq.py. [Accessed: 13-Nov-2017].
# واژهنامه
**واژهنامه فارسی به انگلیسی**
| **واژهی فـارسی** | | **معادل انگلیسی** |
|:-----------------------:|:------:|:---------------------------------:|
| انفجار گرادیان | | Exploding Gradient |
| بانظارت | | Supervised |
| تابع بیشینه هموار | | Softmax Function |
| پردازش زبان طبیعی | | Natural Language Processing (NLP) |
| پسانتشار | | Backpropagation |
| ترجمه ماشینی | | Machine Translation (MT) |
| ترجمه ماشینی آماری | | Statistical Machine Translation (SMT) |
| ترجمه ماشینی عصبی | | Neural Machine Translation (NMT) |
| تشخیص گفتار | | Speech Recognition |
| توالی | | Sequence |
| حافظه کوتاه مدت بلند | | Long-Short Term Memory (LSTM) |
| دوره | | Epoch |
| شبکه عصبی پیچشی | | Convolutional Neural Network (CNN)|
| شبکه عصبی رو به جلو ژرف | | Deep Feed-forward Neural Network |
| شبکه عصبی ژرف | | Deep Neural Network (DNN) |
| شبکه عصبی مکرر | | (RNN) Recurrent Neural Network |
| گذر جلو | | Forward Pass |
| مدل زبانی | | Language Model (LM) |
| مدل زبانی عصبی | | Neural Language Model (NLM) |
| میرایی گرادیان | | Vanishing Gradient |
** پانوشتها****جزئیات مجموعه داده**
همانطور که قبلا گفته شد (بخش 3-1) از مجموعه داده ترجمه انگلیسی به فرانسوی WMT’14 در آزمایشها استفاده شده است [3]. مدل توصیف شده روی یک زیرمجموعه 12میلیون جملهای، شامل 348میلیون واژه فرانسوی و 340میلیون واژه انگلیسی، آموزش داده شده است. وظیفه ترجمه ماشینی و همچنین این مجموعه داده خاص، به خاطر دردسترس بودن عمومی یک مجموعه آموزش و یک مجموعه آزمون نشانهگذاری شده[^29] جهت اهداف آموزش و ارزیابی مدل انتخاب شده است و مدل توالیبهتولی مستقل از یک وظیفه خاص است.
همچنانکه مدلهای زبانی عصبی معمولی روی یک بازنمایی برداری در نمایش هر کلمه تکیه میکنند، در اینجا نیز یک واژهنامه با اندازه ثابت، برای هر دو زبان بهکار گرفته شده است. برای این منظور، 160هزار واژه از پر استفادهترین واژههای زبان مبدأ (انگلیسی) و نیز 80هزار واژه از پر استفادهترین واژههای زبان مقصد (فرانسوی) برگزیده شدهاند. هر واژه خارج از این واژهنامهها که در جملهها ظاهر شده باشد، با نشانه خاص “UNK” جایگزین شده است.
برای پیادهسازی [12] از مجموعه داده ترجمه آلمانی-انگلیسی WMT’16 [14] استفاده شده است و همچنین مدل نمونه پیادهسازی شده در [13] از مجموعه داده کوچکتر موجود در [4] استفاده کرده است که قابل جایگزین کردن با مجموعههای ذکر شده در بالا نیز هست. ایراد اساسی پیادهسازی در سطح کاراکتر [13] این است که معمولا در ترجمه ماشینی واژهها به یکدیگر متناظر میشوند نه کاراکترها لذا این مدل از دقت مدلهای در سطح واژه برخوردار نیست اما ایده خوبی در مورد استفاده در سایر وظایف مبتنی بر نگاشت توالیبهتوالی نظیر تولید متن به دست میدهد.
## **کدگشایی و امتیازدهی مجدد**
هسته اصلی آزمایشهای انجام شده در [1]، آموزش یک LSTM ژرف بزرگ روی تعداد زیادی جفت از جملههای زبان مبدأ و زبان مقصد است. آموزش با بیشینه کردن احتمال لگاریتمی یک ترجمه صحیح T برای جمله مبدأ داده شده S انجام میشود. بنابراین هدف آموزش عبارت است از:
![](https://boute.s3.amazonaws.com/290-rel7.PNG)
که در آن **S** مجموعه آموزش است. وقتی آموزش کامل شد، ترجمهها با یافتن درستترین ترجمه از روی LSTM تولید میشوند:
![](https://boute.s3.amazonaws.com/290-rel8.PNG)
برای یافتن درستترین ترجمه از یک کدگشای ساده با جستوجوی پرتوی محلی[^30] چپ به راست استفاده شده است که تعداد B فرضیه جزئی[^31] را نگهداری میکند. هر فرضیه جزئی پیشوندی از تعدادی ترجمه است. در هر مرحله زمانی، هر فرضیه جزئی با واژههای محتمل از داخل واژهنامه گسترش داده میشود. این روند تعداد فرایض جزئی را بهسرعت افزایش میدهد. با توجه به مدل احتمال لگاریتمی، تمام این فرضیهها به غیر از B فرضیه محتمل اول کنار گذاشته میشوند. بهمجرد اینکه نشانه “EOS” به یک فرضیه الصاق شد، از جستوجوی پرتوی محلی حذف و به مجموعه فرایض کامل افزوده میگردد. هرچند این روش کدگشایی تقریبی است؛ اما، برای پیادهسازی راحت خواهد بود. سیستم پیشنهادی حتی با اندازه پرتوی 1 و نیز اندازه پرتوی 2 بیشترین مزایای این روش جستوجو را فراهم میآورد. امتیازهای BLEU حاصله از آزمایشهای انجام شده روی مدل، در جدول (1) ذکر شده است.
## **وارونسازی جملات مبدأ**
درحالیکه LSTM قابلیت حل مسائل با وابستگیهای طولانی مدت را دارد، در طول آزمایشهای انجام شده در [1] پژوهشگران یافتهاند که وقتی جملههای مبدأ وارون شده و بهعنوان ورودی به شبکه کدگذار داده میشوند، LSTM بهتر آموزش میبیند. توجه شود که جملات مقصد وارون نمیشوند. با انجام این عمل ساده، مقدار سرگشتگی[^32] مدل از 5.8 به 4.7 کاهش یافتهاست و مقدار امتیاز BLEU کسب شده از ترجمههای کدگشایی شده مدل نیز از 25.9 به 30.6 افزایش داشته است.
نویسندگان [1] توضیح کاملی برای توجیه اثر این پدیده نداشتهاند. توجیه اولیه آنها بدین ترتیب است که عمل وارونسازی جملات زبان مبدأ باعث معرفی بسیاری از وابستگیهای کوتاه مدت به مجموعه داده میشود. وقتی جملههای زبان مبدأ را با جملههای زبان مقصد الحاق میکنیم، هر واژه در جمله مبدأ از واژه نظیرش در جمله مقصد دور میافتد. در نتیجه، مسئله یک دارای یک _تأخیر زمانی کمینه_[^33] خیلی بزرگ میشود [1]. با وارونسازی واژهها در جمله مبدأ فاصله میانگین بین واژههای نظیر به نظیر در جمله مبدأ با جمله مقصد تغییر نمیکند. هرچند تعداد کمی از واژههای آغازین جمله مبدأ در این حالت به واژههای آغازین جمله مقصد بسیار نزدیک میشوند؛ بنابراین تأخیر زمانی کمینه مسئله تا حد زیادی کاهش مییابد و الگوریتم پسانتشار زمان کمتری را برای استقرار ارتباط میان واژههای جملههای مبدأ و جملههای مقصد سپری خواهد نمود. این امر درنهایت منجربه بهبود قابل توجه کارآمدی کلی مدل میگردد.
ایده وارونسازی جملههای ورودی از این مهم نشئت گرفته است که در ابتدا تصور شده وارونسازی فقط به پیشبینی با اطمینانتر واژههای آغازین در زبان مقصد کمک میکند و منجربه پیشبینی کم اطمینانتر واژههای پایانی میشود. هرچند LSTMای که روی جملات مبدأ وارون شده آموزش دیده، در مقایسه با LSTM معمولی، روی جملههای طولانی عملکرد بهتری از خود نشان داده است (رجوع شود به بخش 1-6).
## **ارزیابی نـتایج**
بهمنظور ارزیابی کیفیت ترجمههای صورت گرفته توسط مدل از روش امتیازدهی خودکار BLEU [16] استفاده شده است. برای محاسبه امتیاز BLEU، اسکریپت آماده multi-bleu.pl[^34] بهکار رفته است. این نوع امتیاز دهی در کارهای قبلی مشابه نیز استفاده شده است [9] و [10]، بنابراین قابل اطمینان خواهد بود و مقایسه مدلها را امکانپذیر میسازد. بهعنوان نمونه، این اسکریپت برای [10] امتیاز 28.45 را تولید کرده است. نتایج در جدولهای (1) و (2) ارایه شدهاند. بهترین نتیجه از مجموعه LSTMهایی که در مقداردهی اولیه تصادفی و ترتیب تصادفی ریزدستهها تفاوت داشتهاند، حاصل شده است. هرچند سازوکار کدگشایی ترجمه بهکار برده شده در اینجا (جستوجوی پرتوی محلی)، سازوکار ساده و ضعیفی است؛ با این حال نخستین بار است که یک سیستم ترجمه ماشینی عصبی خالص، سیستم ترجمه ماشینی مبتنی بر عبارات را با اختلاف قابل توجهی شکست میدهد. این سیستم همچنین فاقد قابلیت کنترل واژههای خارج از واژهنامه است و همانطور که قبلا هم بیان شد کلیه واژههای بیرون از واژهنامه با واژه “UNK” جایگزین شدهاند. بنابراین در صورتی که سازوکاری برای کنترل این واژهها نیز به مدل اضافه شود یا اندازه واژهنامه افزایش یابد، عملکرد این سیستم باز هم جای بهبود خواهد داشت.
<br/>
<p align="center">
جدول (1) کارآمدی LSTM روی مجموعه آزمون ترجمه انگلیسی به فرانسوی WMT’14 (ntst14). توجه شود که یک مجموعه متشکل از پنج LSTM با اندازه پرتوی 2، ارزانتر (سبکتر) از یک LSTM تنها با اندازه پرتوی 12 است [1].
</p>
| **روش** | **امتیاز BLEU (ntst14)** |
|:----------------------------------------:|:------------------------------------------:|
| Bahdanau و همکاران [10] | 28.45 |
| یک LSTM روبهجلو، اندازه پرتوی 12 | 26.17 |
| یک LSTM با ورودی وارون، اندازه پرتوی 12 | 30.59 |
| پنج LSTM با ورودی وارون، اندازه پرتوی 1 | 33.00 |
| دو LSTM با ورودی وارون، اندازه پرتوی 12 | 33.27 |
| پنج LSTM با ورودی وارون، اندازه پرتوی 21 | 34.50 |
| پنج LSTM با ورودی وارون، اندازه پرتوی 12 | **34.81** |
<br/>
<p align="center">
جدول (2) روشهای مشابه که شبکههای عصبی را در کنار ترجمه ماشینی سنتی روی مجموعه داده WMT’14 در ترجمه انگلیسی به فرانسوی استفاده کردهاند [1].
</p>
| **روش** | **امتیاز BLEU (ntst14)** |
|:------------------------------------------------:|:----------------------------------:|
| لـبه پژوهش [15] | **37.00** |
| چــو و همکاران [9] | 34.54 |
| امتیازدهی مجدد 1000فهرست بهتر با یک LSTM روبهجلو | 35.61 |
| امتیازدهی مجدد1000فهرست بهتر با یک LSTM وارون | 35.85 |
| امتیازدهی مجدد1000فهرست بهتر با پنج LSTM وارون | **36.50** |
| پیشگویی امتیازدهی مجدد 1000فهرست بهتر | 45~ |
## **تحلیل مدل**
یکی از ویژگیهای جذاب مدل توالیبهتوالی ارایه شده در [1]، توانایی تبدیل یک توالی از واژهها به یک بردار با ابعاد ثابت است. شکل (6) تعدادی از بازنماییهای یادگرفته شده در روند آموزش را مصورسازی کرده است. این تصویر به وضوح نشان میدهد که بازنماییهای ایجاد شده به ترتیب واژهها حساس هستند؛ زیرا از جملههایی با واژههای یکسان و ترتیب متفاوت در تصویر استفاده شده است. بازنمایی واقعی مدل در ابعاد بالاتری بود و برای نگاشت روی دو بعد روش PCA بهکار برده شده است.
![شکل (6) این شکل یک تصویر PCA دوبعدی از حالتهای پنهان LSTM را نشان میدهد که پس از پردازش جملههای نشان داده شده در شکل، گرفته شده است. عبارات با توجه به معنایشان خوشهبندی شدهاند که معنا در این مثال به طور عمده تابعی از ترتیب ظاهر شدن واژهها در عبارت است. رسیدن به چنین خوشهبندی با روشهای سنتی موجود، سخت است. توجه شود که در همه جملهها واژههای یکسانی استفاده شده و تنها ترتیب ظاهر شدن آنها، تفاوت ایجاد کرده است [1]. دایرههای کوچک در شکل اعداد دو بعد تصویر شده جمله را نشان میدهند.](https://boute.s3.amazonaws.com/290-fig6.PNG)
## **کارآمدی روی جملات طولانی**
خروجی مدل روی جملههای طولانی (از منظر تعداد واژه) کارآمدی بسیار خوب LSTM را در این زمینه تأیید میکند. یک مقایسه کمی از نتایج حاصل شده در شکل (7) نشان داده شده است. همچنین جدول (3) چندین جمله طولانی و ترجمههای تولید شده توسط مدل برای آنها را ارایه میکند.
<br/>
![شکل (7) نمودار سمت چپ کارآمدی سیستم را بهعنوان تابعی از طول جملهها نشان میدهد که محور افقی در آن طول واقعی جملهها بر حسب تعداد واژههای آنها است. کاهش امتیازی در جملاتی با طول کمتر از 35 واژه وجود ندارد. تنها یک کاهش جزئی در جملههای خیلی طولانی مشاهده میشود. نمودار سمت راست کارآمدی LSTM را روی جملههایی با واژههای کمتر بهکار رفته نشان میدهد که محور افقی در آن جملههای آزمایش شده برحسب میانگین تکرار واژههایشان است [1].](https://boute.s3.amazonaws.com/290-fig7.PNG)
<p align="center">جدول (3) سه مثال از ترجمههای طولانی تولید شده توسط مدل توالیبهتوالی در مقایسه با ترجمه صحیح. خواننده میتواند صحت نتایج را با استفاده از مترجم گوگل تا حد خوبی درک کند [1].</p>![ ](https://boute.s3.amazonaws.com/290-table3.PNG)
<br/>
# **نتیجهگیری و کارهای آتی**
در این گزارش یک مدل یادگیری ژرف جدید برای یادگیری و نگاشت توالی از ورودیها به توالی از خروجیها مطرح و بحث گردید. نشان داده شد که یک شبکه LSTM ژرف با واژگان محدود روی وظیفه ترجمه ماشینی، قادر به شکست سیستمهای ترجمه ماشینی استاندارد مبتنی بر عبارات با واژگان نامحدود است. موفقیت این رویکرد نسبتا ساده روی وظیفه ترجمه ماشینی نشان دهنده این است که این مدل باید روی دیگر وظیفههای مبتنی بر توالی نیز در صورت فراهم بودن مجموعه دادههای آموزش کافی، بسیار خوب عمل کند.
در طی فرایند آموزش این اصل نیز کشف شده که وارون سازی توالی مبدأ سبب افزایش دقت و بهبود کارآمدی مدل میشود. میتوان نتیجه گرفت پیدا کردن روشی که وابستگیهای کوتاه مدت را زودتر معرفی کند در هر صورت آموزش مدل را خیلی سادهتر میکند. لذا به نظر میرسد که حتی آموزش یک RNN استاندارد (مدل غیر توالیبهتوالی) نیز با این روش بهتر باشد. البته این مورد در عمل مورد آزمایش قرار نگرفته است و بنابراین به صورت یک فرضیه باقی است.
نتیجه قابل ذکر دیگر، قابلیت LSTM در یادگیری صحیح ترجمه توالیهای طولانی است. در ابتدا تصور میشد که LSTM به دلیل حافظه محدود خود در یادگیری جملههای طولانی شکست بخورد؛ همچنانکه پژوهشگران دیگر در کارهای مشابه عملکرد ضعیفی را برای LSTM گزارش کرده بودند. با این حال اما روی جملههای خیلی طولانی در حالت وارون همچنان مشکل تضعیف حافظه پابرجاست و احتمالا قابلیت بهبود داشته باشد. در نهایت نتایج رضایت بخش این مدل یادگیری نشان دهنده این است که یک مدل ساده از شبکههای عصبی ژرف، که هنوز جای بهبود و بهینهسازیهای زیادی در خود دارد، قادر به شکست بالغترین سیستمهای ترجمه ماشینی سنتی است. کارهای آتی میتواند بر روی افزایش دقت مدل توالیبهتوالی و پیچیدهتر کردن آن در راستای یادگیری بهتر توالیهای طولانی باشد. در آینده نزدیک این مدلها روشهای سنتی را کاملا منسوخ میکنند. نتایج همچنین نشان میدهد این رویکرد روی دیگر وظیفههای مبتنی بر نگاشت توالیبهتوالی میتواند موفقیت آمیز ظاهر شود. این مهم، زمینه را برای حل مسائل مختلفی در دیگر حوزههای علوم آماده میسازد.
<br/>
**<h2>مراجع</h2>**
[1] Q.V. Le Ilya Sutskever, Oriol Vinyals, I. Sutskever, O. Vinyals, and Q. V. Le, “Sequence to sequence learning with neural networks,” _Nips_, pp. 1–9, 2014.
[2] I. Goodfellow, Y. Bengio, and A. Courville, _Deep learning_. MIT Press, 2016.
[3] “ACL 2014 ninth workshop on statistical machine translation.” [Online]. Available: http://www.statmt.org/wmt14/medical-task/index.html. [Accessed: 13-Nov-2017].
[4] “Tab-delimited bilingual bentence pairsfrom the tatoeba project (good for anki and similar flashcard applications).”[Online]. Available: http://www.manythings.org/anki/. [Accessed: 13-Nov-2017].
[5] M. T. Luong, “Neural machine translation,” Stanford university, 2016.
[6] A. Karpathy, “Connecting images and natural language,” Stanford University, 2016.
[7] M. Auli, M. Galley, C. Quirk, and G. Zweig, “Joint language and translation modeling with recurrent neural networks.,” _Emnlp_, no. October, pp. 1044–1054, 2013.
[8] N. Kalchbrenner and P. Blunsom, “Recurrent continuous translation models,” _Emnlp_, no. October, pp. 1700–1709, 2013.
[9] K. Cho _et al._, “Learning phrase representations using RNN encoder-decoder for statistical machine translation,” 2014.
[10] D. Bahdanau, K. Cho, and Y. Bengio, “Neural machine translation by jointly learning to align and translate,” pp. 1–15, 2014.
[11] A. Graves, “Generating sequences with recurrent neural networks,” pp. 1–43, 2013.
[12] M.-T. Luong, E. Brevdo, and R. Zhao, “Neural machine translation (seq2seq) tutorial,” _https://github.com/tensorflow/nmt_, 2017.
[13] “Sequence to sequence example in Keras (character-level),” 2017. [Online]. Available: https://github.com/fcholle/keras/blob/master/examples/lstm_seq2seq.py. [Accessed: 13-Nov-2017].
[14] “Index of /wmt16/translation-task.” [Online]. Available: http://data.statmt.org/wmt16/translation-task/.[Accessed: 04-Dec-2017].
[15] N. Durrani, B. Haddow, P. Koehn, and K. Heafield, “Edinburgh’s phrase-based machine translation systems for WMT-14,” _Proc. Ninth Work. Stat. Mach. Transl._, pp. 97–104, 2014.
[16] K. Papineni, S. Roukos, T. Ward, and W. Zhu, “BLEU: A method for automatic evaluation of machine translation,” _… 40Th Annu. Meet. …_, no. July, pp. 311-318,2002.
<br/>
----------
**<h2>واژهنامه</h2>**
**<h3 align = "center">واژهنامه فـارســی به انگلـیسی</h3>**
| **واژهی فـارسی** | | **معادل انگلیسی** |
|:----------------------------:|:------:|:-------------------------------------:|
| انفجار گرادیان | | Exploding Gradient |
| بانظارت | | Supervised |
| پردازش زبان طبیعی | | Natural Language Processing (NLP) |
| پسانتشار | | Backpropagation |
| تابع بیشینه هموار | | Softmax Function |
| تأخیر زمانی کمینه | | Minimal Time Lag |
| ترجمه ماشینی | | Machine Translation (MT) |
| ترجمه ماشینی آماری | | Statistical Machine Translation (SMT) |
| ترجمه ماشینی عصبی | | Neural Machine Translation (NMT) |
| تشخیص گفتار | | Speech Recognition |
| توالی | | Sequence |
| جستوجوی پرتوی محلی | | Beam Search |
| حافظه کوتاه مدت بلند | | Long-Short Term Memory (LSTM) |
| دسته | | Batch |
| دوره | | Epoch |
| سرگشتگی | | Perplexity |
| شبکه عصبی پیچشی | | Convolutional Neural Network (CNN) |
| شبکه عصبی رو به جلو ژرف | | Deep Feed-forward Neural Network |
| شبکه عصبی ژرف | | Deep Neural Network (DNN) |
| شبکه عصبی مکرر | | (RNN) Recurrent Neural Network |
| فرضیه جزئی | | Partial Hypothesis |
| کدگذار | | Encoder |
| کدگشا | | Decoder |
| گذر جلو | | Forward Pass |
| مدل زبانی | | Language Model (LM) |
| مدل زبانی عصبی | | Neural Language Model (NLM) |
| میرایی گرادیان | | Vanishing Gradient |
| نشانهگذاری شده | | Tokenized |
<br/>
** پانوشتها**
[^1]: deep neural networks
[^2]: backpropagation
[^3]: supervised
[^4]: natural language processing
[^5]: sequence
[^6]: deep feed-forward neural networks
[^7]: recurrent neural networks
[^8]: convolutional neural networks
[^9]: grid
[^10]: machine translation
[^11]: speech recognition
[^12]: long-short term memory
[^13]: neural machine translation
[^14]: statistical machine translation
[^15]: language model
[^16]: neural language models
[^17]: forward pass
[^18]: rectified linear unit
[^19]: sigmoid
[^20]: softmax function
[^21]: n-best list
[^22]: topic model
[^23]: batch
[^24]: epoch
[^25]: vanishing gradient
[^26]: exploding gradient
[^29]: tokenized
[^30]: beam search
[^31]: partial hypothesis
[^32]: perplexity
[^33]: minimal time lag
[^34]: چندین نوع محاسبه از امتیاز BLEU وجود دارد کــه هر نوع با یک اسکریپت زبان perl تعریف شده است.