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

در این درس از دوره‌ی شبکه های عصبی به توابعِ فعال‌ساز (activation functions) می‌رسیم. در اینجا قصد نداریم تمامیِ توابعِ فعال‌ساز را با هم به صورت دقیق مرور کنیم. فقط می‌خواهیم چند نمونه‌ی کاربردی از این توابع را در شبکه‌های عصبی بررسی کنیم.

یک تعریف ساده و البته کمی نادقیق درباره توابع فعال‌ساز وجود دارد: این توابع در واقع یک قسمت در شبکه‌های عصبی هستند که ورودیِ آن‌ها یک عدد (کوچک یا بزرگ در بازه‌ی دلخواه) است و خروجیِ آن‌ها معمولاً یک عدد بین ۰ و ۱، یا ۱- و ۱+ است. در واقع این توابع یک عددِ ورودی را به یک بازه مشخص (مثلا ۱- تا ۱+) تبدیل می‌کنند. به توابعِ فعال‌ساز، توابع انتقال (transfer function) نیز می‌گویند.

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

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

همان‌طور که در تصویر مشاهده می‌کنید، یک تابع داریم که عددی در بازه‌ی منفی بینهایت تا مثبت بینهایت (محور Xها) را دریافت کرده و در خروجی مقدارِ ۰ یا ۱ را (محور Yها) برمی‌گرداند. برای مثال اگر عددِ ۱- به این تابع بدهیم (چون کوچکتر از صفر است) خروجیِ این تابع عددِ ۰ خواهد بود و همچنین اگر عدد ۲۴۵ (که بزرگتر از صفر است) را به تابع بدهیم، این تابع عددِ ۱ را برمی‌گرداند. تصویرِ بالا همان تابع پرسپترون بود که به تابعِ پله (step function) نیز معروف است.

ولی همیشه در یک شبکه‌ی عصبی از تابعِ پرسپترون استفاده نمی‌شود. مخصوصاً شبکه‌های عصبی که بخواهند ویژگی‌های پیچیده‌تری را یاد بگیرند. مثالی دیگر از توابعِ فعال‌سازی، تابع sigmoid است. به تصویر زیر نگاه کنید:

همان‌طور که می‌بینید این تابع هم یک ورودیِ منفیِ بینهایت تا مثبت بی‌نهایت را به یک بازه‌ی ۰ تا ۱ تبدیل می‌کند. اما همان‌طور که مشاهده می‌کنید دیگر این کار به صورت خطی انجام نمی‌شود. برای مثال اگر عدد ۰ به تابع sigmoid داده شود، خروجی برابر ۰.۵ خواهد بود. به این توابعِ مانند sigmoid توابعِ فعال‌سازِ غیرِ خطی (non-linear) گفته می‌شود. در واقع به جای قرار دادن پرسپترون در خروجی شبکه‌ی عصبی می‌توانیم از sigmoid استفاده کنیم. این توابع می‌توانند ترکیب‌ها و ویژگی‌های پیچیده‌تری را در مجموع از شبکه‌های عصبی کسب کنند.

به مثال اتوبوس و پراید در دروس گذشته برگردیم. اگر از تابع sigmoid استفاده کنیم، دیگر نمی‌توانیم انتظار داشته باشیم که خروجی مقدار دقیقِ ۰ (برای پراید) یا ۱ (برای اتوبوس) را بدهد. خروجی یک بازه بین ۰ تا ۱ است. مثلا می‌توانیم بگوییم اگر خروجی بیشتر از ۰.۵ بود، آن‌گاه نمونه‌ی مورد نظرِ ما اتوبوس است و در غیر این صورت نمونه‌ی مورد نظر، یک پراید را نمایش می‌دهد.

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

ارسال دیدگاه

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

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