مجله هوش مصنوعی

آخرین اخبار و تکنولوژی های هوش مصنوعی را در اینجا بخوانید.

مجله هوش مصنوعی

آخرین اخبار و تکنولوژی های هوش مصنوعی را در اینجا بخوانید.

شروع یادگیری هوش مصنوعی ؛ راهنمایی برای تازه‌کاران

مسئله‌ی یادگیری هوش مصنوعی به «تب هوش مصنوعی» این روزها بی‌ارتباط نیست. هر روزی که می‌گذرد دامنه‌ی کاربردهای هوش مصنوعی در زندگی روزمره‌ی ما گسترده‌تر می‌شود. وقتی که از گوگل می‌خواهیم رستوران‌های نزدیک به خانه‌ی ما را برای‌مان لیست کند، تا پیج‌هایی که  فیس‌بوک و اینستاگرام و توئیتر برای دنبال کردن به ما پیشنهاد می‌دهند، همگی بر اساس هوش مصنوعی کار می‌کنند.

همین کاربردهای روبه‌گسترش هوش مصنوعی بسیاری از غیرمتخصصان را نیز جذب این حوزه کرده است. احتمالاً برای شروع یادگیری هوش مصنوعی شما هم سوالات زیادی دارید. واقعاً هوش مصنوعی را از کجا باید شروع کرد؟ پیش‌نیازهای یادگیری هوش مصنوعی چیست؟

برای ورود به حوزه‌ی هوش مصنوعی باید چه رشته‌ای بخوانیم؟

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

۱- علاقه؛ گام اول شروع یادگیری هوش مصنوعی

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

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

۲- صبور باشید

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

۳- داشتن تصویر کلی

اگر چند وقتی است که خیلی جدی دارید دنبال نقشه‌ی راهی برای شروع یادگیری هوش مصنوعی می‌گردید، احتمالاً این مقاله اولین مطلبی نیست که در این مورد می‌خوانید. بیشتر مطالبی که در این مورد نوشته شده این مرحله‌ی مهم را از قلم انداخته‌اند. شاید با اصطلاح bird’s-eye view آشنا باشید. داشتن تصویر کلی از آن چیزی که در انتظارتان است، از موضوع درک بهتری به شما می‌دهد. شاید شما فقط به یکی از شاخه‌های هوش مصنوعی علاقه داشته باشید. پس از آموختن مباحث مقدماتی به سراغ بخشی بروید که دوست دارید. فراموش نکنید که آرمان اولین کوشندگان حوزه‌ی هوش مصنوعی ساختن فناوری‌هایی بود که بتوانند کارهایی شبیه به انسان‌ها انجام دهند. بخش‌های مختلف هوش مصنوعی که به‌صورت خلاصه در ادامه برای‌تان می‌آوریم تلاش‌هایی است برای تحقق، یا حتی فراتر رفتن از این رویا.

پردازش زبان طبیعی (Natural language processing)

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

داده‌کاوی (Date Mining)

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

اگر می‌خواهید اطلاعات بیشتری در این حوزه به دست آورید می‌توانید سری به فیلم‌های آموزش علوم داده سایت نیز بزنید.

بینایی ماشین (Machine Vision)

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

پردازش گفتار (Speech Processing)

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


۴- ریاضیات

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

۵- زبان‌های برنامه‌نویسی

زبان‌های برنامه‌نویسی راه ارتباطی شما با کامپیوترها و ماشین‌ها هستند. بدون آشنایی با این زبان‌ها نمی‌توانید با سیستم‌ها ارتباط برقرار کنید.

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

آموزش پایتون مقدماتی مکتب‌خونه

مبانی برنامه‌نویسی و تفکر الگوریتمی کوئرا

جمع‌بندی

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


منبع: hooshio.com

کاربردهای یادگیری تقویتی در دنیای واقعی


خواندن مقاله کاربردهای یادگیری تقویتی را با گفته کورای کاواک‌اغلو که رئیس بخش تحقیقات شرکت دیپ‌مایند است آغاز می‌کنیم:

«اگر یکی از اهداف ما هوش مصنوعی باشد، این مدل در مرکز آن قرار دارد. یادگیری تقویتی یک چارچوب کلی برای یادگیری مسائلی است که نیاز به تصمیم‌گیری‌های پی‌درپی و متوالی دارند. یادگیری عمیق نیز مجموعه‌ای از بهترین الگوریتم‌ها برای یادگیری بازنمایی است. بنایراین، ترکیب این دو مدل بهترین راه موجود برای یادگیری بازنمایی وضعیت‌ به‌منظور حل مسائل چالش‌برانگیز در دنیای واقعی است.»

 

شبکه‌های عصبی پیچشی(CNN) و شبکه‌های عصبی بازگشتی(RNN)به‌دلیل کاربردهایی که در بینایی رایانه‌ای (CV) و پردازش زبان طبیعی(NLP)دارند، روزبه‌روز در حوزه کسب‌وکار محبوبیت‌ بیشتری به دست می‌آورند. اما در این میان، اهمیت یادگیری تقویتی(RL)به عنوان چارچوبی برای علم اعصاب محاسباتی و مدل‌سازی فرآیندهای تصمیم‌گیری نادیده گرفته شده است و درخصوص نحوه به‌کارگیری الگوریتم‌های یادگیری تقویتی در صنایع مختلف اطلاعات چندانی دردسترس نیست. علی‌رغم تمامی انتقاداتی که از الگوریتم‌های یادگیری تقویتی می‌شود، این الگوریتم‌ها می‌توانند در حوزه تصمیم‌گیری کمک زیادی به ما بکنند و به همین دلیل نباید نادیده گرفته شوند.

در این مقاله قصد داریم:

۱. کاربردهای یادگیری تقویتی در دنیای واقعی را با جزئیات بررسی کنیم

۲. از جنبه‌ای دیگر به مبحث یادگیری تقویتی بپردازیم و

۳. اهمیت یادگیری تقویتی را به پژوهشگران و تصمیم‌گیرندگان یادآور شویم.

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

بخش اول: مقدمه‌ای بر یادگیری تقویتی

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

کاربردهای یادگیری تقویتی

