خانه > مقالات آموزشی > یادگیری ماشین جذاب است! قسمت پنجم: ترجمه زبان با استفاده از یادگیری عمیق

یادگیری ماشین جذاب است! قسمت پنجم: ترجمه زبان با استفاده از یادگیری عمیق

همه ما گوگل ترنسلیت را می شناسیم و عاشق آن هستیم، وب سایتی که می تواند فورا چیزی بین ۱۰۰ زبان مختلف بشر را ترجمه کند؛ مانند یک جادو. گوگل ترنسلیت حتی در گوشی ها و ساعت های هوشمند ما نیز قابل دسترسی است :

ترجمه ساعت هوشمند یادگیری عمیق

تکنولوژی که پشت گوگل ترنسلیت است، ترجمه ماشین نامیده می شود. این تکنولوژی جهان را تغییر داده است، زیرا به مردم اجازه می دهد با یکدیگر ارتباط برقرار کنند گویی بدون استفاده از گوگل ترنسلیت برقراری ارتباط ممکن نیست.

ولی همه می دانیم حدود ۱۵ سال است که دانش آموزان دبیرستان از گوگل ترنسلیت برای کمک به انجام تکالیف درسی استفاده می کنند. آیا این خبرها قدیمی نیستند؟

ترجمه گوگل ترنسلیت یادگیری عمیق

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

تکنولوژی که پشت این موفقیت بزرگ و غیرمنتظره است، یادگیری مرحله به مرحله ( Sequence-To-Sequence Learning ) نام دارد. این روش یک تکنیک بسیار قوی است که برای حل انواع زیادی از مسائل استفاده می شود. بعد از آن که دیدیم این تکنولوژی چگونه برای ترجمه استفاده می شود، یاد خواهیم گرفت که چگونه الگوریتم های کاملا مشابهی برای نوشتن ربات های چت هوش مصنوعی و توضیح تصاویر، طراحی کنیم.

بیایید شروع کنیم!

ساخت ترجمه کامپیوتری

خب، ما چگونه برنامه یک کامپیوتر را بنویسیم تا زبان بشر را ترجمه کند؟

 ساده ترین رویکرد این است که هر لغت در جمله را با لغت ترجمه شده در زبان هدف، جایگزین کنیم. اینجا یک مثال ساده از ترجمه ی کلمه به کلمه از اسپانیایی به انگلیسی را می بینید:

ترجمه جمله اسپانیایی به انگلیسی

پیاده سازی این کار آسان است زیرا همه آنچه نیاز دارید یک دیکشنری است که ترجمه هر لغت را در آن جستجو کنید. ولی نتایج آن بد می باشد زیرا گرامر و مفهوم نادیده گرفته می شود.

خب، کار بعدی که شما ممکن است انجام دهید این است که شروع کنید به اضافه کردن قواعد خاص زبان تا نتایج را بهبود بخشید. برای مثال، شما ممکن است شیوه ی قرارگیری اسم ها و صفت ها را تغییر دهید. زیرا آن ها معمولا به صورت برعکس در زبان اسپانیایی در مقایسه با انگلیسی ظاهر می شوند:

ترجمه اسپانیایی به انگلیسی اسم و صفت

این کار نتیجه داد! اگر ما به اضافه کردن قوانین بیشتر ادامه دهیم تا زمانی که قادر به بکار بردن هر قسمت از گرامر شویم، برنامه ما باید بتواند هر جمله ای را ترجمه کند، درست است؟

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

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

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

بهتر کردن ترجمه کامپیوتری با استفاده از آمار

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

ساخت یک سیستم ترجمه که بر پایه آمار استوار است، تعداد زیادی داده آموزشی نیاز دارد که یک متن کاملا یکسان به حداقل دو زبان ترجمه شده باشد. این متن که دوبار ( به دو زبان مختلف ) ترجمه شده، Parallel Corpora نام دارد. در همان روشی که سنگ روزتا توسط دانشمندان در دهه ۱۸۰۰ برای تشخیص سلسله مراتب مصری از یونانی، استفاده می شد، کامپیوتر ها هم می توانند از Parallel Corpora  برای اینکه بفهمند چگونه می توان متن را از یک زبان به زبان دیگر تبدیل کرد، استفاده کنند.

