займы с плохой кредитной историей

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

اجازه بدهید یک مثالِ کلاسیک در این حوزه بیاوریم. مسئله‌ی تشخیصِ تابع XOR به وسیله‌ی کامپیوتر. گر‌چه می‌دانیم که XOR را می‌توان با نوشتن یک سری کدِ ساده در کامپیوتر تشخیص داد ولی خاصیتِ غیرِ خطیِ این تابع باعث شده است که از الگوریتمِ یادگیری‌ماشین و داده‌کاوی بخواهیم که تابع XOR را به صورتِ خودکار تشخیص دهد. برای این کار، مانند مثال پراید و اتوبوس بایستی یک سری ویژگی و یک برچسب برای هر نمونه بسازیم. تصویر زیر را نگاه کنید:

تابع xor در شبکه عصبی

اگر با تابعِ XOR آشنایی ندارید این مطلب را بخوانید. همان‌طور که می‌بینید ورودی‌های ما دیگر طول و ارتفاع نیست. اینجا ورودی‌ها یا همان ویژگی‌ها عدد ۱ و عدد ۲ (دو عددی که می‌خواهیم XOR را برای آن‌ها محاسبه کنیم) است. همان‌طور که می‌دانید تابعِ XOR فقط زمانی خروجیِ ۱ می‌دهد که یکی از دو عددِ ورودی ۱ باشد و دیگری ۰ باشد، پس در قسمتِ برچسب، مقدارِ خروجیِ تابعِ XOR را نمایش می‌دهیم. بیایید مانند مثال دروسِ گذشته ماتریس بالا را بر روی دو بُعد (چون دو ورودی داریم) تصویر کنیم:

مثالِ جالبیست! چرا؟ چون این بار دیگر نمی‌توانید مانند مثالِ پراید و اتوبوس با یک خطِ مستقیم مقادیر ۱ و ۰ (خروجی‌های تابع) را از یکدیگر تفکیک کنید، پس مسئله برای کامپیوتر سخت‌تر می‌شود. برای مثالِ ملموس‌تر، فرض کنید می‌خواهید تفاوتِ بین یک گربه را از یک سگ در مجموعه‌ای از تصاویر تشخیص دهید. به این صورت که یک تصویر را به کامپیوتر نمایش می‌دهیم و از کامپیوتر می‌خواهیم که برای ما تشخیص دهد که این تصویر سگ هست یا گربه. این کار را به الگوریتمِ یادگیری ماشین واگذار می‌کنید. دو ویژگی هم داریم. طول حیوان و ارتفاع حیوان. از رسم ماتریس عبور کرده کرده و یک راست سگ‌ها و گربه‌ها را در محور مختصاتِ دو بُعدی رسم می‌کنیم. محورِ x نشان دهنده‌ی طولِ حیوان (برای هر نمونه) و محورِ y ارتفاعِ حیوان را نشان می‌دهد:

همان‌طور که می‌بینید، در این تصویر هم تفاوت بین سگ و گربه را نمی‌توان با یک خطِ مستقیم رسم کرد. پس نمی‌توانیم از پرسپرتونِ ساده استفاده کنیم. چون پرسپرتونِ ساده فقط می‌توانست یک تفکیکِ خطی از مسئله را انجام دهد.

برای حل این دست مسائل معماری‌های چند لایه‌ای برای شبکه‌های عصبی مطرح شد. برای این کار نیاز داریم که لایه‌های مخفی (hidden) را وارد سیستم کنیم. در درسِ اول یک شبکه‌ی عصبیِ بسیار ساده را دیدیم که فقط یک لایه‌ی ورودی و یک لایه‌ی خروجی داشت. اما حالا می‌خواهیم لایه‌های دیگر را نیز به شبکه اضافه کنیم تا تواناییِ یادگیریِ مسائل پیچیده‌تری را داشته باشد. به شکل زیر نگاه کنید:

بر خلافِ درسِ اول، در اینجا ورودی‌های ما به طور مستقیم به خروجی متصل نیستند. در عوض یک لایه‌ی میانی برای این کار وجود دارد. این لایه هم مانندِ لایه‌ی اول همان کارهای ضربِ مقادیر در وزن‌ها و سپس جمعِ آن با مقدارِ انحراف (bias) را انجام می‌دهد. نکته‌ی اصلی اینجاست که با استفاده از لایه‌ی میانی که به آن لایه‌ی مخفی نیز می‌گویند می‌تواند الگوهای پیچیده‌تری را کشف کرد. مانندِ تصاویرِ بالا برای جدا‌سازی سگ و گربه یا جداسازی  ۰ها و ۱ها در تابع XOR، که نیاز به یک خطِ غیرِ مستقیم داشتند تا بتوان آن‌ها را از یک‌دیگر جدا کرد. در واقع برای حلِ این مسائلْ یک تفکیکِ غیرِخطی نیاز است. تصویرِ زیر را برای مثالِ سگ و گربه نگاه کنید:

همان‌طور که می‌بینید در اینجا ما با یک خطِ غیرِ‌مستقیم توانستیم این جدا‌سازی را انجام دهیم. این کار (کشیدنِ خطِ غیرِ مستقیم) توسطِ پرسپترونِ ساده قابل انجام نیست و نیاز به یک یا چند لایه‌ی مخفیِ میانی دارد تا تشخیص‌های پیچیده‌تری را برای ما انجام دهد. همان‌طور که گفتیم لایه‌های میانی یا همان لایه‌های مخفی می‌توانند بیش از ۱ لایه نیز باشند. با استفاده از پرسپترونِ چند لایه (multi layer perceptron) میتوان الگوهای پیچیده‌تری را یاد گرفت. در کل وظیفه‌ی لایه‌های مخفیِ میانی همین است که الگوهایی با درجه پیچیدگیِ بالاتری را یاد بگیرد. در دروس بعدی به نحوه‌ی یادگیری پرسپترون چند لایه نگاهی می‌اندازیم.

ارسال دیدگاه

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

займ на карту онлайн срочный займ на карту займ на карту срочно без отказа