مهدی فیروزمندی
مهدی فیروزمندی
خواندن ۴ دقیقه·۳ سال پیش

مدل Encoder-Decoder (رمزگذار-رمزگشا) چيست؟

مدل Encoder-Decoder بصورت گسترده در ساختار يادگيری عميق استفاده می شه، هدف از اين نوشته اينه که بفهميم منظور از مدل Encoder-Decoder چيه؟

عکس از Michael Dziedzic
عکس از Michael Dziedzic

در این پست، به معرفی مدل Encoder-Decoder (رمزگذار-رمزگشا) می پردازیم، در برخی موارد به عنوان مدل sequence to sequence (seq2seq) نیز شناخته می شود. برای فهم بهتر این مدل، بهتر است آشنایی ابتدایی ای از شبکه RNN داشته باشیم.

از مدل Encoder-Decoder چه زمانی استفاده می کنیم؟

1- کپشن گذاری برای تصویر (Image Captioning)

مدل های Encoder-Decoder شرایطی را برای یک مدل یادگیری ماشین فراهم می کند تا بتواند برای یک تصویر یک توصیف ارائه کند. در این روش، مدل یک تصویر را به عنوان ورودی دریافت کرده و سپس دنباله ای از کلمات را به عنوان توصیف به خروجی ارائه می کند. این روش در ویدیو نیز کاربرد دارد.

خروجی یادگیری ماشین:
خروجی یادگیری ماشین:

2- تحلیل احساسات (Sentiment Analysis)

مدل های Encoder-Decoder معنا و احساسات را درک می کنند. به عنوان ورودی به آنها جمله داده می شود و خروجی آنها شامل سطح و نوع احساس نهفته در آن جمله است. سطح بندی احساسات شامل؛ 1- (برای احساس منفی)، 1 (برای احساس مثبت) و 0 (برای احساس طبيعی و خنثی) است. اين مورد، برای تجزيه و تحليل احساسات مشتری های يک محصول که از طريق پيام صوتی و يا پيام متنی، حس خود را منتقل می کنند استفاده می شود.

عکس از نويسنده
عکس از نويسنده

3- ترجمه (Translation)

مدل Encoder-Decoder جمله را به عنوان ورودی گرفته و آن را می خواند سپس پيام و مفهوم آن را فهميده و در نهايت به يک زبان ديگر ترجمه می کند. سرويس ترجمه گوگل براساس ساختار Encoder-Decoder ساخته شده است، براي بدست آوردن اطلاعات بيشتر در اين مورد مي توانيد اين مقاله را مطالعه کنيد.

عکس از نويسنده
عکس از نويسنده

مدل Encoder-Decoder (رمزگذار-رمزگشا) چيست؟

بهترين راه برای فهميدن مفهوم مدل Encoder-Decoder، توجه به بازی پيکشنری (Pictionary) است. قوانين در اين بازی بسيار ساده هستند، بازيکن شماره 1 بصورت تصادفی يک کلمه یا عبارت را از داخل يک ليست بيرون می کشد و سپس معنای آن را نقاشی می کشد. بازیکن شماره 2 وظیفه تجزیه و تحلیل نقاشی را برعهده دارد و معنای نقاشی را در قالب یک کلمه می بایست توصیف کند. در این مثال، ما سه عنصر مهم داریم، بازیکن 1 (شخصی که عبارت را به نقاشی تبدیل می کند)، نقاشی (اسب) و شخصی که می بایست نقاشی ترسیم شده را حدس بزند (بازیکن 2). این همه اون چیزی است که ما برای فهم مدل Encoder-Decoder نیاز داریم، در ادامه ما یک مقایسه ی تطبیقی بین بازی پيکشنری (Pictionary) و مدل Encoder-Decoder برای ترجمه فارسی به انگلیسی ارائه می کنیم.

بازی پيکشنری (Pictionary)، عکس از نويسنده
بازی پيکشنری (Pictionary)، عکس از نويسنده

اگر تصوير بالا را به مفاهيم يادگيری ماشين تبديل کنيم، تصوير زير بدست خواهد آمد. در ادامه به بررسی هر يک از اجزا می پردازيم.

مدل encoder-decoder، عکس از نويسنده
مدل encoder-decoder، عکس از نويسنده

1- رمزگذار (Encoder) _ نقاش (بازيکن 1)

رمزگذاری (Encoding) به معنای تبديل داده به فرمت مورد نياز است. در مثال پيکشنری (Pictionary) ما يک عبارت را که متن بود به يک نقاشی که يک تصوير است تبديل کرديم. در زمينه يادگيری ماشين، ما دنباله ای از کلمات فارسی را به بردار دو بعدی تبديل می کنيم، اين بردار دو بعدی به عنوان حالت پنهان (Hidden State) شناخته می شود. Encoder با استفاده از شبکه عصبی بازگشتی (RNN) ساخته می شود. علت استفاده از RNN اين است که به مدل اجازه می دهد تا متن و وابستگی های دنباله ای کلمات را به يکديگر درک کند. خروجی مرحله Encoder، حالت پنهان يا Hidden State است، که وضعيت آخرين مرحله زمانی از شبکه RNN است.

رمزگذار (Encoder)، عکس از نويسنده
رمزگذار (Encoder)، عکس از نويسنده

2- حالت پنهان (Hidden State) _ طرح (نقاشی)

خروجی Encoder، يک بردار دو بعدی که معنای کل دنباله ورودی را کپسوله می کند. طول بردار وابسته به تعداد نورون های شبکه RNN است.

رمزگذار (Encoder) و حالت پنهان (Hidden State)، عکس از نويسنده
رمزگذار (Encoder) و حالت پنهان (Hidden State)، عکس از نويسنده

3- رمزگشا (Decoder) _ حدس زننده (بازيکن 2)

رمزگشايی به معنای تبديل يک پيام رمز شده به يک فرمت قابل فهم است. شخص دوم در بازي پيکشنری (Pictionary) تصوير طراحی شده را به يک عبارت تبديل می کند. در مدل يادگيری ماشين، نقش رمزگشا، تبديل بردار دو بعدی به دنباله خروجی، يعنی جمله انگليسی است. Decoder با استفاده از لايه های شبکه RNN برای پيش بينی کلمات انگليسی ساخته می شود.

رمزگشا (Decoder)، عکس از نويسنده
رمزگشا (Decoder)، عکس از نويسنده

نتيجه گيری

يکی از مزيت های اين مدل آن است که ممکن است طول دنباله های ورودی و خروجی با يکديگر متفاوت باشد. اين ويژگی امکان خوبی را برای کارهايی مانند؛ ايجاد خودکار زيرنويس برای ويديوها و سيستم های پرسش و پاسخ فراهم می کند. درک مدل های Encoder-Decoder برای آخرين پيشرفت های NLP کليدی است، زيرا اين مدل يکی از موارد اصلی و زيربنای مدل های attention و transformerها است.

machin learningdeep learningشبکه عصبییادگیری ماشینیادگیری عمیق
برنامه نویس پایتون و پژوهشگر حوزه شبکه عصبی و پردازش زبان طبیعی
شاید از این پست‌ها خوشتان بیاید