خوشبختانه، تعداد زیادی از متن های ترجمه شده به دو زبان از قبل وجود دارد که در محل های عجیب هستند. برای مثال، مجلس اروپایی اقدامات های خود را را به ۲۱ زبان ترجمه کرده اند. خب محققان بیشتر اوقات از این داده برای ساخت سیستم های ترجمه استفاده می کنند.

ترجمه معادل اسپانیایی و انگلیسی
داده ی آموزشی معمولا هیجان انگیز است! ولی این فقط یکی از میلیون ها میلیون خط از اسناد دولتی می باشد…

به احتمالات فکر کنید

تفاوت اساسی سیستم های ترجمه آماری این است که آن ها تلاش می کنند تا یک ترجمه دقیق تولید کنند. در عوض، آن ها هزاران ترجمه ممکن تولید می کنند و سپس آن ها ترجمه ها را با این احتمال که کدام درست باشد، رتبه بندی می کنند. سپس با بررسی چگونگی شباهت به داده آموزشی، تخمین می زنند که بعضی چیزها چقدر “صحیح” است. اینجا روش کار را می بینید:

گام ۱ : جمله اصلی را به چند تکه بشکنید

اول، ما جمله خود را به تکه های ساده ای می شکنیم که می توانند به راحتی ترجمه شوند:

جمله اسپانیایی

گام ۲ : همه ی ترجمه های ممکن برای هر تکه را پیدا کنید

بعد، ما هر یک از این تکه ها را با پیدا کردن همه راه هایی که آن تکه های لغت های یکسان، در داده آموزشی ما توسط بشر ترجمه شده است، ترجمه خواهیم کرد.

مهم است اشاره کنیم که ما فقط در حال جستجوی این تکه ها در یک دیکشنری ساده نیستیم. در عوض، ما نگاه می کنیم که چگونه افراد واقعی این تکه های یکسان لغت را در جملات دنیای واقعی ترجمه می کنند. این به ما کمک می کند تا همه ی راه های مختلفی که می توانند در متون مختلف استفاده شوند را بگیریم:

ترجمه معادل کلمات اسپانیایی
حتی عباراتی که بیشتر رایج هستند نیز تعداد زیادی ترجمه ممکن دارند.

بعضی از این ترجمه های ممکن بیشتر از بقیه و مکررا استفاده می شوند. بر اساس اینکه چقدر هر ترجمه در داده ی آموزشی ما ظاهر می شود، ما به آن یک امتیاز می دهیم.

برای مثال، برای بعضی ها بیشتر رایج است که “Quiero” را با معنی “I want” ترجمه کنند تا اینکه “I try”. خب ما می توانیم تعداد دفعاتی که “Quiero” به معنی “I want” ترجمه شده است را در داده آموزشی مان استفاده کنیم تا به آن ترجمه، وزن بیشتری نسبت به یک ترجمه کم کاربرد بدهیم.

گام ۳ : تولید همه ی جمله های ممکن و یافتن جمله ای که بیشترین احتمال را دارد

بعد، ما هر ترکیب ممکن از این تکه ها را استفاده خواهیم کرد تا تعداد زیادی از جملات ممکن را تولید کنیم.

فقط از ترجمه تکه هایی که در گام ۲ لیست کردیم ، می توانیم تقریبا ۲۵۰۰ جمله مختلف با ترکیب این تکه ها از راه های مختلف، تولید کنیم. اینجا تعدادی مثال را می بینید :

I love | to leave | at | the seaside | more tidy.
I mean | to be on | to | the open space | most lovely.
I like | to be |on | per the seaside | more lovely.
I mean | to go | to | the open space | most tidy.

ولی در سیستم جهان واقعی، تکه های ترکیبی ممکن بیشتری وجود خواهد داشت زیرا ما همچنین ترتیب های مختلفی از لغات و راه های مختلفی از تکه تکه کردن جملات را امتحان می کنیم :