تصویر اول مقاله کاربردهای یادگیری تقویتی – تعامل عامل و محیط در فرآیند تصمیم‌گیری مارکوف
منبع: Reinforcement Learning:An Introduction

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

بخش دوم: کاربردهای یادگیری تقویتی

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

مدیریت منابع در محاسبات خوشه‌ای

طراحی یک الگوریتم‌ برای تخصیص منابع محدود به کارهای مختلف، کاری چالش‌برانگیز و نیازمند الگوریتم مکاشفه‌ای مانند ابتکار انسان است. در مقاله «Resource Management with Deep Reinforcement Learning» می‌خوانیم که سیستم چگونه می‌تواند با استفاده از الگوریتم‌های یادگیری تقویتی، تخصیص و برنامه‌ریزی منابع محاسباتی را به‌طور خودکار بیاموزد و این منابع را به نحوی به پروژه‌های دردست‌ اجرا تخصیص دهد که زمان تلف‌شده را به حداقل برسد.
در این مطالعه، فضای حالت را در قالب تخصیص کنونی منابع و مشخصات منابع موردنیاز هر پروژه تعیین کردند. برای
فضای حرکت نیز از تکنیک ویژه‌ای استفاده نمودند که به عامل تصمیم‌گیرنده امکان می‌داد تا در هر مرحله زمانی بیش از یک اقدام انجام دهد و پاداش را هم از فرمول (∑▒〖[(-۱)/(کار هر انجام زمان مدت)]〗)/(سیستم در موجود کارهای تمام) به دست آوردند. سپس با ترکیب
الگوریتم تقویتی و
ارزش پایه ، گرادیان سیاسترا محاسبه کرده و بهترین پارامتر سیاست را که توزیع احتمال اقدامات برای حداقل‌سازی هدف به دست می‌دهد را شناسایی کردند.

کنترل چراغ‌های راهنمایی

کاربردهای یادگیری تقویتی

تصویر دوم مقاله کاربردهای یادگیری تقویتی  – شبکه ترافیک با ۵ چهارراه منبع: http://web.eecs.utk.edu/~itamar/Papers/IET_ITS_2010.pdf

نویسندگان مقاله « Reinforcement learning-based multi-agent system for network traffic signal control» تلاش کردند تا سیستمی برای کنترل چراغ‌های راهنمایی طراحی نمایند که مسئله ترافیک سنگین خیابان‌ها را حل کند. این الگوریتم تنها در محیط شبیه‌سازی‌شده و غیرواقعی آزمایش شد، اما نتایج آن بسیار بهتر از روش سنتی کنترل ترافیک بود و بدین ترتیب، کاربردهای بالقوه الگوریتم‌های چند عاملی یادگیری تقویتی در حوزه طراحی سیستم‌های کنترل ترافیک را برای همه آشکار کرد.
در این شبکه ترافیکی که دارای ۵ چهاراره است، یک الگوریتم یادگیری تقویتی ۵ عاملی به‌کارگرفته شده که یک عامل آن در چهارراه مرکزی مستقر است تا سیگنال‌های ترافیک را کنترل و هدایت کند. در این‌جا، وضعیت(State) یک بردار ۸ بعدی است که هر عنصر آن نمایان‌گر جریان نسبی ترافیک در یکی از لاین هاست. بنابراین، عامل ۸ گزینه پیش‌ رو دارد که هر یک از آن‌ها نماد یک ترکیب فازی و تابع پاداش هستند. در این‌جا پاداش تابعی از کاهش زمان تأخیر نسبت به مرحله زمانی قبلی است. نویسندگان در این پژوهش، به‌منظور تعیین مقدار کیفیهر جفت {وضعیت، اقدام} از   شبکه عمیقQ استفاده کردند.

رباتیک

برای به‌کار گرفتن الگوریتم‌های یادگیری تقویتی در علم رباتیک تلاش‌های زیادی شده است. برای یادگیری بیشتر شما را به مقاله « Reinforcement Learning in Robotics:A Survey» ارجاع می‌دهم. در پژوهشی دیگر تحت عنوان « End-to-End Training of Deep Visuomotor Policies » یک ربات تعلیم دید تا سیاست‌های لازم جهت مقایسه و تطبیق تصاویر ویدیویی خام با فعالیت‌های رباتی را بیاموزد. در این پژوهش، تصاویری با رنگ‌های RGB به شبکه عصبی پیچشی داده شدند تا الگوریتم نیروی گشتاور مورد نیاز موتور ربات را محاسبه کند و به عنوان خروجی تحویل دهد. در این‌جا الگوریتم “جستجوی سیاست هدایت شده”که به عنوان مولفه‌ یادگیری تقویتی در نظر گرفته شده است تا داده‌های آموزشی موردنیاز براساس توزیع وضعیت خود الگوریتم تولید شوند.

پیکربندی سیستم وب

در هر سیستم وب بیش از ۱۰۰ پارامتر قابل پیکربندی وجود دارد. هماهنگ کردن این پارامترها نیازمند یک اپراتور ماهر و به‌کارگیری روش آزمون و خطا است. مقاله Reinforcement Learning Approach to Online Web System Auto-configuration» یکی از اولین تلاش‌ها در این زمینه است که نحوه پیکربندی مجدد پارامترها در سیستم‌های وب چند لایه در محیط‌ها پویای مبتنی بر ماشین مجازی را بررسی می‌کند.
فرآیند پیکربندی مجدد می‌تواند در قالب یک فرآیند تصمیم‌گیری مارکوف (MDP) محدود ارائه شود. در این پژوهش، فضای وضعیت همان پیکربندی سیستم و فضای اقدام به ازای هر پارامتر شامل {افزایش، کاهش، حفظ} بود. همچنین پاداش الگوریتم به صورت اختلاف میان زمان هدف مفروض برای پاسخگویی و زمان تخمین‌زده شده محاسبه می‌شد. پژوهشگران برای حل این مسئله از الگوریتم یادگیری کیفی فارغ از مدلاستفاده کردند.
پژوهشگران در این پژوهش به‌جای ترکیب یادگیری تقویتی با شبکه‌های عصبی از تکنیک‌های دیگری همچون مقداردهی ابتدایی به سیاست‌ها استفاده کردند تا بتوانند مشکلات ناشی از فضای وضعیت بزرگ و پیچیدگی‌های محاسباتی این مسئله را حل کنند. اما درهرحال، این پژوهش قدمی بزرگ بود که راه را برای پیشرفت‌های آتی در این حوزه هموار کرد.

