1. هدف
در این آموزش یادگیری ماشینی، به برترین الگوریتمهای شبکه عصبی خواهیم پرداخت. از این الگوریتمها برای آموزش شبکه عصبی مصنوعی استفاده میشود. این وبلاگ به شما آموزش عمیقی از گرادیان نزول، الگوریتمهای تکاملی و الگوریتم ژنتیک در شبکه عصبی ارائه میدهد.
2. الگوریتمهای شبکه عصبی برتر
یادگیری شبکه عصبی بر اساس نمونهای از جامعه مورد مطالعه صورت میگیرد. در طول دوره یادگیری، ارزش ارائه شده توسط واحد خروجی را با مقدار واقعی مقایسه کنید. پس از آن وزن تمام واحدها را طوری تنظیم کنید تا پیش بینی بهبود یابد.
الگوریتمهای شبکه عصبی زیادی برای آموزش شبکه عصبی مصنوعی موجود است. اکنون چند الگوریتم مهم برای آموزش شبکههای عصبی را مشاهده میکنیم:
· Gradient Descent - برای یافتن حداقل محلی یک تابع استفاده میشود.
· الگوریتمهای تکاملی - بر اساس مفهوم انتخاب طبیعی یا بقای بهترینها در زیست شناسی.
· الگوریتم ژنتیک – مناسبترین قوانین را برای حل یک مسئله فعال کرده و آن را انتخاب کنید. بنابراین، آنها "مواد ژنتیکی" خود را به قوانین "فرزند" ارسال میکنند. در ادامه با جزئیات بیشتر با آنها آشنا خواهیم شد.
۲.۱. گرادیان نزول
ما از الگوریتم گرادیان نزول برای یافتن کوچکترین تابع محلی استفاده میکنیم. این الگوریتم به کوچکترین محلی همگرا میشود. با نزدیک شدن متناسب با منفی گرادیان تابع. برای یافتن ماکزیمم های محلی، مراحل متناسب با گرادیان مثبت تابع را بردارید. این روند صعودی گرادیان است.
در مدلهای خطی، سطح خطا بهخوبی تعریف شده و جسم ریاضی به شکل سهمی شناخته شده است. سپس با محاسبه کمترین نقطه را پیدا کنید. برخلاف مدلهای خطی، شبکههای عصبی مدلهای غیرخطی پیچیدهای هستند. در اینجا، سطح خطا دارای یک طرح نامنظم است که با تپهها، درهها، فلات و درههای عمیق تلاقی میکند. برای یافتن کمترین نقطه روی این سطح که هیچ نقشهای برای آن وجود ندارد، کاربر باید آن را کاوش کند.
در این الگوریتم، با دنبال کردن خطی که بیشترین شیب را دارد، روی سطح خطا حرکت میکنید. همچنین امکان رسیدن به پایینترین نقطه ممکن را نیز ارائه میدهد. سپس باید با سرعت مطلوبی که باید در شیب حرکت کنید.
سرعت صحیح متناسب با شیب سطح و سرعت یادگیری است. میزان یادگیری میزان تغییر وزنها را در طول فرآیند یادگیری کنترل میکند.
از این رو، لحظه یک شبکه عصبی میتواند بر عملکرد پرسپترون چند لایه تأثیر بگذارد.
۲.۲ الگوریتمهای تکاملی
این الگوریتم مبتنی بر مفهوم انتخاب طبیعی یا بقای بهترینها در زیست شناسی است. مفهوم انتخاب طبیعی بیان میکند که - برای یک جمعیت معین، شرایط محیطی از فشاری استفاده میکند که منجر به افزایش بهترینها در آن جمعیت میشود.
برای اندازهگیری برازش در یک جمعیت معین، میتوانید یک تابع را به عنوان یک معیار انتزاعی اعمال کنید.
در زمینه الگوریتمهای تکاملی، بازترکیب را به عنوان یک عملگر ارجاع دهید. سپس آن را برای دو یا چند نامزد شناخته شده به عنوان والدین اعمال کنید و منجر به یکی از نامزدهای جدید به نام فرزند شوید. جهش را روی یک نامزد واحد اعمال کنید و منجر به یک نامزد جدید میشود. با اعمال نوترکیبی و جهش، میتوانیم مجموعهای از نامزدهای جدید را بر اساس مناسبترین معیارهایشان در نسل بعدی قرار دهیم.
دو عنصر اساسی الگوریتمهای تکاملی عبارتند از:
· عملگرهای تغییر (بازترکیب و جهش[1])
· فرآیند انتخاب (انتخاب بهترینها[2])
ویژگیهای مشترک الگوریتمهای تکاملی عبارتند از:
· الگوریتمهای تکاملی مبتنی بر جمعیت هستند.
· الگوریتمهای تکاملی از نامزدهای ترکیبی نوترکیب یک جمعیت استفاده میکنند و نامزدهای جدیدی ایجاد میکنند.
· بر اساس الگوریتم تکاملی انتخاب تصادفی
از این رو، بر اساس جزئیات و مسائل کاربردی، از قالبهای مختلف الگوریتمهای تکاملی استفاده میکنیم.
برخی از الگوریتم های تکاملی رایج عبارتند از:
· الگوریتم ژنتیک الگوریتم ژنتیک - راه حلی برای مسائل بهینه سازی ارائه میدهد. این راه حل را با کمک فرآیندهای تکامل طبیعی مانند جهش، نوترکیبی، متقاطع و وراثت فراهم میکند.
· برنامهنویسی ژنتیکی – برنامهریزی ژنتیکی راهحلی را در قالب برنامههای کامپیوتری ارائه میدهد. با توانایی حل مسائل محاسباتی دقت یک برنامه را اندازهگیری میکند.
· برنامهنویسی تکاملی - در یک محیط شبیهسازی شده برای توسعه هوشمصنوعی از آن استفاده میکنیم.
· استراتژی تکامل این یک الگوریتم بهینهسازی مبتنی بر مفاهیم انطباق و تکامل در علوم زیستی است.
· Neuroevolution - برای آموزش شبکههای عصبی از Neuroevolution استفاده میکنیم. با تعیین ساختار و وزن اتصال، ژنوم برای توسعه شبکههای عصبی استفاده میذکند.
در تمامی این الگوریتمها، الگوریتم ژنتیک رایجترین الگوریتم تکاملی است.
۳.۲. الگوریتم ژنتیک
الگوریتمهای ژنتیک که توسط گروه جان هالند از اوایل دهه 1970 توسعه یافت. این امکان را میدهد که مناسب ترین قوانین برای حل یک مسئله انتخاب شود. به طوری که آنها «مواد ژنتیکی» خود (متغیرها و دستههایشان) را به قوانین «فرزند» میفرستند.
در اینجا به عنوان مجموعهای از دستهبندیها از متغیرها ارجاع دهید. به عنوان مثال، مشتریان بین 36 تا 50 سال که داراییهای مالی کمتر از 20000 دلار و درآمد ماهانه بیش از 2000 دلار دارند.
یک قانون برابر با شاخهای از درخت تصمیم است؛ همچنین مشابه یک ژن است. شما میتوانید ژنها را بهعنوان واحدهایی در داخل سلولها درک کنید که نحوه به ارث بردن ویژگیهای موجودات زنده از والدین خود را کنترل میکنند. بنابراین، هدف الگوریتمهای ژنتیک بازتولید مکانیسمهای انتخاب طبیعی است. با انتخاب قوانینی که به بهترین وجه با پیشبینی سازگار و با تلاقی و جهش آنها تا رسیدن به یک مدل پیش بینی هستند.
آنها همراه با شبکههای عصبی، نوع دوم الگوریتم را تشکیل میدهند. که مکانیسمهای طبیعی را برای توضیح پدیدههایی که لزوما طبیعی نیستند تقلید میکند.
مراحل اجرای الگوریتم ژنتیک عبارتند از:
· مرحله 1: تولید تصادفی قوانین اولیه - ابتدا قوانین را با این محدودیت ایجاد کنید که همه آنها باید متمایز باشند. هر قانون شامل تعداد تصادفی متغیرهای انتخاب شده توسط کاربر است.
· مرحله 2: انتخاب بهترین قوانین - قوانین را با توجه به هدف تابع برازش بررسی کنید تا تکامل را به سمت بهترین قوانین هدایت کنید. بهترین قوانین عملکرد برازش را به حداکثر میرساند و با افزایش احتمالی که قانون بهبود مییابد، حفظ میشود. برخی از قوانین ناپدید میشوند در حالی که برخی دیگر چندین بار انتخاب میشوند.
· مرحله 3: تولید قوانین جدید با جهش یا تقاطع - ابتدا به مرحله 2 بروید تا اجرای الگوریتم متوقف شود. قوانین انتخاب شده به طور تصادفی جهش یا تلاقی میکنند. جهش جایگزینی یک متغیر یا یک دسته از قانون اصلی با دیگری است.
عبور از 2 قانون مبادله برخی از متغیرها یا دستههای آنها برای تولید 2 قانون جدید است. عبور از جهش شایعتر است.
الگوریتم زمانی به پایان میرسد که یکی از دو شرط زیر برآورده شود:
· تعداد مشخصی از تکرارهای انجام شده.
· با شروع از نسل رتبه n، قوانین نسلهای n، n-1 و n-2 (تقریبا) یکسان هستند.
3. نتیجهگیری
در نتیجه، پیکربندی شبکه عصبی مصنوعی معمولاً دشوار است و آموزش آن کند است، اما پس از آماده شدن در برنامه بسیار سریع است. آنها به طور کلی به عنوان مدلهایی برای غلبه بر مسائل ریاضی، محاسباتی و مهندسی طراحی میشوند. از آنجایی که تحقیقات زیادی در زمینه ریاضیات، نوروبیولوژی و علوم کامپیوتر انجام شده است.