الگوریتم های فراابتکاری چیست:
نوعی از الگوریتمهای تصادفی هستند که برای یافتن پاسخ بهینه به کار میروند. الگوریتم های فرا ابتکاری در واقع مجموعه ای از الگوریتم ها هستند که بر روی الگوریتم های ابتکاری اعمال می شوند و باعث رهایی از بهینه سازی محلی میشوند و در عین حال امکان استفاده از الگوریتم های ابتکاری را در تعداد زیادی از مسائل میدهند. الگوریتمهای فراابتکاری یا همان Meta Heuristic میباشند. در واقع الگوریتمهای فراابتکاری قادر هستند بدونِ دانستن مسئله، با ارائهی یک راه حل عمومی (General) مسئله را با سرعت و دقتِ معقولی حل کنند. روشها و الگوریتمهای بهینهسازی به دو دسته الگوریتمهای دقیق (exact) و الگوریتمهای تقریبی (approximate algorithms) تقسیمبندی میشوند. الگوریتمهای دقیق قادر به یافتن جواب بهینه به صورت دقیق هستند اما در مورد مسائل بهینهسازی سخت، کارایی کافی ندارند و زمان اجرای آنها متناسب با ابعاد مسائل به صورت نمایی افزایش مییابد. الگوریتمهای تقریبی قادر به یافتن جوابهای خوب (نزدیک به بهینه) در زمان حل کوتاه برای مسائل بهینهسازی سخت هستند. الگوریتمهای تقریبی نیز به سه دسته الگوریتمهای ابتکاری (heuristic) و فراابتکاری (meta-heuristic) و فوق ابتکاری (hyper heuristic) بخشبندی میشوند.
روشهای حل یک مسئلهی بهینهسازی؟
1- روشهای تحلیلی
سادهترین روش حل این است که از روش «سعی و خطا» استفاده کنیم. یعنی تمامی مسیرهای ممکن را تکتک تشکیل بدهیم و تابع هدف را برایشان محاسبه کنیم. بعد جوابها را با هم مقایسه کنیم. یک روش معمول برای تعیین نقطهی بهینهی یک تابع، این است که از تابع بر حسب متغیرها مشتق بگیریم. جایی که مشتق یک تابع صفر شود، یک نقطهی بهینه داریم. در این دسته از روشها همهی مراحل کاملا از پیش تعیین شدهاند و هیچگونه «عدد تصادفی» در حل مسئله وجود ندارد. برای بسیاری از مسئلهها استفاده از این روش مقرونبهصرفه نیست؛ چون حل خیلی سخت میشود و یا آنکه حل بسیار وقتگیر خواهدبود. بعضی از مسئلهها را هم اصلا نمیتوان به روش مشتقگیری حل کرد. روشهای تحلیلی بیشتر به دنبال حل دقیق مسائل هستند. از این رو شامل مشتقگیری و یافتن پاسخ بهینهاند. فایده اصلی این نوع از الگوریتمهای بهینهسازی تضمین جواب بهینه است، اما استفاده از آنها در مسائل با پیچیدگی بالا یا مسائل بزرگ یا دارای تابع گسسته دشوار است.
2- روشهای فراابتکاری
در مقابلِ روشهایی وجود دارند که در آنها از اعداد تصادفی استفاده میکنیم. این روشها قدری شبیه به روش سعی و خطا هستند، یعنی به صورت تصادفی شروع به جستجو در میان جوابهای ممکن میکنیم. اما در این روشها نشانهها و راهنماییهایی وجود دارند تا متوجه شویم که به جواب بهینه نزدیک شدهایم. برای همین به این روشها، روشهای «ابتکاری» میگوییم. روشهای فراابتکاری یا فرااکتشافی برای حل مسائل بزرگتر و با توابع بدرفتار مناسبترند. اگرچه این روشها نمیتوانند رسیدن به جواب بهینه را تضمین کنند. الگوریتم ژنتیک و تصعید شبیهسازی شده مثالهایی از این الگوریتمها هستند.
انواع الگوریتم های تخمینی:
- ابتکاری (heuristic)
- گیر افتادن آنها در نقاط بهینه محلی
- همگرایی زودرس
- فراابتکاری (meta-heuristic)
- راهکارهای برونرفت از نقاط بهینه
- قابلیت کاربرد در طیف گستردهای
- فوق ابتکاری (hyper heuristic))
چرا الگوریتم های متاهیوریستیک:
- یافتن جواب بهینه به صورت دقیق سخت یا غیرممکن است
- الگوریتم های دقیق (ریاضی) برای مسائل بهینهسازی سخت کارایی کافی ندارند
- زمان اجرای الگوریتم های دقیق (ریاضی) متناسب با ابعاد مسائل به صورت نمایی افزایش مییابد.
- الگوریتم های دقیق (ریاضی) سرعتِ پایینی دارند
- الگوریتم های دقیق (ریاضی) برای مسائلی با دادهها و ابعاد زیاد، کاربردِ چندانی ندارند
مؤلفه اصلی هر الگوریتم فرا ابتکاری:
- استخراج: Exploration
- برای اکتشاف فضای جستجو در مقیاس جهانی
- اکتشاف: Exploitation
- تمرکز در جستجو در منطقه های محلی برای انتخاب بهترین ها
یادگیری عمیق:
یادگیری عمیق (Deep Learning) بخشی از روشهای یادگیری ماشین است که بر روشهایی تمرکز دارد که مبتنی بر شبکههای عصبی مصنوعی (Artificial neural network) هستند. یادگیری عمیق به رایانهها میآموزد آنچه را که به طور طبیعی برای انسان انجام میشود، انجام دهند. دیبپ لرنینگ یک شاخه مهم از فناوری اطلاعات بوده که روی ساخت سیستمهای هوشمند تمرکز دارد. ارتباط تنگاتنگی با ماشین لرنینگ و هوش مصنوعی دارد تا در نهایت مبتنی بر شبکههای عصبی مصنوعی (Artificial neural network)، یادگیری ماشین یا ماشین لرنینگ را جلو ببرد. مدلهای یادگیری عمیق از نورونهای مصنوعی تشکیل شده و در لایههایی مرتب شدهاند. این نورونها از لایههای قبلی ورودی دریافت میکنند و خروجیهایی تولید کرده و به لایه بعدی منتقل خواهند کرد. یادگیری عمیق از روشهای یادگیری ماشین و هوش مصنوعی به شمار میرود که از روشی که ذهن انسان برای یادگیری موضوعات خاص به کار میگیرد، تقلید میکند. یادگیری عمیق یک روش یادگیریِ ماشینیِ الگوریتمی چندلایه است که از شبکهی عصبی مغز انسان الهام گرفته شدهاست. مانند شبکههای عصبی عمیق موجود در مغز ما، معماری یادگیری عمیق در تکمیل اطلاعات پردازششده در زمینهی هوش مصنوعی نقش مهمی دارد. کلمهی «عمیق» به تعداد لایههایی اطلاق میشود که از طریق آنها دادهها در طی فرایندهایی تبدیل میشوند. با استفاده از یادگیری عمیق، میتوان کارهایی که معمولا انسانها انجام میدهند را به ماشینها یاد داد. این نوع یادگیری از عناصر مهم علم داده (Data science) و شامل آمار، مدلسازی و پیشبینی است. یادگیری عمیق برای دانشمندان داده که وظیفه جمع آوری، تجزیه و تحلیل و تفسیر مقادیر زیادی از دادهها و اطلاعات را بر عهده دارند، بسیار کارآمد و مفید است و این روندسریعتر و آسانتر میکند. امروزه یادگیری عمیق به سطح بسیار بالایی از دقت در تشخیص دست پیدا کرده است. این سطح از دقت به وسایل الکترونیکی کمک میکند که پاسخگوی انتظارات کاربران باشند. همچنین این سطح دقت، در کاربردهای با حساسیت بالا مانند خودروهای خودران اهمیت زیادی دارد. پیشرفتهای اخیر در یادگیری عمیق به سطحی رسیده که در کارهایی مانند دستهبندی تصاویر، بهتر از انسان عمل میکند.
هدف از این دوره آموزشی:
هدف از این دوره آموزشی، ترکیب یادگیری عمیق با الگوریتم های فراابتکاری به صورت عملی و تئوری است. در این دوره به صورت پروژه محور تئوری بخش های مختلف بهینه سازی در الگوریتم های فراابتکاری بحث و بررسی می شود و سپس پیاده سازی عملی آن و ترکیب آن با یادگیری عمیق با زبان پایتون انجام می شود. مدرس این دوره سال ها در این زمینه تخصص و تجربه دارد و دانش بهینه سازی و کاربرد آن را برای مسائل مختلف به شما آموزش می دهد. ابتدا مروی کامل روی پایتون انجام می شود و بعد از آن تئوری بهینه سازی به صورت کامل آموزش داده می شود. بهینه سازی با روش های ریاضی انجام میشود و بغد با الگوریتم های متاهیوریستیک بهینه سازی انجام میشود. در نهایت پیاده سازی های مختلفی از ترکیب فراابتکاری ها با یادگیری عمیق انجام می شود. بدون شک یکی از بهترین دوره های آموزشی است که با زبان فارسی، ساده و روان توضیح داده شده است. امیدواریم که این آموزش از “بیگ لرن” هم مثل سایر آموزش ها مورد تایید و رضایت شما مخاطبان گرامی قرار گیرد. جزئیات این آموزش در زیر لیست شده و پیش نمایش آن در لینک زیر قرار دارد.
بخش صفر: مرور کامل روی پایتون
بخش اول: مرور کامل یادگیری ماشین و یادگیری عمیق
بخش دوم: بهینه سازی با روش های ریاضی (تحلیلی)
بخش سوم: بهینه سازی با روش های فراابتکاری (متاهیوریستیک)
بخش چهارم: ترکیب الگوریتم تپه نوردی (Hill Climbing Algorithm) با یادگیری ماشین/عمیق
بخش پنجم: ترکیب الگوریتم نهنگ ها (Whale Optimization ) با یادگیری ماشین/عمیق
بخش ششم: ترکیب الگوریتم گرگ خاکستری (Gray wolf ) با یادگیری ماشین/عمیق
بخش هفتم: ترکیب الگوریتم اهرام جیزه (GPC) با یادگیری ماشین/عمیق
نظرات
2 دیدگاه برای ترکیب الگوریتم های فراابتکاری با یادگیری عمیق
برای ثبت نقد و بررسی وارد حساب کاربری خود شوید.

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