کاربردهای یادگیری تقویتی در حوزه شیمیکاربردهای یادگیری تقویتی

از الگوریتم‌های یادگیری تقویتی می‌توان در بهینه‌سازی واکنش‌های شیمیایی نیز استفاده کرد. مدل ارائه‌شده در مقاله «Optimizing Chemical Reactions with Deep Reinforcement Learning» عملکرد بهتری از پیشرفته‌ترین الگوریتم‌های موجود داشت و به ساختارهای اساسی و متفاوتی تعمیم داده شده است.
در این پژوهش، به‌منظور ارائه مدلی برای
تابع سیاست شبکه LSTM و الگوریتم یادگیری تقویتی با یک‌دیگر ادغام شدند تا عامل تصمیم‌گیرنده بتواند بهینه‌سازی واکنش شیمیایی را براساس فرآیند تصمیم‌‌گیری مارکوف (MDP) انجام دهد. MDP در این‌جا به صورت {S,A,P,R} توصیف می‌شود که در آن S مجموعه شرایط آزمایش (از قبیل: دما، Ph و غیره) و A مجموعه تمام اقدامات محتملی است که می‌توانند شرایط آزمایش را تغییر دهند،P احتمال انتقال از شرایط فعلی آزمایش به شرایط بعدی و R نماد پاداش می‌باشد که به صورت تابعی از وضعیت تعریف شده است.
این پژوهش به همه ثابت کرد که یادگیری تقویتی می‌تواند در محیطی نسبتاً باثبات، به خوبی از پس کارهای زمان‌بر و نیازمند آزمون و خطا بر‌آید.

پیشنهادات شخصی‌سازی‌شده

کارهای پیشین در زمینه پیشنهاد اخبار با چالش‌هایی از جمله سرعت بالای تغییرات در پویایی اخبار، نارضایتی کاربران و نامناسب بودن معیارها مواجه شدند. فردی به نام گوانجی برای غلبه بر این مشکلات، در سیستم پیشنهاد اخبار خود از یادگیری تقویتی استفاده کرد و نتایج این کار را در مقاله‌ای با عنوان «DRN: A Deep Reinforcement Learning Framework for News Recommendation» منتشر کرد.
پژوهشگران حاضر دراین پژوهش ۴ دسته ویژگی ایجاد کردند که عبارت بودند از:

  • الف) ویژگی‌های کاربر
  • ب) ویژگی‌های متن که همان ویژگی‌های وضعیت ایجادشده در محیط بودند
  • ج) ویژگی‌های کاربر-خبر
  • د) ویژگی‌های خبر به عنوان ویژگی‌های پارامتر اقدام

این ۴ ویژگی به عنوان ورودی به شبکه عمیق Q داده شدند تا مقدار کیفی مربوطه محاسبه شود. سپس براساس مقدار کیفی، فهرستی از اخبار پیشنهادی تهیه شد. در این الگوریتم یادگیری تقویتی، کلیک‌ کاربران بر روی اخبار بخشی از پاداش عامل تصمیم‌گیرنده بود.
پژوهشگران برای غلبه بر سایر مشکلات از تکنیک‌هایی چون Memory Replay
تکرار حافظه ،  مدل‌های تحلیل بقا ، Dueling Bandit Gradient Descent و غیره استفاده کردند.

مزایده و تبلیغات

محققین گروه Alibaba مقاله‌ای با عنوان «Real-Time Bidding with Multi-Agent Reinforcement Learningin Display Advertising» منتشر کردند و ادعا کردند که راه‌کار آن‌ها با عنوان
مزایده چند عاملی توزیعیو مبتنی بر خوشه‌بندی (DCMAB) نتایج امیدوارکننده‌ای به دنبال داشته است و به همین دلیل، قصد دارند آن را به‌صورت زنده بر روی سامانه TaoBao محک بزنند.
بررسی جزئیات نتایج این آزمایش به کاربران بستگی دارد. سامانه تبلیغاتی تائوبائو محلی است که پس از آغاز یک مزایده توسط فروشندگان، آگهی مربوط به آن به مشتریان نمایش داده می‌شود. این مسئله را می‌توان یک مسئله چندعاملی درنظر گرفت، زیرا مزایده مربوط به هر فروشنده علیه فروشنده دیگر است و اقدامات هر عامل به اقدام سایرین بستگی دارد. در این پژوهش، فروشندگان و مشتریان در چند گروه خوشه‌بندی شده بودند تا از پیچیدگی‌های محاسباتی کاسته شود. همچنین، فضای وضعیت هر عامل نمایان‌گر هزینه-فایده آن، فضای اقدام همان مزایده(پیوسته) و پاداش نیز درآمد ناشی از فرستادن تبلیغ به خوشه مشتری مناسب بود.

سوالاتی از قبیل اثر انواع مختلف پاداش(برای مثال، پاداش مبتنی بر نفع شخصی و نفع جمعی) بر درآمد عامل نیز در این مقاله پاسخ داده شده‌اند.

بازی‌ها

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

کاربردهای یادگیری تقویتی

تصویر سوم مقاله کاربردهای یادگیری تقویتی – مقایسه عملکرد انسان، مدل خطی و یادگیری تقویتی
منبع: https://web.stanford.edu/class/psych209/Readings/MnihEtAlHassibis15NatureControlDeepRL.pdf

نام‌آشناترین الگوریتم‌ها در این حوزه AlphaGo و AlphaGo Zero هستند. برای آموزش الگوریتم آلفاگو داده‌های بیشماری از روند بازی‌های انسانی جمع‌آوری و به آن داده شد. این الگوریتم با بهره‌گیری از تکنیک جست‌وجوی درختی مونت کارلو (MCTS) و شبکه ارزش تعبیه شده در شبکه سیاست خود توانست عملکردی فرابشری داشته باشد. اما کمی بعد از آن، توسعه‌دهندگان این الگوریتم قدمی به عقب برداشته و تلاش کردند تا با رویکردی بهبودیافته یعنی آموزش الگوریتم از صفر، دوباره این کار را انجام دهد. بدین ترتیب، پژوهشگران عامل جدید خود یعنی AlphaGo Zero را در بازی، رقیب خودش قرار دادند. این الگوریتم جدید درنهایت توانست ۱۰۰-۰ آلفاگو را شکست دهد.

