
سلام به همه بچههای علاقمند به کامپیوتر و برنامهنویسی و هوش مصنوعی. همانطور که میدونین روز به روز دنیای هوش مصنوعی داره وسیعتر میشه و به حوزه مختلف از علوم راه یافته است. ما تصمیم داریم هر هفته با یک مقاله در این حوزه، شمارو با رویداد های دنیای هوش مصنوعی آشنا کنیم و مهمتر اینکه ریاضیات این حوزه رو با ساده سازی به شما دانش آموزان عزیز کانونی توضیح بدیم. در نهایت بتونیم قدم به قدم به کد نویسی در محیط پایتون برای مسئله های جذاب هوش مصنوعی برسیم. پیشنهاد میکنم هر هفته مارو با یک مقاله در این حوزه دنبال کنید.
شبکه های عصبی پیشخور
در مقالات هفته های اخیر، با اصول اولیه شبکه های عصبی آشنا شدیم و سپس، یکی از سادهترین الگوریتم های شبکه های عصبی رو با نام پرسپترون (Perceptron) بررسی کردیم. همچنین، در مقاله قبلی، به توابع فعال ساز در نورون های عصبی پرداختیم . این هفته قصد داریم با یکی دیگه از شبکه های عصبی قدیمی و ساده آشنا بشیم با نام شبکه های عصبی پیشخور یا Feedforward Neural Network. اما در ابتدا برای اینکه مطالب این مقاله رو بهتر متوجه بشید، بهتره یک مروری بر روی مطالب چند مقاله اخیر داشته باشید و سپس مطالب این هفتمون رو در مورد این شبکه عصبی جذاب مطالعه کنید.
اگه خاطرتون باشه، گفتیم که دو نوع شبکه پرسپترون وجود داره . این دو شبکه عبارت هستند از:
- تک لایه یا Single layer
- چند لایه یا Multilayers
اگه خاطرتون باشه، با معماری شبکهی تک لایه آشنا شدیم ؛ اما شبکه عصبی پرسپترون چندلایه، در واقع همون موضوع بحث امروز ماست که بهش شبکه های عصبی پیشخور و یا Feedforward Neural Network گفته میشه. این شبکه درواقع از چندین لایه پرسپترون که به هم متصل تشکیل شده که بر خلاف پرسپترون – که تنها از یک لایه ورودی و یک لایه خروجی تشکیل شده بود – شبکهي عصبی پیشخور از سه لایهی ورودی، لایههای میانی یا پنهان و لایهی خروجی به وجود اومده که به هم متصل هستن. هر کدوم از این لایهها هم از چندین نورون تشکیل شدهاند. به زبون ساده شبکه عصبی پیشخور، چند لایه نورون پرسپترون هست که به همدیگه متصل شدن. معماری این شبکه رو در تصویر زیر میتونید ببینید . همونطور که در تصویر مشخص هست، هر نورون در این شبکه مانند یک شبکه پرستپترون عمل میکنه و هر کدوم از نورون ها توابع فعال ساز مخصوص به خودش رو داره .

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

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

پس به همین ترتیب از طریق این اثر آبشاری میتونیم توان های خیلی پیچیده تری رو هم سریع محاسبه کنیم. کاری که در لایه های پنهان یا Hidden layers هم صورت میگیره، مانند کاری هست که در این مثال انجام گرفت. اما لایه های پنهان به صورت دقیق یعنی چی؟
لایه های پنهان
لایه های پنهان ، لایه های میانی و مخفی در شبکه های عصبی هستن که به طراحان این شبکه ها اجازه میدن تا داده های پیچیده رو با استفاده از نورون ها و اتصالات بین آنها، مدل سازی کنن. به جز شبکه ی عصبی پرسپترون ( که در حقیقت تنها یک نورون می باشد)، سایر شبکه های عصبی دارای حداقل یک لایه پنهان هستن. شبکه های با تعداد بالای لایه های پنهان ، به نام شبکه های عصبی عمیق و یا deep neural networks معروف هستند. رایج ترین نوع لایه های پنهان، لایه کامل متصل هست که در آن تمام نورون ها در هر لایه، به همدیگر متصل هستند. نحوه چیدمان لایه های پنهان در شبکه های عصبی، ما رو به انواع مختلفی از این شبکه ها میرسونه که شبکه عصبی پیشخور یکی از اوناست.

تصویر بالا، نمای دقیق تری از شبکه عصبی پیشخور رو به ما نشون میده. اگه دقت کنید، میبینید تمام نورون های موجود در لایه پنهان و لایه خروجی، مانند الگوریتم پرسپترون عمل میکنن. به این ترتیب که هر نورون، ابتدا ورودی ها رو جمع میکنه و بعد اونا رو از تابع فعال ساز عبور میده . زمانی که هر نورون فعال بشه، اطلاعاتش به لایه بعدی انتقال پیدا میکنه.
انواع شبکه های عصبی پیشخور
- 1- شبکه عصبی پیشخور معمولی
این شبکه تنها از یک لایه پنهان تشکیل شده و رویکرد اصلی اون مربوط به دهه 50 میلادی هست.
این شبکه رو به صورت مخفف به صورت" FF "هم می نویسن . به طور کلی در مورد این شبکه میشه نوشت :
- همه نورون ها کاملا متصل به هم هستند.
- ترتیب فعال سازی نورون ها از ورودی به سمت خروجی بوده و هیچ جریان رو به عقبی وجود نداره.
- به طور کلی تنها یک لایه پنهان تو ساختارش داره.

- 2-شبکه عصبی شعاعی پایه
شبکه شعاعی پایه و یا Radial Basis Networks همانند شبکه FF هست، اما تفاوتی که اینجا وجود داره اینه که در این شبکه به جای توابع فعا ساز لجستیک از تابع (( شعاعی پایه )) به عنوان تابع فعال ساز استفاده میشه . توضیح در مورد این شبکه عصبی رو به مطالب آینده موکول میکنیم.
- 3-شبکه عصبی پیشخور عمیق
Deep Feed Forward Neural Networks یا به صورت مخفف ، DFF ، انواعی از شبکه های پیشخور هستند که به جای یک لایه ، از تعداد زیادی لایه های پنهان تشکیل شده اند. این شبکه ها از اوایل دهه 90 توسعه پیدا کرد و پس از اینکه نواقص اون برطرف شد، امروزه هسته مرکزی سیستم های یادگیری مدرن رو تشکیل میده . تصویر زیر دو شبکه عصبی پیشخور معمولی و پیشخور عمیق رو در کنار هم نشون میده .

خب پس به طور خلاصه در این مقاله با اولین ساختار چند لایه در شبکه های عصبی آشنا شدیم و کم کم در مقالات آینده میتونیم عملکردهای کاربردی این شبکه ها رو توضیح بدیم . پس با ما همراه باشید در ادامه سفرمون درون لایه های شبکه های عصبی !
منابع
https://blog.faradars.org/comprehensive-guide-to-neural-networks/
https://www.techopedia.com/definition/33264/hidden-layer-neural-networks
https://towardsdatascience.com/radial-basis-function-neural-network-simplified-6f26e3d5e04d
https://deepomatic.com/introduction-to-deep-learning-ai-for-dummies-2-4#:~:text=Hidden%20layer(s)%20are%20the,at%20least%20one%20hidden%20layer
کلیدواژه ها

دوستان عزیزم؛ برای ارتباط با برترها و رزرو پشتیبان ویژه پیج کانون برترها را دنبال کنید.
همچنین میتوانید با شماره 0218451 داخلی 3123 تماس بگیرید.

