عمومی

4- هوش مصنوعی به زبانی بسیار ساده: شبکه عصبی مصنوعی 2


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

قسمت اول: هوش مصنوعی به زبانی بسیار ساده: یادگیری ماشین»

بخش دوم “هوش مصنوعی به زبانی بسیار ساده: سبک را تعریف کنید»

بخش سوم “هوش مصنوعی با زبانی بسیار ساده: شبکه عصبی مصنوعی 1»

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

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

شبکه عصبی ما را متشکل از هزاران نورون تصور کنید. ما قطعاً می توانیم با استفاده از روش قطعه قبلی (نمودار) تقریبا صدها هزار پارامتر به صورت دستی. قرار است این کار را با استفاده از الگوریتم ها روی رایانه وی انجام دهد کاهش شیب (نزول شیب).


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

چگونه می توانیم از بالا صعود کنیم؟

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


در یک شبکه عصبی مصنوعی ، با استفاده از روش فوق ، کامپیوتر می تواند پارامترهای شبکه را تخمین بزند. در مقابل ، به جای ارتفاع سنج و استراتژی حرکت ، دنباله مفهوم عملکرد هزینه و بهبود یافته است استفاده می شود در مسئله (2) ، این مفاهیم را بصری نشان خواهیم داد. ابتدا بگذارید کمی در مورد مشتق صحبت کنیم که اصلی این روش است.


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

در نقطه x1 ، شیب خط یک عدد مثبت نزدیک به یک است. X2 یک عدد منفی نزدیک به صفر است و x3 یک عدد مثبت نزدیک به یک است. (شیب در نقطه‌ای که خط کاملاً افقی باشد صفر است و در نقطه‌ای که خط کاملاً عمودی باشد ، نامتناهی است)

نکته بی اهمیت 2 وقتی معادله ما یک متغیر است ، ما از کلمه مشتق و فرمول d استفاده می کنیم. اگر معادله ما حاوی بیش از یک متغیر باشد ، ما از کلمه گرادیان و فرمول فرآیند جزئی استفاده می کنیم.


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

بهینه ساز در واقع استراتژی حرکت ما را تعیین می کند. (در مثال کوه ، استراتژی ما این بود که به عقب ، رو به جلو ، چپ و راست برویم و ارتفاع را از چهار جهت بررسی کنیم. و حرکت در مسیری که ارتفاع کمتر باشد).

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

برای شهود بیشتر ، الگوریتم نزولی مربوط به الگوریتم شیب نزولی را بازنویسی کنید.

  • با استفاده از ارتفاع سنج ، ارتفاع فعلی را بررسی می کنیم.
  • قدم زدن در جهات مختلف و بررسی ارتفاع ، شیب کوه را می یابیم.
  • ما در دامنه روبروی کوه حرکت می کنیم.
  • ما این کار را ادامه دادیم تا اینکه به ته کوه رسیدیم.

ما با استفاده از شبکه عصبی مفهوم گربه را به کامپیوتر آموزش خواهیم داد. اگر می خواستیم به شبکه خود تصویر بدهیم ، این شبکه به ما می گفت اگر گربه است. (اگر تصویر گربه 1 باشد ، در غیر این صورت 0 تولید می کند)

ورودی ANN تصویر گربه است. که منجر به نتیجه شماره 1 می شود.
ورودی ANN تصویر گربه است. که منجر به نتیجه شماره 1 می شود.

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

مشاغل با هزینه بسیار زیادی وجود دارد. چندین مقاله معتبر در زمینه یادگیری عمیق امروز منتشر شده است تا شغلی جدید و با صرفه تر ارائه شود. MSE یکی از محبوب ترین و ساده ترین کارکردهای هزینه است.

خطای مربع یعنی
خطای مربع یعنی

اگر در معادله فوق قسمت 1 را بر روی N و همچنین sigma (معنی ساده ای برای عادی سازی مقدار خطا وجود دارد) نادیده بگیرید و پرانتز های داخل را یادداشت کنید. y نشانه تصویری است که وارد شبکه عصبی می شود (در این حالت ، اگر تصویر گربه برابر 1 و مساوی 0 باشد). و y-cap برابر با مقدار خروجی شبکه عصبی ماست.

