شبکه عصبی چیست؟ (بخش اول)

در این جلسه چه می گذرد؟

✔️ بررسی دقیق تر رفتار و معادلات هر نورون

✔️ مفهوم وزن و بایاس در شبکه عصبی

✔️ ماتریس وزن و بایاس در شبکه عصبی

✔️ لایه ها در شبکه عصبی

توضیحات مکمل این جلسه

خوش آمدید به جلسه دوم آموزش رایگان شبکه عصبی. در این قسمت می خواهیم بیشتر با شبکه عصبی و لایه های آن آشنا شویم و کلی نکات جدید یاد بگیریم. آماده اید؟

 

بررسی دقیق تر رفتار و معادلات هر نورون

در بخش قبل دیدیم که مسأله رگرسیون را می توانیم با روش گرادیان کاهشی (Gradient Descent) حل کنیم. کارکرد شبکه عصبی دقیقا مشابه همان مثال جلسه گذشته است. در این مثال، مسأله ما یک فیچر ورودی داشت و بنابراین مشابه یک شبکه عصبی با یک تک نورون بود. خروجی این حالت برابر است با:

y=ax+b

در ابتدای حل مسأله ضرایب a و b به صورت تصادفی تولید می شوند و سپس برای خروجی بدست آمده، تابع زیان (loss function) یا خطا را حساب می کنیم، سپس از خطا مشتق می گیریم. این دقیقا مشابه رفتار یک تک نورون در شبکه عصبی است که در ادامه آن را بیشتر بررسی می کنیم. در واقع هر نورون درون خود یک رگرسیون خطی ساده دارد.

تا اینجا تک نورون داشتیم. از اتصال چند نورون به هم شبکه تشکیل می شود که هر یک از این نورون ها یک سری ورودی و یک سری خروجی دارند و در درون خود یک رگرسیون خطی را حل می کنند.

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

 

مفهوم وزن و بایاس در شبکه عصبی

همانطور که دیدیم هر نورون درون خود یک رگرسیون خطی دارد. حال فرض کنید هر نورون سه فیچر ورودی و یک خروجی داشته باشد. در این حالت رگرسیون خطی برای تعیین خروجی هر نورون برابر است با:

y=ax0+bx1+cx2+d

در شبکه عصبی ضرایب a، b و c را وزن و مقدار ثابت d را بایاس می گوییم. می توان این حالت را به مسأله ای با n ورودی تعمیم داد. در این حالت خواهیم داشت:

بنابراین در هر نورون باید معادله فوق حل و بهینه شود.

 

ماتریس وزن و بایاس در شبکه عصبی

از نگاه جبر خطی X و W هر دو ماتریس هستند و کل این معادله در واقع نشان دهنده ضرب ماتریسی X در W است. این ضرب ماتریسی برای حالت دوبعدی در شکل زیر نشان داده شده است:

ماتریس وزن و بایاس در شبکه عصبی

در این حالت با ضرب دو ماتریس W و X، ماتریس تک بعدی و یا اسکالر Y را خواهیم داشت. به طور کلی در حالتی که n بعد خروجی و m بعد ورودی داشته باشیم، مسأله به حل معادله زیر تبدیل می شود:

آموزش شبکه به معنی آپدیت کردن ضرایب وزن و بایاس در جهت کاهش خطاستدر هر شبکه عصبی یک سری لایه های پنهان وجود دارد که تعداد این لایه ها عمق شبکه را تعیین می کند.

 

لایه ها در شبکه عصبی

در شکل زیر شماتیک یک شبکه عصبی نشان داده شده است. در این شکل مقادیر نوررون های لایه ورودی، ماتریس X را در معادله فوق تشکیل می دهند.

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

البته در شبکه عصبی به توابع فعالسازی (activation function) هم نیاز داریم تا روابط را از حالت خطی خارج کنیم. در مباحث آینده در این خصوص صحبت خواهیم کرد.

لایه ها در شبکه عصبی

تعداد نورون های ورودی در لایه ورودی شبکه، برابر تعداد فیچرهای ورودی مسأله ماست. همچنین تعداد نورون های خروجی بسته به نوع مسأله تعیین می شود. به عنوان مثال در یک مسأله دسته بندی سه کلاسه برای دسته بندی تصاویر سگ، گربه و اسب، تعداد نورون های خروجی سه خواهد بود.

لایه های پنهان، بخش اصلی آموزش شبکه را بر عهده دارند. تعداد این لایه ها و تعداد نورون های هر لایه از جمله هایپرپارامترهای مسأله است که باید توسط ما تعیین شود.

در واقع نام یادگیری عمیق هم اشاره به حضور همین لایه های پنهان در عمق دارد و معنای آن یادگیری عمیق تر نسبت به سایر روش ها نیست. به عنوان مثال شبکه نشان داده شده در شکل زیر، نسبت به شبکه شکل قبل عمیق تر است:

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

در جلسات آینده درباره مباحث توابع فعالسازی، پس انتشار (back propagation)، شبکه پیش خور (feed forward) و در شبکه های عصبی صحبت خواهیم کرد. همین الان جلسه دوم دوره رایگان آموزش عصبی را در سایت دیتا یاد ببینید. 

به این آموزش چند ستاره می دهید؟

Rating 4.35 from 20 votes

آموزش پیشنهادی و مکمل

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

guest
4 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
tiktaak
tiktaak
8 ماه قبل

درود جناب کلاگر. در این جلسه شما به مسئله ای که در جلسه قبلی حل شده است رفرنس میدهید و توضیحات میدهید. اما در جلسه اول دوره چنین مسئله ای طرح نشده است.

صابر کلاگر
صابر کلاگر
پاسخ به  tiktaak
8 ماه قبل

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

ارادت

نگین
نگین
پاسخ به  صابر کلاگر
4 ماه قبل

ببخشید این روش گرادیان کاهشی و …که اشاره کردید رو از کجا میتونیم مشاهده کنیم؟

صابر کلاگر
صابر کلاگر
پاسخ به  نگین
4 ماه قبل

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

سبد خرید

دوره جامع متخصص علم داده و یادگیری ماشین

برای دیدن نوشته هایی که دنبال آن هستید تایپ کنید.
×