I try | to run | at | the prettiest | open space.
I want | to run | per | the more tidy | open space.
I mean | to forget | at | the tidiest | beach.
I try | to go | per | the more tidy | seaside.

حالا ما نیاز داریم که همه ی جملات تولید شده را اسکن کنیم تا یکی را که انسانی تر به نظر می رسد، پیدا کنیم.

برای انجام این کار، ما هر جمله تولید شده را با میلیون ها جمله واقعی از کتاب ها و اخبار که به انگلیسی نوشته شده اند، مقایسه می کنیم. هر چقدر که متن انگلیسی بیشتری داشته باشیم، همان قدر بهتر است.

این ترجمه احتمالی را در نظر بگیرید:

I try | to leave | per | the most lovely | open space.

تقریبا به نظر می رسد که هیچ کس جمله ای شبیه به این در انگلیسی ننوشته باشد، خب این ترجمه نمی تواند به هیچ جمله ای در مجموعه داده ما شبیه باشد. ما به این ترجمه ممکن، کمترین امتیاز ممکن را خواهیم داد.

ولی به این ترجمه احتمالی نگاه کنید:

I want | to go | to | the prettiest | beach.

این جمله به چیزی در مجموعه آموزشی ما شییه خواهد بود، خب این ترجمه زیادترین امتیاز ممکن را خواهد گرفت.

بعد از امتحان کردن همه ی جملات ممکن، ما جمله ای را که بیشترین احتمال ترجمه تکه ای است در حالی که همچنین بیشترین شباهت را به جملات انگلیسی واقعی دارد، برخواهیم داشت.

ترجمه نهایی ما این جمله خواهد بود.”من می خواهم به زیباترین ساحل بروم”  بد نیست!

ترجمه ماشین آماری یک نقطه عطف بزرگ بود

سیستم های ترجمه ماشین آماری، خیلی بهتر از سیستم های قانون محور عمل می کنند، البته اگر شما به آن ها داده آموزشی کافی بدهید. فرنس جوزف آخ این نظریه ها را بهبود بخشید و از آن ها برای ساخت گوگل تسلیت در اوایل دهه ۲۰۰۰ استفاده کرد. ترجمه ماشین نهایتا برای همه جهان قابل دسترسی شد.

در روزهای آغازی، برای هر فردی شگفت انگیز بود که روش “احمقانه” ی ترجمه بر پایه ی احتملات، بهتر از سیستم های قانون محور که توسط زبان شناسان طراحی شده است، کار می کند. این منجر شد به یک ضرب المثل در میان محققان در دهه ۸۰:

” هر وقت که من یک زبان شناس را برکنار می کنم، دقت بالا می رود” Frederick Jelineck

محدودیت های ترجمه ماشین آماری

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

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

آیا بهتر نیست که شما یک کامپیوتر داشت باشید که تمام این فعالیت های توسعه ای را که شما را آزار می دهد، را برایتان انجام دهد؟

بهتر کردن ترجمه کامپیوتری – بدون درخواست از آن افراد پرهزینه

هدف نهایی و متعالی ترجمه ماشین، یک سیستم جعبه سیاه است که یاد می گیرد چگونه خودش ترجمه کند؛ تنها با نگاه کردن به داده ی آموزشی. با وجود ترجمه ماشین آماری، بشر هنوز هم نیاز دارد که مدل های دو مرحله ای آماری را بسازد.

در سال ۲۰۱۴، تیم Kung Hung Cho یک پیشرفت چشمگیر به وجود آورد. آن ها راهی پیدا کردند که از یادگیری عمیق بخواهند تا این سیستم جعبه سیاه را بسازد. مدل یادگیری عمیق آن ها وارد یک Corpora  Parallelمی شود و از آن برای یادگیری اینکه چگونه بین آن دو زبان ترجمه کند آن هم بدون هیچ اختراع بشری، استفاده می کند.