یادگیری عمیق

امروزه شاهد تلاش‌های روزافزون برای ترکیب یادگیری تقویتی با سایر معماری‌های یادگیری عمیق هستیم. برخی از این تلاش‌ها نتایج شگفت‌انگیزی داشته‌اند.
یکی از تأثیرگذارترین پروژه‌ها در این حوزه، ترکیب شبکه‌های عصبی پیچشی (CNN) با یادگیری تقویتی بود که توسط شرکت DeepMind انجام گرفت. با ترکیب این دو، عامل تصمیم‌گیرنده به کمک حواس چند بُعدی خود توانایی دیدن محیط را خواهد داشت و نحوه تعامل با محیط را می‌آموزد.
یکی دیگر از ترکیباتی که برای آزمایش ایده‌های جدید از آن استفاده می‌شود، ترکیب یادگیری تقویتی و شبکه‌های عصبی بازگشتی (RNN) است. شبکه عصبی بازگشتی یا RNN می‌تواند اتفاقات را به خاطر بسپارد. وقتی این شبکه عصبی با الگوریتم‌های یادگیری تقویتی ترکیب شود، عامل تصمیم‌گیرنده نیز قادر به یادآوری و به خاطر سپردن اتفاقات خواهد بود. برای مثال، از ترکیب شبکه LSTM (حافظه طولانی کوتاه‌مدت) با یادگیری تقویتی، شبکه بازگشتی و عمیق Q (DRQN) به دست آمد که می‌تواند بازی‌های آتاری ۲۶۰۰ را انجام دهد. علاوه براین، ترکیب یادیگری تقویتی و شبکه عصبی بازگشتی در بهینه‌سازی واکنش‌های شیمیایی نیز کاربرد دارد.

کاربردهای یادگیری تقویتی

تصویر چهارم مقاله کاربردهای یادگیری تقویتی – مقایسه ورودی با نتایج تولید شده توسط عامل
منبع: https://www.youtube.com/watch?v=N5oZIO8pE40

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

بخش سوم: آن‌چه باید پیش از استفاده از یادگیری تقویتی بدانید

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

  • ۱. آزمون و خطا (بهبود کیفیت یادگیری در اثر دریافت بازخورد از محیط)
  • ۲. پاداش متأخر
  • ۳. امکان مدل‌سازی در قالب MDP
  • ۴. موضوع کنترل مطرح باشد

محیط شبیه‌سازی شده: پیش از شروع به کار یک الگوریتم یادگیری تقویتی، روش حل مسئله آن باید بارها تکرار شود. مطمئناً ما نمی‌خواهیم عامل یادگیری تقویتی که پشت یک اتومبیل خودران قرار گرفته، در وسط بزرگراه، روش‌های مختلف حل مسئله را امتحان کند. بنابراین، به یک محیط شبیه‌سازی شده که بازتاب دقیقی از دنیای واقعی باشد، نیاز داریم.
فرآیند تصمیم‌گیری مارکوف (MDP): شما باید بتوانید مسئله مدنظر خود را در قالب یک MDP مدل‌سازی کنید. بدین منظور باید فضای وضعیت، فضای اقدام، تابع پاداش و سایر موارد موردنیاز را طراحی کنید. عامل تصمیم‌گیرنده شما نیز تحت قیود تعریف شده و براساس پاداشی که دریافت کرده، اقداماتی را در پیش می‌گیرد. اگر طراحی این موارد دقیق و متناسب با هدف نباشد، ممکن است به نتایج دلخواه‌تان دست پیدا نکنید.
الگوریتم‌ها: در دنیای یادگیری تقویتی الگوریتم‌های زیادی وجود دارد. اما برای انتخاب الگوریتم مناسب باید از خود بپرسید که آیا می‌خواهید الگوریتم مستقیماً سیاست را پیدا کند یا می‌خواهید براساس تابع ارزش آموزش ببیند؟ می‌خواهید الگوریتم شما مبتنی بر مدل باشد یا بدون مدل؟ آیا می‌خواهید برای حل این مسئله، علاوه بر یادگیری تقویتی از سایر شبکه‌های عصبی یا روش‌ها نیز کمک بگیرید یا خیر؟
به‌منظور تصمیم‌گیری درست و واقع‌بینانه، باید از کاستی‌های یادگیری تقویتی نیز آگاه باشید. با مراجعه به این لینک می‌توانید نقاط‌ضعف این الگوریتم‌ها را نیز بشناسید.

بخش چهارم: آموزه هایی از سایر علوم

یادگیری تقویتی رابطه نزدیکی با علوم روان‌شناسی، زیست‌شناسی و عصب‌شناسی دارد. اگر کمی دقیق‌تر بنگرید، تنها کاری که یک عامل تصمیم‌گیرنده در الگوریتم یادگیری تقویتی انجام می‌دهد، آزمون و خطاست. این عامل براساس پاداشی که از محیط دریافت می‌کند، می‌آموزد که اقداماتش درست بوده‌اند یا اشتباه. این دقیقاً همان مسیری است که یک انسان برای یادگیری یک مسئله بارها و بارها طی می‌کند. علاوه براین، ما هر روز با مسائلی چون اکتشاف و انتفاع و تخصیص اعتبار مواجه می‌شویم و سعی در ارائه یک مدل از محیط اطراف خود داریم.
برخی نظریات اقتصادی نیز گاه وارد دنیای یادگیری تقویتی می‌شوند. برای مثال، در حوزه تحلیل یادگیری تقویتی چندعاملی (MARL) از نظریه بازی‌ها کمک می‌گیریم. نظریه بازی‌ها که توسط جان نَش ارائه شده است، در درک تعاملات عوامل حاضر در یک سیستم به ما کمک می‌کند. علاوه بر کاربرد نظریه بازی‌ها در MARL، فرآیندهای تصمیم‌گیری مارکوف با مشاهده‌پذیری جزئی (POMDP) نیز در فهم موضوعات اقتصادی از جمله ساختار بازارها(انحصار یک جانبه، انحصار چند جانبه و غیره)، اثرات خارجی و اطلاعات نامتقارن به کمک اقتصاددانان می‌روند.

