آموزش هوش مصنوعیکلیات هوش مصنوعیهوش مصنوعی
هوش مصنوعی و الگوریتم های تکاملی کجا کاربرد دارند؟
توی اولین پست در بخش هوش محاسباتی قصد داریم به یک سوال مهم و پایه ای پاسخ دهیم
سوال : هوش مصنوعی و الگوریتم های تکاملی کجا کاربرد دارند؟
جواب : مسئله های که بشر با آنها روبرو است رو می توان به چندین دسته، تقسیم کرد. دو مورد از مهمترین این دسته ها عبارتند از مسائل بهینه سازی (optimization problem) و مسائل مربوط به حوزه یادگیری (learning problem). هر زمان که با این گونه از مسائل روبرو شدید استفاده از الگوریتم ها و تکنیک های هوش مصنوعی می تواند به عنوان یک راه حل جهت پاسخ گویی به آنها مطرح شود.
ابتدا به صورت مختصر هر یک از انواع مسئله های ذکر شده را توضیح می دهیم
۱- مسائل بهینه سازی
در این گونه مسائل ما معمولا یک تابع چند متغیره داریم که تعدادی محدودیت برای آن وجود دارد و هدف ما پیدا کردن مقدار بهینه برای آن تابع می باشد. این مقدار بهینه می تواند کمینه کردن (پیدا کردن مقدار minimum تابع) تابع یا بیشینه کردن آن (پیدا کردن مقدار maximum تابع) باشد.
برای روشن شدن موضوع یک مثال بیان میکنیم
فرض کنید تابع زیر رو به همراه محدودیت های اون به ما دادن
همانطور که مشخصه، تابع دو متغیر به نام های X1 و X2 داره و ما قصد داریم مقدار این دو متغیر رو طوری تعیین کنیم تابع F(X1,X2) کمینه بشود. در بخش بعدی چندتا محدودیت برای ما معرفی کرده واضح هستش. توی اولین محدودیت مییگه جمع دو تا متغییر X1 و X2 + 5 باید کمتر از صفر باشه یا به عبارت دیگر X1+X2<=5 باشه. (جمع دوتا متغیر کمتر از ۵ باشه) و همین طور تا آخرین محدودیت.
خوب حالا راه حل چیه؟
- بشنیم تمام حالت های ممکن X1 و X2 رو توی تابع بزاریم بعد محاسبه کنیم و در نهایت کمترین مقدار رو انتخاب کنیم. (این روش صبر ایوب و عمر نوح رو می خواد)
- از روش های ریاضی و محاسباتی استفاده کنیم (از روش اول بهتره خوب ولی پردردسر و مشکل است)
- روش سوم استفاده از هوش مصنوعی و الگوریتم های اون (فعلا به جزییاتش کاری نداریم).
در دنیای امروز بسیاری از محققین در حل مسائل بهینه سازی روش سوم رو انتخاب میکنن.
۲- مسائل مربوط به حوزه یادگیری (این مورد رو کامل با یک مثال توضیح میدم).
فرض کنید ما ۱۰۰۰ تا داده داریم که به دو گروه مجزا تعلق دارند. توی شکل زیر این دو گروه نمایش داده شده اند (یک گروه رو با علامت + و یک گروه رو هم با علامت o نمایش دادیم). یک انسان می تونه به راحتی با مشاهده تصویر دو گروه رو از هم تمایز بده (البته اگر نقاط رو توی یک نمودار سه بعدی ترسیم کنیم و هر گروه رو با یک نماد و یک رنگ نمایش بدیم).
حالا مسئله یادگیری چی میشه؟
اینکه یک الگوریتم با داشتن لیست نقاط بتونه اونا رو به درستی توی گروه خودش قرار بده. می تونیم به الگوریتم تعداد دسته ها رو بدیم (اینجا دو دسته) یا می تونیم تعداد دسته ها رو هم مشخص نکنیم و فقط مشخصات نقاط رو بدیم. اینکه تعداد دسته ها مشخص باشد انواع یادگیری را به وجود می آورد. که بعدا در مورد آن صحبت میکنم.
منتظر مطالب بعدی ما باشید تا بیشتر در مورد مبحث هوش محاسباتی براتون بگم