دو نظریه بزرگ این امر را ممکن می سازد؛ شبکه های عصبی بازگشتی و رمزنگار ها. با ترکیب هوشمندانه این دو نظریه، ما می توانیم یک سیستم ترجمه خودآموز بسازیم.

شبکه های عصبی بازگشت کننده

ما قبلا در قسمت دوم در مورد شبکه های عصبی بازگشتی صحبت کرده ایم، ولی بیایید سریع مرور کنیم.

یک شبکه عصبی معمولی (غیر بازگشتی)، یک الگوریتم یادگیری ماشین عمومی است که نتیجه را در لیست اعداد را می گیرد و نتیجه ای را محاسبه می کند(آن هم بر اساس آموزش قبلی). شبکه های عصبی می توانند به عنوان یک جعبه سیاه برای حل مسائل زیادی استفاده شوند. برای مثال، ما می توانیم از شبکه عصبی برای محاسبه ارزش تقریبی قیمت یک خانه بر اساس ویژگی های آن خانه, استفاده کنیم :

شبکه عصبی قیمت خانه

ولی مانند بسیاری از الگوریتم های یادگیری ماشین، شبکه های عصبی بدون حالت هستند. شما یک لیست از اعداد را وارد می کنید و شبکه عصبی نتیجه را حساب می کند. اگر شما همان اعداد را دوباره وارد کنید، شبکه عصبی همیشه یک نتیجه را حساب خواهد کرد. شبکه هیچ حافظه ای از محاسبات گذشته ندارد. به عبارت دیگر ۲+۲ همیشه مساوی ۴ می باشد.

یک شبکه عصبی بازگشتی ( Recurrent Neural Network ) یا به اختصار RNN یک نسخه اندک تغییر یافته از شبکه عصبی است که محل قبلی شبکه عصبی یک ورودی برای محاسبه بعدی است. به این معنی که محاسبه های قبلی، نتیجه محاسبه های آینده را تغییر می دهند!

شبکه عصبی بازگشتی

واقعا چرا می خواهیم این کار را انجام دهیم؟ آیا نباید ۲+۲همیشه ۴ شود بدون توجه به اینکه ما قبلا چه چیزی حساب کرده ایم؟

این نکته حرفه ای به شبکه عصبی اجازه می دهد تا در یک توالی داده، الگوها را یاد بگیرد. برای مثال، شما می توانید از آن برای پیش بینی لغت بعدی در جمله براساس تعداد کمی از لغت های اولیه، استفاده کنید:

پیشبینی کلمات با استفاده از یادگیری ماشین
این یکی از راه هایی است که شما می توانید autocorrect را روی برنامه کیبورد گوشی های هوشمند پیاده سازی کنید.

RNN ها در هر زمانی که شما بخواهید الگوهای داده ها یاد بگیرید، مفید هستند. زیرا زبان بشر یک الگوی بزرگ و پیچیده است و RNN ها به طور صعودی در حوزه های زیادی از پردازش زبان طبیعی مورد استفاده قرار می گیرند.
اگر شما می خواهید در مورد RNN ها بیشتر بدانید، می توانید به قسمت دوم رجوع کنید، که در آن ما از یک RNN استفاده کردیم تا یک کتاب تقلبی ارنست همینگوی را تولید کنیم و سپس از یکی دیگر از RNN ها برای تولید مراحل بازی Super Mario Brothers استفاده کردیم.
رمزنگاری
نظریه دیگری که ما نیاز داریم آن را مرور کنیم، رمزنگاری ( Encodings ) می باشد. ما در مورد رمزنگاری به عنوان بخشی از تشخیص چهره، در قسمت چهارم صحبت کردیم. برای توضیح رمزنگاری، بیایید گریزی بزنیم به اینکه ما چگونه می توانیم دو فرد مختلف را توسط کامپیوتر از هم تفکیک کنیم.
وقتی شما تلاش می کنید دو چهره را توسط کامپیوتر از هم تفکیک کنید، معیار های مختلفی از هر چهره را جمع آوری می کنید و از آن معیار ها برای مقایسه دو چهره استفاده می کنید. برای مثال، ممکن است ما سایز هر گوش را اندازه گیری کنیم یا فضای بین دو چشم و معیار ها از دو تصویر را با هم مقایسه می کنیم تا ببینیم که آن ها یک فرد یکسان هستند یا نه.
شما شاید از قبل با این نظریه از طریق تماشای سریال های کارآگاهی برتر مانند CSI آشنا شده اید:

تشخیص چهره در سریال های تلویزیونی

نظریه تبدیل کردن تصویر چهره به لیستی از معیار ها، مثالی از یک رمزنگاری است. ما داده خام می گیریم ( یک عکس از چهره ) و آن را به لیستی از معیار ها که آن را نمایش می دهد، تبدیل می کنیم ( رمزنگاری ).

ولی همانطور که در قسمت چهارم دیدیم، ما مجبور نیستیم که با لیست دقیقی از ویژگی های چهره برای انجام این کار داشته باشیم. در عوض، ما می توانیم از یک شبکه عصبی برای تولید معیار های چهره استفاده کنیم. کامپیوتر می تواند بهتر از ما در تشخیص اینکه کدام معیار ها قادر به تفکیک دو فرد شبیه به هم هستند، عمل کند:

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

این رمزنگاری ماست. این کار به ما اجازه می دهد تا بعضی چیزهای خیلی پیچیده ( یک عکس از چهره ) را با بعضی چیزهای ساده ( ۱۲۸ عدد ) جایگزین کنیم. حالا مقایسه دو چهره مختلف بسیار آسانتر است زیرا ما فقط باید این ۱۲۸ عدد را برای هر چهره مقایسه کنیم به جای اینکه تمام تصاویر را مقایسه کنیم.

ما می توانیم همین کارها را با جملات نیز انجام دهیم. ما می توانیم با استفاده یک رمزنگاری که هر جمله احتمالی متفاوت را به عنوان مجموعه ای از اعداد یکتا ( بی مانند ) جایگزین می کند، به این نتیجه برسیم:

معیار های عددی یک جمله یادگیری ماشین
این لیست از اعداد، جمله انگلیسی ” Machine Learning is Fun! ” را نمایش می دهد. یک جمله متفاوت با مجموعه ای از اعداد متفاوت نمایش داده خواهد شد.

برای تولید این رمزنگاری، ما این جمله را در RNN قرار می دهیم، یک لغت در هر مرتبه. نتیجه نهایی بعد از اینکه هر لغت پردازش شد، ارزشی خواهد بود که کل جمله را نمایش می دهد:

ترجمه کلمات به معیار عددی
به این دلیل که RNN حافظه ای برای هر لغت که از آن عبور می کند، دارد، رمزنگاری نهایی که محاسبه می شود، نمایشگر همه لغات در جمله است.

عالیست، خب حالا ما یک راه برای نمایش کل جمله به عنوان مجموعه ای بی مانند از اعداد داریم! ما نمی دانیم که هر عدد در رمزنگاری چه معنی می دهد، ولی این موضوع زیاد مهم نیست. تا زمانیکه هر جمله به صورت منحصر به فرد با اعداد خودش شناسایی شود، ما نیازی نداریم تا بدانیم آن اعداد دقیقا چگونه تولید شده اند.

بیایید ترجمه کنیم!

بسیارخوب، ما می دانیم که چگونه از یک RNN برای رمزنگاری یک جمله در مجموعه ای از اعداد بی مانند، استفاده کنیم. این چگونه به ما کمک می کند؟ اینجاست که همه چیز خوب می شود!

چگونه می شود اگر ما دو RNN برداریم و آن ها را انتها به انتها به یک دیگر متصل کنیم؟ RNN اول می تواند رمزی که نشان دهنده ی یک جمله است را تولید کند. سپس RNN دوم می تواند رمز را بگیرد و فقط همان کار را به طور برعکس انجام دهد تا جمله اصلی را دوباره رمزگشایی کند:

ترجمه عبارت با شبکه عصبی بازگشتی