بخش پنجم: دست‌آوردهای احتمالی یادگیری تقویتی در آینده

یادگیری تقویتی هنوز مشکلات و نقص‌های زیادی دارد و استفاده از آن آسان نیست. اما با توجه به تلاش‌های روزافزونی که به‌منظور رفع این نقص‌ها صورت می‌گیرد، یادگیری تقویتی می‌تواند در آنیده در حوزه‌های زیر تأثیرگذار باشد:
همکاری با انسان‌ها: شاید گفتن این‌که یادگیری تقویتی در آینده می‌تواند بخشی از دنیای هوش مصنوعی عمومی باشد، زیاده‌روی به‌نظر برسد، اما یادگیری تقویتی توانایی همکاری و همراهی با انسان را دارد. برای مثال فرض کنید ربات یا دستیار مجازی که با شما کار می‌کند، برای اقدام و یا تصمیم بعدی خود، اقدامات پیشین شما را مدنظر قرار دهد. واقعاً شگفت‌انگیز نیست؟
برآورد عواقب استراتژی‌ها مختلف: در دنیای ما زمان به عقب برنمی‌گردد و هر اتفاق تنها یک‌بار رخ می‌دهد و همین است که زندگی را اعجاب‌برانگیز می‌سازد. اما گاهی می‌خواهیم بدانیم اگر در گذشته تصمیمی متفاوت گرفته بودیم، شرایط کنونی چگونه بود؟ یا اگر مربی تیم ملی کرواسی استراتژی متفاوتی را در پیش می‌گرفت، شانس این تیم برای پیروزی در جام‌جهانی ۲۰۱۸ بیشتر می‌شد؟ البته برای انجام چنین برآوردهایی باید تابع انتقال و محیط را بسیار دقیق مدل‌سازی کنیم و تعاملات میان محیط و عامل را تجزیه و تحلیل کنیم. کاری که درحال‌حاضر غیرممکن به‌نظر می‌رسد.

بخش ششم: نتیجه‌گیری

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

منبع: hooshio.com

کارایی الگوریتمی و نقش آن در پیشرفت هوش مصنوعی


 

تحلیل‌ها نشان می‌دهد که محاسبات لازم برای آموزش شبکه‌های عصبی با کارایی یکسان جهت طبقه بندی پایگاه داده imageNet، از سال ۲۰۱۲ هر ۱۶ ماه یکبار دو برابر کاهش یافته است. در مقایسه با سال ۲۰۱۲، کاهش ۴۴ برابریِ محاسبات در آموزش شبکه‌های عصبی نسبت به«AlexNet2» به ثبت رسیده است. بر اساس نتایجِ بدست آمده، کارایی الگوریتمی منجر به پیشرفت در هوش مصنوعی شده است. ارتقای الگوریتم‌ها یکی از عوامل اصلی در پیشرفت هوش مصنوعی به حساب می‌آید. در همین راستا، باید به دنبال معیارهایی باشیم که زمینه را برای ارتقای الگوریتم‌ها فراهم می‌کنند، حتی اگر این کار از اندازه‌گیری چنین روندهایی در فرایند محاسبه دشوارتر باشد.

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

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

اندازه‌گیریِ کارآیی

کارآیی الگوریتمی عبارتست از کاهش مراحل محاسبات برای آموزش یک قابلیت خاص. کارآیی یکی از روش‌های پایه برای اندازه‌گیری بهبود عملکرد الگوریتم در مسائل کلاسیک علوم رایانه‌ای مثل مرتب‌سازی است. اندازه‌گیریِ کارآیی در مسائل سنتی از قبیل مرتب‌سازی، آسان‌تر از یادگیری ماشین است زیرا آن مسائل معیار واضح‌تری از سطح دشواری کار به دست می‌دهند. برای مثال در مسئله «مرتب‌سازی» سطح دشواری با طول لیست مرتبط است. هزینه الگوریتمِ پرکابرد «Quicksort» به این صورت نشان داده می‌شود: O(n\log{}n)O(nlogn). با این حال، می‌توان ابزارِ کارآیی را با ثابت نگه داشتنِ عملکرد در یادگیری ماشین به کار بست. امکان مقایسۀ روندهای کارآیی در حوزه‌هایی نظیر توالی DNA، انرژی خورشیدی و تراکم ترانزیستور وجود دارد. در تحلیل حاضر، از فرایند اجرای مجدد منبع باز برای اندازه‌گیری میزان بهبود عملکرد استفاده شده است. سرعت بهبود عملکرد در بازه‌های زمانی کوتاه در Translation، Go و Dota 2 بالاتر بود:

  • در بخش ترجمه، Transformer عملکرد بهتری از seq2seq در ترجمه انگلیسی به فرانسوی داشت.
  • AlphaZero برای رسیدن به سطح عملکرد AlphaGoZero در یک سال بعد، به ۸ برابر محاسبه کمتر احتیاج داشت.
  • OpenAI Five Run برای پیشی گرفتن از OpenAI Five در سه ماه بعد، ۵ برابر محاسبات کمتری انجام داد.

همگان به این نکته واقف‌اند که شیوه محاسبه در سال ۲۰۱۹ تفاوت محسوسی با سال ۲۰۱۲ پیدا کرده است. محاسباتی که در سال ۲۰۱۹ به انجام رسیدند، قطعاً کارآیی بیشتری نسبت به سال ۲۰۱۲ داشته‌اند. به این نکته توجه داشته باشید که تحقیقات هوش مصنوعی در دو مرحله انجام می‌شود؛ مشابهِ مدل توسعه «tick tock» که در نیمه‌رساناها دیده شد. قابلیت‌های جدید هزینه‌های محاسباتی قابل توجهی را می‌طلبند. نسخه‌های ارتقایافته از این قابلیت‌ها (tock) نیز به سطح بالایی از کارآیی می‌رسند. افزایش کارآیی الگوریتم‌ها این فرصت را در اختیار محققان قرار می‌دهد تا در زمانی مشخص با هزینه‌ای مشخص به انجام آزمایش‌های مختلف بپردازند. کارآیی الگوریتم که معیاری برای اندازه‌گیری پیشرفت کلی به حساب می‌آید، نقش مهمی در تسریعِ تحقیقات هوش مصنوعی در آینده دارد.

سایر معیارهای بهبود عملکرد هوش مصنوعی

علاوه بر کارآیی، چند معیار دیگر نیز وجود دارد که می‌توانند اطلاعات خوبی از بهبود عملکرد الگوریتم‌ها در هوش مصنوعی در اختیارمان بگذارند. هزینه آموزش به دلار از معیارهای مرتبط است، اما تمرکز اندکی بر بهبود عملکرد الگوریتم‌ها دارد زیرا تحت تاثیر ارتقایِ نرم‌افزارها، سخت‌افزارها و زیرساخت رایانش قرار دارد. کارآیی نمونه زمانی نقش کلیدی ایفا می‌کند که با داده‌های کمتری سروکار داشته باشیم. در صورتی که مدل‌ها سریع‌تر آموزش داده شوند، روند تحقیقات نیز به سرعت انجام می‌شود و می‌توان آن به عنوان معیار موازی‌سازیِ قابلیت‌های یادگیری قلمداد کرد. کارآیی استنتاج نیز به لحاظ زمان GPU، پارامترها و فلاپ‌ها افزایش معناداری پیدا کرده است. Shufflenet توانست در عرض ۵ سال به ۱۸ برابر کارآیی استنتاج بیشتر از سطح عملکرد AlexNet دست یابد. این نشان می‌دهد که کارآیی آموزش و کارآیی استنتاج شاید با سرعت مشابهی ارتقاء پیدا کنند. ساخت دیتاست ها، محیط‌ها و معیارهای سنجش می‌تواند روش قدرتمندی برای قابل‌اندازه‌گیری کردنِ قابلیت‌های ویژۀ هوش مصنوعی باشد.

محدودیت‌های اصلی

  • مشخص نیست که آیا روندهای کارآییِ مشاهده شده در سایر امور و مسائل هوش مصنوعی تعمیم‌پذیر هستند یا خیر. اندازه‌گیری نظام‌مند می‌تواند این مسئله را به روشنی توضیح دهد که آیا معادل الگوریتمی برای قانون مور وجود دارد یا خیر. در مقاله حاضر، قانون مور به روندِ موجود در دلار/فلاپ اطلاق می‌شود.
  • اگرچه جای تردید نیست که AlexNet پیشرفت چشمگیری به ارمغان آورده، اما در تحلیل حاضر نمی‌خواهیم این پیشرفت را اندازه بگیریم. نباید به سادگی از کنار این مسئله گذشت که بهبود عملکرد الگوریتم‌ها می‌تواند سطح پیچیدگی در برخی امور را کاهش دهد. مشاهده مستقیم این نوع افزایش کارآیی در برخی از قابلیت‌ها دشوار است و در این راستا می‌توان از تحلیل مجانبی استفاده کرد.
  • تحلیلِ حاضر به بررسی هزینه آموزش نهایی در مدل‌های بهینه‌سازی شده می‌پردازد. بهبود عملکرد الگوریتم‌ها می‌تواند در برخی از موارد آموزشِ مدل‌ها را آسان کند. این کار با بزرگ‌تر کردنِ فضای پارامترهایی که عملکرد نهایی را ارتقاء می‌بخشند، انجام می‌شود.

اندازه‌گیری و سیاست هوش مصنوعی

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

گام‌های روبه جلو برای ارتقای کارآیی

آن دسته از مدل‌هایی که در قابلیت‌های معنادار، به کارآیی آموزشی مطلوبی دست می‌یابند، گزینه‌های نویدبخشی برای ارتقای عملکرد محسوب می‌شوند. افزون بر این، تحقیق حاضر به آموزشِ نمونه مدل‌های PyTorch پرداخت. تغییراتی نیز برای ارتقای یادگیری اولیه اِعمال شد. اندازه‌گیری روندهای بلندمدت در میزان کارآیی می‌تواند تصویر بهتری از فرایند الگوریتمی ارائه کند. نتایج نشان می‌دهد که در آن دسته از امور هوش مصنوعی که سطح بالای سرمایه‌گذاری وجود دارد (زمان تحقیق یا رایانش)، احتمال می‌رود کارآیی الگوریتمی از کارآیی سخت‌افزاری پیشی گیرد (قانون مور). زمانی که قانون مور ابداع شد (سال ۱۹۶۵)، مدارهای یکپارچه ۶۴ ترانزیستور داشتند، اما اکنون فناوری تا جایی پیشرفت کرده که گوشی آیفون ۱۱ دارای ۸.۵ میلیارد ترانزیستور است. اگر رشد تصاعدیِ کارآیی الگوریتمیِ هوش مصنوعی برای چندین دهه تداوم داشته باشد، سرانجام چه نتیجه‌ای حاصل می‌شود؟ پاسخِ این پرسش مشخص نیست. در هر حال، امیدواریم طرح چنین پرسش‌هایی زمینه را برای توسعه فناوری‌ها و خدمات هوش مصنوعی قوی‌تر فراهم کند.

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

منبع: hooshio.com

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


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

 

مسیر پردازشی یادگیری عمیق

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

پیش‌پردازش

به محض اتمام فراخوانی، داده‌ها در ابتدا باید مرحله پیش‌پردازش یا داده‌افزایی را پشت سر بگذارند. داده‌ها در این مرحله برای آموزش آماده می‌شوند. علاوه بر این، دیتاست هم به همراه نمونه‌های بیشتر برای هوشمندتر کردنِ شبکه اضافه می‌شود. برای نمونه، امکان چرخاندن، مقیاس‌دهی و دستکاری تصاویر فراهم می‌آید. چون تصاویر برچسب‌دار هستند، می‌توانید شبکه را با این نمونه‌های تغییریافته آموزش داده و آن را توانمندتر کنید. کتابخانه منبع باز «DALI GPU» سرعت فرایند داده‌افزایی را افزایش می‌دهد.

مسیر پردازشی یادگیری عمیق

آموزش

با نزدیک شدن به بخش اصلی مرحله آموزش، نمونه‌داده‌ها (تصاویر، نمونه‌های صوتی، بخش‌های زبانی و غیره) تا جایی که سطح قابل‌قبولی از دقت یا همگرایی به دست آید، در شبکه بررسی می‌شوند. در اینجا شبکه شروع به حدس زدن بر روی ورودی می‌کند (استنتاج). این استنتاج با پاسخ درست مورد مقایسه قرار می‌گیرد. اگر شبکه به درستی حدس بزند، کارِ آموزش ادامه می‌یابد. اگر حدس اشتباه باشد، مقدار خطایی محاسبه می‌شود و در مسیر برگشت شبکه انتشار می‌یابد تا سرانجام پاسخ یا وزن درست حاصل آید. این فرایند تا جایی تکرار می‌شود که شبکه به سطح قابل‌قبولی از دقت برسد (مثلاً ۹۰ درصد). این فرایند آموزش تکراری تاثیرگذار است، اما حساسیت محاسبات در آن بالاست. اگرچه کیفیت خروجی در این فرایند خیلی خوب است، اما دقت و همگرایی نیز به همان اندازه حائز اهمیت هستند و باید برای بهبود این دو مورد تلاش کرد. NVIDIA افزون بر افزایش سرعتِ چارچوب‌های یادگیری عمیق، به توسعه قابلیت «دقت ترکیبی خودکار یا AMP» نیز در تنسورفلو، MXNet و PyTorch پرداخته است. این کتابخانه عملیات ریاضی را با دقت FP16 انجام داده و نتایج را در FP32 انباشت می‌کند. AMP می‌تواند چهار برابر سریع‌تر به راه‌حل رسیده و دقت نتایج را نیز حفظ کند. AMP به صورت رایگان در NGC قابل دسترس است. امکان دسترسی به مدل‌های از پیش‌آموزش‌دیده و کد مدل‌ها در NGC فراهم شده است. هدف از این کار این است که پروژه‌های خود را با سرعت بیشتری انجام دهید. علاقمندان می‌تواند به اطلاعات جامعی در خصوص نحوه استفاده از این ابزارها در وب‌سایت NVIDIA Developer دسترسی پیدا کنند.

مسیر پردازشی یادگیری عمیق

 

بهینه‌سازی استنتاج

به محض اینکه شبکه با سطح قابل‌قبولی از دقت آموزش داده شد، باید از آن برای استنتاج در خصوص داده‌های جدید استفاده شود. ساده‎ترین روش استنتاج این است که نمونه‌ها را در چارچوب شبکه به اجرا در آورده و از شبکه پس‌‍‌انتشار خودداری کنید. با این حال، این اقدام برای انجام استنتاج بهینه نیست. سرویس‌های هوش مصنوعی به دنبال ارائه بالاترین سطح خدمات با کمترین تعداد سرور هستند. بخش اعظمی از فرایند بهینه‌سازی با استفاده از FP16 و INT8 انجام‌پذیر است. این اقدام باعث می‌شود توسعه‌دهندگان با سرعت بیشتری شبکه‌ها را بهینه‌سازی کرده و زمینه برای بکارگیری شبکه‌ها با بالاترین سطح توانش عملیاتی و دقت قابل‌توجهی فراهم شود. TensorRT به خوبی در چارچوب تنسورفلو ادغام می‌شود، به طور کامل از ONNX پشتیبانی می‌کند و به صورت رایگان در NGC قابل دسترس است.

مسیر پردازشی یادگیری عمیق

 

استقرار

اکنون که کارِ آموزش شبکه به منظور انجام استنتاج به پایان رسیده، باید دید شبکه در عمل چگونه کار می‌کند. همان‌طور که در بخش‌های فوق اشاره شد، عملِ آموزش اساساً بر توانش عملیاتی، خروجی و همگرایی تاکید می‌کند. با این حال، عوامل عملکردی دیگری در استنتاج دخیل هستند که از جملۀ آنها می‌توان به توانش عملیاتی، خروجی، دقت، تاخیر و کارآیی اشاره کرد. قابلیت برنامه‌نویسی و انطباق‌پذیری نیز از جمله عوامل کلیدی به شمار می‌آیند که سرعت طیف وسیعی از شبکه‌ها را افزایش می‌دهند. استنتاج در دو دسته جای می‌گیرد: حجم کاری با توان بالا و خدمات حساس به تاخیر بلادرنگ که باید بلافاصله پاسخ درست را ارائه کنند. شبکه‌ها و مجموعه‌داده‌ها با سرعت قابل توجهی در حال رشد هستند. شرکت مایکروسافت به تازگیGPU-accelerated service را معرفی کرد. این سرویس از سه نوع متفاوت شبکه استفاده می‌کند ( شناسایی اشیا، پرسش و پاسخ و متن به گفتار ). اکنون TensorRT Inference Server را برای کاربرد آسانِ این سرورها توسط مدیران زیرساخت IT و DevOps پیشنهاد می‌کنیم. Inference Server می‌تواند استفاده از GPU را افزایش دهد. این سرور از یکپارچه‌سازی kubernates برای مقیاس‌دهی، توزیع پردازش و فعالیتهای ارتباطی به طور مساوی بر روی سروهای اصلی شبکه‌های کامپیوتری استفاده می‌کند. این سرور متن‌باز این فرصت را به چندین شبکه می‌دهد تا در یک GPU اجرا شوند. استنتاج و آموزش مسیر پردازشی یادگیری عمیق به دلیل ماهیت محاسباتی حساسی که دارند، باید مورد توجه ویژه قرار گرفته و تدابیری برای افزایش سرعت این فرایندها اندیشیده شود. پلتفرم مرکز داده NVIDIA امکان افزایش سرعت این فرایندها را نه تنها در یادگیری عمیق، بلکه در یادگیری ماشین و غیره فراهم می‌کند.

منبع: hooshio.com

تفاوت یادگیری بانظارت و بدون نظارت


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

یادگیری بانظارتتفاوت یادگیری بانظارت و بدون نظارت