در تصویر زیر تصویری از شبکه عصبی (p برابر با 1) داده شده است. شبکه عصبی ما با دقت آموزش دیده 0 را در خروجی تولید می کند (یعنی این عکس گربه نیست). وقتی خطای شبکه خود را با استفاده از تابع هزینه (MSE) محاسبه می کنیم ، متوجه می شویم که شبکه ما هنوز به خوبی آموزش داده نشده است.

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

بنابراین ما پارامترهای شبکه را تغییر می دهیم (خواهیم دید که چگونه با بهینه ساز تغییر کنیم) مانند تصویر زیر 1 را تولید کنیم ، زیرا این تصویر گربه وارد شبکه می شود. خطای شبکه ما صفر نخواهد بود.

در این آموزش خطای شبکه 0 است.
در این آموزش خطای شبکه 0 است.

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

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

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

این بار ، مانند تصویر زیر ، پارامترهای شبکه خود را تغییر می دادیم تا خطای شبکه خود را کاهش دهیم.

در این آموزش خطای شبکه 0 است.
در این آموزش خطای شبکه 0 است.

روش های بهینه سازی مختلفی وجود دارد. یکی از متداول ترین روشها SGD است.

شاخص شیب تصادفی
شاخص شیب تصادفی

فرمول بالا برای به روزرسانی پارامتر شبکه ما w است. از همان فرمول برای به روزرسانی پارامتر b (w تغییر در b) استفاده می شود. آلفا ، یک عدد مثبت و معمولاً ناچیز ، به اصطلاح نرخ یادگیری است و از دست دادن روند در روند w از ضرر نسبت به w حاصل می شود.

برای سادگی و تجسم فرمول بهینه سازی ، فرض می کنیم شبکه عصبی تنها یک پارامتر دارد. (اگر شبکه ما شامل 100 میلیون پارامتر باشد ، این روش است)

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

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

شاید در ابتدا ، قبل از اینکه شبکه ما به خوبی آموزش داده شود ، ما مطابق تصویر زیر w داریم.

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

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

مقدار گرادیان یا مشتق مثبت است
مقدار گرادیان یا مشتق مثبت است

حال فرض کنید که آنچه در ابتدا داشتیم اینگونه بود:

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

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

مقدار گرادیان یا مشتق آن منفی است
مقدار گرادیان یا مشتق آن منفی است

اگر شبکه ما به خوبی آموزش دیده باشد و بهترین w را کشف کنید. همانطور که در تصویر زیر نشان داده شده است ، مشتق برابر صفر است و مقدار w دوباره تغییر نمی کند. 🙂

مقدار گرادیان یا مشتق صفر است
مقدار گرادیان یا مشتق صفر است

تصویر زیر مراحل آموزش شبکه عصبی را نشان می دهد. در مرحله اول ، پارامترهای شبکه را بطور تصادفی تنظیم می کنیم. در مرحله دوم ، نتیجه خالص را محاسبه می کنیم. در مرحله سوم ، خطای شبکه را با استفاده از عملکرد هزینه محاسبه می کنیم. در مرحله 4 ، شیب (مشتقات) را از تابع هزینه برای همه پارامترها محاسبه می کنیم. در مراحل 5 و 6 ، مقادیر پارامتر را با استفاده از فرمول بهینه سازی به روز می کنیم.


عملکرد هزینه تفاوت بین خروجی شبکه و (اشتباه) خروجی مورد نیاز شبکه را اندازه گیری می کند.

2. بهینه ساز روشی است برای به روز کردن پارامترهای شبکه ما با استفاده از هزینه و عملکرد مشتق شده.


امیدوارم موضوعاتی که شما ذکر کردید جالب باشد. و این به من کمک کرد تا نواقص موجود در نظرات را برطرف کنم.

آخرین اصلاح: 1/9/1399

جهت دیدن مقالات بیشتردر مجموعه مطالب عمومی کلیک کنید 


منبع خبر: 4- هوش مصنوعی به زبانی بسیار ساده: شبکه عصبی مصنوعی 2

مسوولیت کلیه محتوای سایت بر عهده منابع اصلی بوده و بانک مشاغل اینفوجاب هیچ مسوولیتی در قبال محتوا ندارد.

دکمه بازگشت به بالا