البته قادر بودن به رمزنگاری و سپس رمزگشایی دوباره جمله اصلی، زیاد کاربردی نیست. ولی اگر ما بتوانیم RNN دوم را آموزش دهیم تا جمله را به جای انگلیسی به اسپانیایی ترجمه کند، چه؟ ( ایده ی اصلی اینجاست! ) ما می توانیم از داده آموزشی Parallel Corpora برای آموزش آن به منظور انجام این کار استفاده کنیم:

ترجمه انگلیسی به اسپانیایی با شبکه عصبی بازگشتی

و همانند آن، ما یک راه عمومی برای تغییر توالی لغات انگلیسی به توالی معادل در لغات اسپانیایی داریم!

این یک نظریه قوی است:

  • این رویکرد اغلب توسط مقدار داده ی آموزشی که دارید و قدرت کامپیوتر، محدود می شود. محققان یادگیری ماشین دو سال پیش به این نظریه دست یافتند هم اکنون بازدهی آن ها در حد سیستم های ترجمه ماشین آماری اجرا است که توسعه ی آن ها ۲۰ سال طول کشید.
  • این روش بستگی به دانستن هیچ گونه قانونی در مورد زبان بشر ندارد. الگوریتم خودش آن قوانین را متوجه می شود. این به این معنی است که شما نیاز ندارید تا متخصصان هر مرحله، پاپ لاین شما را تنظیم کنند. کامپیوتر خودش این کار را برایتان انجام می دهد.
  • این رویکرد برای اغلب انواع مسائل مرحله به مرحله جواب می دهد! و معلوم شده است که تعداد زیادی از مسائل جالب، مسائل مرحله به مرحله هستند. برای کار های جالب دیگر که می توانید انجام دهید به خواندن مطلب ادامه دهید!

توجه کنید برخی از آنچه برای جواب گرفتن از این روش با داده ی دنیای واقعی نیاز بود، را روشن کردیم. برای مثال، بعضی کارهای مکمل وجود دارد که چون شما با جملات ورودی و خروجی با طول های مختلف سرو کار دارید، باید انجام دهید ( bucketing و padding را ببینید) . یک مسئله مهم هم درباره ی ترجمه درست کلمات کمیاب وجود دارد.

سیستم ترجمه مرحله به مرحله خود را بسازید

اگر می خواهید سیستم ترجمه خود را بسازید، یک نسخه نمایشی کارآمد وجود دارد که در تنسورفلو ارائه شده است و میان انگلیسی و فرانسوی ترجمه خواهد کرد. اگرچه، برای مواردی مثل ضعف قلب و یا بودجه های محدود، مناسب نیست، این تکنولوژی هنوز هم جدید و بسیار فشرده است. حتی اگر شما یک کامپیوتر پرسرعت با یک کارت گرافیک سطح بالا داشته باشید، حدود یک ماه زمان جهت پردازش مداوم طول خواهد کشید تا سیستم ترجمه زبان خودتان را آموزش دهید.

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

قدرت باور نکردنی مدل های مرحله به مرحله

خب چه کار های دیگری می توانیم به کمک مدل های مرحله به مرحله انجام دهیم؟

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

اول، آن ها گزارشات های مربوط به چت را ما بین  کارمندان گوگل و تیم پشتیبانی فناوری گوگل جمع آوری کردند. سپس آن ها یک مدل مرحله به مرحله را آموزش دادند که سوال کارمند به عنوان جمله ورودی و پاسخ تیم پشتیبانی فناوری به عنوان “ترجمه” جمله می باشد.

پاسخ سوالات پشتیبانی شبکه عصبی بازگشتی

وقتی یک کاربر با ربات تعامل دارد، ربات ها می توانند هر یک از پیام های کاربر را با استفاده از سیستم ترجمه کنند تا پاسخ ربات را به دست آورند.

نتیجه نهایی یک ربات نیمه هوشمند بود که بعضی اوقات می توانست به سوالات واقعی پشتیبانی فنی پاسخ دهد. اینجا یک بخش از یک مکالمه ساده میان یک کاربر و ربات را در مقاله ی آن ها می بینید:

