post

الگوریتم ژنتیک چیست؟

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

مقدمه ای بر بهینه سازی

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

الگوریتم ژنتیک چیست؟

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

مزایای الگوریتم ژنتیک

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

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

محدودیت های الگوریتم ژنتیک

    مانند هر تکنیک، GA ها نیز از چند محدودیت رنج می برند که شامل موارد زیر می شود:

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

انگیزه استفاده از الگوریتم ژنتیک

الگوریتم های ژنتیک توانایی ارائه راه حل به اندازه کافی خوب را دارند و این باعث جذابیت این الگوریتم ها برای استفاده در حل مسائل بهینه سازی می شود. دلایل اینکه GA ها مورد نیاز هستند عبارتند از:

حل مسائل پیچیده

در علوم کامپیوتر، مسائل بسیاری وجود دارد که NP-Hard هستند. این اساسا بدان معناست که حتی با بهره گیری از سیستم های قدرتمند محاسباتی، زمان بسیار زیادی (حتی سال ها!) برای حل این مسائل موردنیاز است. در چنین سناریویی، GA ها یک ابزار کارآمد برای ارائه راه حل های نزدیک به مطلوب و قابل استفاده در یک زمان کوتاه است.

شکست روش های مبتنی بر گرادینت

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

بدست آوردن سریع راه حل مناسب

بعضی از مسائل دشوار مانند فروشنده دوره گرد (TSP)، دارای کاربردهای بسیاری در دنیای واقعی مانند مسیریابی و طراحی VLSI دارند. در حال حاضر تصور کنید که شما از سیستم ناوبری GPS خود استفاده می کنید و چند دقیقه (یا حتی چند ساعت) طول می کشد تا مسیر «مطلوب» را از منبع به مقصد محاسبه کنید. تاخیر در چنین برنامه های کاربردی دنیای واقعی قابل قبول نیست و بنابراین یک راه حل «خوب و کافی» که «سریع» تحویل داده می شود، چیزی است که مورد نیاز است.

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

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

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

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

كاربرد هاي هوش مصنوعي در تصميم گيري هاي پزشكي

گسترش دانش در حوزه ي پزشكي و پيچيدگي تصميمات مرتبط با تشخيص و درمان توجه متخصصين را به استفاده از سيستم هاي پشتيبان تصميم گيري در امور پزشكي جلب نموده است. در اين بين، استفاده از انواع مختلف سيستم هاي هوشمند در پزشكي رو به افزايش است.

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

وجود متغيرهاي زياد و ناشناخته به معني پيچيدگي بيشتر تصميم گيري است. به كمك اين سيستم ها، مي توان متغيرهاي بيشتري را در تصميم گيري دخالت داد. همچنين مي توان با شبكه ي عصبي متغيرهاي ناشناخته، روابط ناشناخته بين متغيرها و همچنين متغيرهايي با تأثير ناشناخته بر متغير نتيجه را در نظر گرفت. بدين ترتيب با استفاده از اين سيستم ها، مي توان دقت بيشتر در تصميم گيري هاي پيچيده تر را انتظار داشت.

استفاده از منطق خبرگان و كنترل دانش، از ديگر مزاياي اين سيستم ها است. در زمان طراحي سيستم هاي خبره ي پزشكي، دانش تخصصي در زمينه ي مورد نظر از خبرگان آن موضوع يا راهنماهاي باليني استخراج و وارد پايگاه دانش مي شود. اين موضوع به اين معني است كه دانش و تجربه ي متخصصين در زمينه هاي مختلف مانند بيمار يهاي نادر را مي توان در تصميم گيري افراد مختلف وارد نمود كه اين موضوع مي تواند منجر به كاهش ترس ناشي از فقدان دانش و مهارت و افزايش اعتماد به نفس شود.

با توجه به وفور و تداخل متغيرها در تصميمات پزشكي، پزشكان مي توانند با به كارگيري سيستم هاي هوش مصنوعي سريع تر و يكدست تر تصميم گيري نمايند و وقت خود را بيشتر صرف ارزيابي تصميم نمايند. در نهايت، با اين سيستمها، سرعت تحليل و دسترسي به توصيه ها در هر زمان و مكان افزايش مي يابدكه در خصوص تصميمات پزشكي از اهميت زيادي برخوردار است.

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

سيستم هاي هوشمندی مانند سيستم خبره و شبكه ي عصبي داراي ساختار، اجزا و قابليتهايي هستند كه در مجموع قابليت تصميم گيري را ارتقا مي دهند و به همين دليل، از آنها در موارد بسياري در پزشكي استفاده شده است كه در ادامه به برخي از اين موارد اشاره مي شود:

  1. بهبود كيفيت كمك هاي اوليه
  2. تشخيص انواع سردرد
  3. تشخيص و طبقه بندي ضربان هاي آريتميك و ايسكميك قلب
  4. تشخيص و تمييز انواع استرابيسموس یا لوچي چشم
  5. مشخص كردن متغيرهاي درماني و بهينه سازي آن براي بيماران جديد
  6. تشخيص انواع سرطان، پيش بيني ميزان بقا، نتيجه ي بيوپسي، پيش بيني عود و متاستاز
  7. تشخیص عفونتهای قلبی تهدید کننده
  8. پیش‌بینی سرطان سینه با بررسی نتایج ماموگرافی‌
  9. تشخیص نیاز به بستری شدن در بیمارستان در بیماران دیابتی

كاربرد سيستم هاي هوش مصنوعي در صنعت نفت

  1. کاربرد شبکه های عصبی در پیش بینی گیر لوله های حفاری
  2. شبيه سازى شرايط تشكيل هيدرات گازى با استفاده از شبکه عصبی مصنوعی
  3. تعیین نفوذپذیری مخازن هیدروکربونی
  4. پیش بینی قیمت نفت خام

تشخیص گفتار (Speech Recognition)

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

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

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

 امنیت داده‌ها

بدافزارها یکی از مشکلات کاربران و کمپانی‌ها در فضای آنلاین است که قدمت آن به روزهای ابتدایی شکل‌گیری اینترنت بازمی‌گردد. در سال ۲۰۱۴، موسسه‌ی کسپراسکی اعلام کرد که روزانه بیش از ۳۲۵۰۰۰ بدافزار کشف می‌کند. براساس اطلاعات ارائه شده توسط موسسه‌ی تحقیقاتی Deep Instinct، اغلب بدافزار‌های جدید از کد مشابهی که در بدافزار‌های پیشین مورد استفاده قرار گرفته، بهره می‌برند، حال آنکه دامنه‌ی تغییرات اعمال شده بین ۲ تا ۱۰ درصد است. تحقیقات انجام شده نشان از این دارد که مدل یادگیری مورد استفاده در هوش مصنوعی قادر است تغییرات ۲ تا ۱۰ درصدی در کد پیاده‌سازی شده را شناسایی کرده و تشخیص دهد که کدام فایل‌ها بدافزار هستند. همچنین باید به این نکته اشاره کرد که الگوریتم‌های یادگیری ماشین می‌توانند الگوی‌های مربوط به رد و بدل شدن اطلاعات در سرورهای ابری را تحت نظر گرفته و موارد مشکوک را که احتمالا منجر به سوءاستفاده‌های امنیتی خواهند شد، شناسایی کنند.

 مبادلات مالی

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

بازاریابی

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

جلوگیری از تقلب

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

سیستم ارائه‌ی پیشنهاد

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