یادگیری بانظارت معمولاً در زمینه دسته‌بندی به کار گرفته می‌شود. وقتی بخواهیم ورودی را در برچسب‌های گسسته خروجی یا خروجی پیوسته نگاشت دهیم، این نوع یادگیری به کارمان می‌آید. از جمله الگوریتم‌های متداول در یادگیری بانظارت می‌توان به رگرسیون لجستیک ،بیزی ساده ، ماشین‌های بردار پشتیبان(SVM)، شبکه‌های عصبی مصنوعیو غیره اشاره کرد. در رگرسیونو دسته‌بندی، هدف این است که در ابتدا ساختارها یا روابط خاص در داده‌ها را پیدا کنیم. این کار می‌تواند نقش موثری در تولید داده‌های خروجی صحیح داشته باشد. توجه داشته باشید که خروجی صحیح به طور کلی از داده‌های آموزشی به دست می‌آید؛ پس گرچه این پیش‌فرض وجود دارد که مدل‌مان به درستی عمل می‌کند، اما نمی‌توان مدعی شد که برچسب‌ داده‌ها همیشه و در هر شرایطی درست و بی‌نقص هستند. برچسب‌های داده‌ای نویزدار یا نادرست می‌توانند از تاثیرگذاری مدل کاسته و کارآیی را پایین آورند.
پیچیدگی مدلو مصالحه بایاس-واریانساز جمله نکات مهمی هستند که در هنگام بکارگیری روش یادگیری بانظارت مستلزم توجه هستند. پیچیدگی مدل اشاره به سطح پیچیدگیِ تابعی دارد که خواهان یادگیری آن هستید. ماهیت داده‌های آموزشی یک عامل تعیین‌کننده در سطح پیچیدگی مدل برشمرده می‌شود. اگر میزان داده اندکی در اختیار دارید یا اگر داده‌هایتان در سناریوهای احتمالیِ مختلف به طور یکنواخت توزیع نشده است، باید سراغ مدلی بروید که سطح پیچیدگی کمتری دارد. زیرا اگر مدل بسیار پیچیده‌ای در تعداد اندکی از نقاط داده مورد استفاده قرار گیرد، مدل دچار بیش‌برازش خواهد شد. بیش‌برازش به یادگیری تابعی اشاره می‌کند که مطابقت بالایی با داده‌های آموزشی دارد و امکان تعمیم آن به سایر نقاط داده وجود ندارد. به عبارت دیگر، مدل سعی می‌کند داده‌های آموزشی خود را بدون خطا بازتولید کند در حالی که ساختار یا روندی حقیقی در داده‌ها را یاد نگرفته است. فرض کنید می‌خواهید یک منحنی را بین دو نقطه برازش کنید. از دید نظری، می‌توانید از تابعی با درجه دلخواه استفاده کنید؛ اما از دید عمَلی، ترجیح می‌دهید که تابع خطی را بر‌گزینید.

رابطه بایاس-واریانس

رابطه بایاس-واریانس به تعمیم مدل اشاره می‌کند. در همه مدل‌ها، تعادلی میان بایاس (عبارت خطای ثابت) و واریانس (مقدار خطایی که می‌تواند در مجموعه‌های آموزشی مختلف متغیر باشد) برقرار است. بنابراین، بایاس زیاد و واریانس کم می‌تواند مدلی باشد که ۲۰ درصد مواقع دچار اشتباه می‌شود. اما مدل بایاس کم و واریانس زیاد می‌تواند بسته به داده‌های استفاده شده برای آموزش مدل، ۵ اِلی ۵۰ درصد مواقع اشتباه کند. به این مسئله توجه داشته باشید که بایاس و واریانس در جهت مخالف یکدیگر حرکت می‌کنند؛ افزایش بایاس معمولاً واریانس کمتر را در پی دارد، و بالعکس.

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

یادگیری بدون نظارتتفاوت یادگیری بانظارت و بدون نظارت

از جمله متداول‌ترین کارهایی که می‌توان با یادگیری بدون نظارت انجام داد، می‌توان به خوشه‌بندی ، یادگیری ارائه و تخمین چگالی اشاره کرد. در همه این موارد، به دنبال یادگیری ساختار ذاتی داده‌ها بدون استفاده از برچسب‌ داده¬های هستیم. برخی از الگوریتم‌های رایج عبارتند از خوشه بندی k-means، تحلیل مولفه اصلی ، خود رمزگذار. چون هیچ برچسبی ارائه نشده، هیچ روش مشخصی برای مقایسه عملکرد مدل در اکثر روش‌های یادگیری بدون نظارت موجود نیست. روش‌های یادگیری بدون نظارت در تحلیل‌های اکتشافی و کاهش بُعد نیز مورد استفاده قرار می‌گیرند. روش‌های یادگیری بدون نظارت در تجزیه و تحلیل‌های اکتشافی خیلی مفید هستند زیرا قادرند ساختار را به طور خودکار در داده شناسایی کنند. برای نمونه، اگر تحلیلگری بخواهد مصرف‌کنندگان را تفکیک کند، روش‌های یادگیری بدون نظارت می‌تواند شروع بسیار خوبی برای تحلیل باشد. در مواردی که بررسی روندهای موجود در داده‌ها برای انسان امکان‌ناپذیر است، روش‌های یادگیری بدون نظارت می‌توانند بینش مناسبی فراهم کرده و برای آزمودن تک‌تکِ فرضیه‌ها به کار برده شوند. کاهش بُعد به روش‌هایی اطلاق می‌شود که داده‌ها را با استفاده از ویژگی‌ها یا ستون‌های کمتری به نمایش می‌گذارند. روش‌های یادگیری بدون نظارت در اجرای این روش «کاهش بعد» کاربرد دارد. در یادگیری ارائه، یادگیری روابط میان ویژگی‌های فردی در دستور کار قرار می‌گیرد. لذا این فرصت برایمان ایجاد می‌شود تا داده‌های خود را با استفاده از ویژگی‌های پنهان ارائه کنیم. این ساختارهای پنهان معمولا با تعداد ویژگی های کمتری نسبت به ویژگی های اولیه نمایش داده می‌شوند، همین مسئله به ما اجازه می‌دهد که پردازش بیشتری با حساسیت کمتری بر روی داده ها داشته باشیم، همچنین از این طریق ویژگی های اضافی حذف می‌گردند.

تفاوت یادگیری بانظارت و بدون نظارت

تفاوت یادگیری بانظارت و بدون نظارت: دسته‌بندی الگوریتم‌های یادگیری ماشین

منبع: hooshio.com