پرسپترون: سادهترین نورون مصنوعی
شبکههای عصبی، از کوچک تا مدلهای چندمیلیارد پارامتری، از کنار هم گذاشتن یک واحد ساده ساخته میشوند: نورون مصنوعی. اولین و سادهترین شکلش پرسپترون است.
نورون زیستی
Section titled “نورون زیستی”در مغز پستانداران، یک نورون (یاختهی عصبی) سه بخش اصلی دارد:
- دندریتها (dendrites): ورودیها؛ سیگنال را از نورونهای دیگر میگیرند.
- جسم سلولی (body): سیگنالهای رسیده را جمع میکند و «تصمیم» میگیرد.
- آکسون (axon): خروجی؛ سیگنال را به نورونهای بعدی میفرستد.
سیگنالها در مغز عدد نیستند؛ یونهایی هستند که آزاد میشوند. هر اتصال حساسیت متفاوتی دارد: بعضی اتصالها قویاند و با کمی یون فعال میشوند و بعضی ضعیف. اگر مجموع سیگنالهای رسیده به اندازهی کافی باشد، نورون فعال میشود و خودش سیگنال میفرستد؛ وگرنه نه.
مدل پرسپترون
Section titled “مدل پرسپترون”پرسپترون همین ایده را خیلی سادهشده پیاده میکند. فرانک روزنبلات آن را در سال ۱۹۵۸ معرفی کرد.
- ورودیها عددهایی هستند که ویژگیهای مسئله را نشان میدهند: قد و وزن، اندازه و بافت یک تومور، یا پیکسلهای یک تصویر. هر ویژگی یک ورودی است.
- هر ورودی در یک وزن (weight) ضرب میشود. وزنها معادل حساسیت اتصالها در مغزند.
- حاصلضربها جمع میشوند.
- یک تابع فعالیت (activation function) روی نتیجه اعمال میشود و خروجی را میسازد. سادهترینش تابع پله است: اگر مجموع مثبت بود ۱، وگرنه ۰.
وزنها در ابتدا تصادفی انتخاب میشوند. نوزاد هم با اتصالهای عصبی تقریباً تصادفی به دنیا میآید؛ نه حرف میزند و نه تصمیم درستی میگیرد، و با بازخوردی که از محیط میگیرد کمکم یاد میگیرد. ما هم نمیدانیم وزن درست برای فرق گذاشتن بین گربه و سگ چیست؛ پس از عددهای تصادفی شروع میکنیم و بعداً اصلاحشان میکنیم. همین اصلاح کردن وزنها، آموزش شبکه است.
یک مثال عددی
Section titled “یک مثال عددی”ورودیها ۱۲ و ۴ هستند و وزنهای تصادفی اولیه ۰٫۵ و ۱-:
حاصل مثبت است، پس تابع پله خروجی ۱ میدهد.
مشکل ورودی صفر و نقش بایاس
Section titled “مشکل ورودی صفر و نقش بایاس”اگر همهی ورودیها صفر باشند چه؟ صفر ضرب در هر وزنی صفر است، پس مجموع همیشه صفر و خروجی همیشه ۰ است. هر قدر هم وزنها را عوض کنیم، فرقی نمیکند. اگر در دادهی ما نمونهای با ورودیهای صفر برچسب ۱ داشته باشد، پرسپترون هیچوقت نمیتواند آن را درست بگوید.
راهحل، یک پیچ تنظیم دیگر است: عددی به نام بایاس (bias) که مستقل از ورودیها به مجموع اضافه میشود. حالا اگر ورودیها صفر باشند، علامت بایاس تصمیم را میگیرد.
به زبان ریاضی، یک پرسپترون با ورودی این را حساب میکند:
که تابع فعالیت است. هر نورون، مستقل از تعداد ورودیهایش، فقط یک بایاس دارد.
پرسپترون از نگاه هندسی
Section titled “پرسپترون از نگاه هندسی”با دو ورودی و ، معادلهی یک خط است؛ همان که از دبیرستان میشناسیم. پرسپترون به نقطههای یک طرف خط ۱ میدهد و به طرف دیگر ۰. پس یک پرسپترون یعنی یک خط که صفحه را دو نیم میکند. بایاس همان عرض از مبدأ است: بدون آن، خط مجبور است از مبدأ بگذرد.
با سه ورودی این مرز یک صفحه است و با تعداد بیشتر، یک ابرصفحه (hyperplane). اسمش هر چه باشد، مرز صاف است و خمیدگی ندارد.
به مسئلههایی که با یک خط (یا صفحه یا ابرصفحه) حل میشوند جداشدنی خطی (linearly separable) میگوییم. مسئلهی سوم اینطور نیست، و بیشتر مسئلههای دنیای واقعی هم پیچیدهتر از یک خطاند.
از یک نورون به شبکه
Section titled “از یک نورون به شبکه”برای مسئلهی سوم دو راه داریم. یکی اینکه با روشهای دیگر یادگیری ماشین مرزهای خمیده بسازیم. راه دیگر این است که چند خط را با هم ترکیب کنیم: یک خط اینجا، یکی آنجا، یکی دیگر آن طرف، و ناحیهای که بینشان است یک دسته باشد. یعنی چند پرسپترون را کنار هم بگذاریم و خروجیشان را به پرسپترونهای دیگری بدهیم. این همان شبکهی عصبی چندلایه است.
- پرسپترون ورودیها را در وزنها ضرب و جمع میکند، بایاس را اضافه میکند و از یک تابع فعالیت عبور میدهد: .
- وزنها و بایاس با عددهای تصادفی شروع میشوند و آموزش یعنی اصلاح آنها.
- بایاس اجازه میدهد مرز تصمیم از مبدأ نگذرد.
- یک پرسپترون یک مرز خطی است و فقط مسئلههای جداشدنی خطی را حل میکند.
مقدمهای بر یادگیری عمیق، آموزش رایگان و فارسی یادگیری عمیق.