انسان: مشکل در اتصال یا چیزی مانند آن است

ماشین: ممکن است که بدانم از چه نسخه ای از شبکه ی اتصال برای متصل شدن استفاده می کنید؟

انسان: مطمئن نیستم که بدانم

ماشین: آیا اتصال شبکه برای مجوز کاربر هشدار می دهد؟

انسان: بله

ماشین: الان شما در منزل هستید یا سر کار؟ یا در دفتر؟

انسان: درخانه هستم

ماشین: این راه را امتحان کنید. به صفحه ی <URL redacted> بروید و نام خود و رمز ورود را وارد کنید.

انسان: انجام شد

ماشین: سعی کنید که با  <NAME redacted> وارد شوید و چک کنید که حالا به خوبی کار می کند یا نه.

انسان: بله الان به خوبی کار می کند

ماشین: عالی است. آیا در زمینه دیگری توانم کمک کنم؟

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

پاسخ پشتیبانی شبکه عصبی بازگشتی

این کار، نتایج بسیار جذابی را به وجود می آورد. نه فقط اینکه ربات می تواند مانند انسان مکالمه کند، بلکه این کار کمی هوشمندی آن را نیز نشان می دهد:

انسان: اسم من دیوید است. اسم من چیست؟

ماشین: دیوید

انسان: اسم من جان است. اسم من چیست؟

ماشین: جان

انسان: شما یک رهبر هستید یا دنبال کننده؟

ماشین: من رهبر هستم

انسان: شما یک رهبر هستید یا دنبال کننده؟

ماشین: من رهبر هستم

این فقط شروع احتمالات است. ما محدود به تغییر دادن یک جمله به جمله دیگر نیستیم. این امکان نیز وجود دارد که یک مدل ” عکس به جمله ” هم درست کنیم که می تواند یک عکس را به متن تبدیل کند!

یک تیم دیگر در گوگل این کار را توسط جایگذاری اولین RNN با شبکه عصبی کانولوشنی، انجام داد ( مانند چیزی که در قسمت سوم یاد گرفتیم ) . این کار اجازه می دهد تا ورودی ، به جای اینکه یک جمله باشد، یک عکس باشد. ادامه کارها نیز اساسا با همین روش انجام می شود:

ساخت توضیحات تصویر شبکه عصبی بازگشتی

و فقط به همین سادگی، ما می توانیم تصاویر را به لغات تبدیل کنیم ( تا وقتی که ما تعداد زیادی داده آموزشی داریم)!

آندره کارپاتی ( Andrej karpathy ) این نظریه ها را گسترش داد تا سیستمی که قادر به توضیح تصاویر با جزئیات عالی از طریق تهیه مناطق متعدد از یک عکس به صورت جداگانه است، ایجاد کند:

توضیح بخش های مختلف تصویر آندره کارپاتی
عکسی از این مقاله توسط Andrej karpathy

این کار، ما را قادر می سازد تا ماشین جستجوی تصاویر که قادر به پیدا کردن تصاویری که با نمایش داده های عجیب وغریب مطابقت دارد،  بسازیم :

حتی محققانی هستند که روی مسائلی برعکس کار می کنند، یعنی تولید یک تصویر کامل براساس یک توضیح نوشتاری!

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

اگر شما می خواهید بیشتر و عمیق تر درباره مدل های مرحله به مرحله و ترجمه یاد بگیرید، اینجا برخی از منابع پیشنهادی را می بینید:

اگر شما این مطلب را دوست داشتید، لطفا در بخش نظرات برای ما کامنت گذاشته و ایده ها و نظرات خود را با ما به اشتراک بگذارید.

بیشتر بخوانید :

منبع Medium
0/5 (0 نظر)

درباره‌ی احمدرضا جعفری

همچنین ببینید

شبکه های تنسور عصبی بازگشتی RNTN

یادگیری عمیق به زبان ساده : شبکه های تنسور عصبی بازگشتی – قسمت یازدهم

برخی از الگو های ذاتاً سلسله مراتبی هستند ، مانند تجزیه درختی یک جمله از …

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *