در این قسمت تیم کدگیت را با آموزش انواع شبکه های عصبی همراهی کنید. شبکه عصبی را در جلسه گذشته معرفی کرده و این جلسه به ادامه این موضوع خواهیم پرداخت. یکی از مواردی که در این جلسه یاد میگیریم انواع شبکه ها عصبی و ساختار آنهاست. اگر به موضوع شبکه عصبی علاقه دارید پیشنهاد میکنیم با ما در این آموزش همراه شوید.
شبکه عصبی
همانطور که در جلسه گذشته گفتیم شبکه عصبی یا شبکه عصبی مصنوعی زیرمجموعه یادگیری ماشین است. نام شبکه عصبی و ساختار آن از مغز انسان الهام گرفته شده است. این شبکه ها از نورون های مغز که به یکدیگر سیگنال می دهند، تقلید می کند. شبکههای عصبی مصنوعی نیز مانند انسانها با مثال یاد می گیرند و برای انجام وظیفههای مشخص مانند شناسایی الگوها و دسته بندی اطلاعات، در طول یک پروسه یادگیری تنظیم میشود.
انواع شبکه های عصبی
انواع زیادی از شبکه های عصبی وجود دارند و یا حتی ممکن است در مرحله توسعه و تحقیق باشند. آنها را می توان بسته به ساختار، نورونها، فیلترها، عمق هر لایه و … طبقه بندی کرد. در لیست زیر برخی از معروفترین شبکههای عصبی آورده شده است.
پرسپترون
انواع شبکه های عصبی را با معرفی پرسپترون آغاز میکنیم. پرسپترون ابتداییترین و قدیمی ترین شکل شبکه های عصبی بوده و فقط از 1 نورون تشکیل شده است. پرسپترون ورودی را می گیرد و Activation Function را روی آن اعمال می کند تا یک خروجی باینری تولید کند. به یاد داشته باشید پرسپترون شامل هیچ لایه مخفی(Hidden Layer) نیست و فقط می توان برای کارهای طبقه بندی باینری (Binary Classification) استفاده شود.
Feed Forward
شبکههای Feed Forward (FF) از چندین نورون و لایه پنهان (Hidden Layer) تشکیل شدهاند که به یکدیگر متصل هستند. داده ها فقط در جهت رو به جلو جریان دارند و انتشار به عقب وجود ندارد به این دلیل این مدل را “تغذیه به جلو” می گویند. لایه پنهان لزوما در این مدل وجود ندارد و بسته به کاربرد شبکه می توان از آن چشم پوشی کرد.
هرچه تعداد لایه های شبکه بیشتر باشد، وزن ها بیشتر سفارشی سازی شده و در نتیجه، توانایی شبکه برای یادگیری بیشتر خواهد شد. در این مدل وزن ها بروزرسانی نمی شوند چراکه از روش پس انتشار (Back Propagation) استفاده نمی شود. خروجی ضرب وزن ها با ورودی ها به تابع فعال سازی(Activation Function) داده می شود که این تابع با استفاده از تعیین یک مقدار آستانه، خروجی را بدست می آورد.
RNN
شبکه عصبی بازگشتی (RNN) نوعی شبکه عصبی است که در آن خروجی مرحله قبل به عنوان ورودی به مرحله فعلی در شبکه میباشد. در شبکههای عصبی سنتی، تمامی ورودیها و خروجیها مستقل از یکدیگر هستند، اما در مواردی مانند زمانی که لازم است کلمه بعدی یک جمله پیشبینی شود، کلمات قبلی مورد نیاز است و از این رو نیاز به یادآوری کلمات قبلی است. بنابراین RNN به وجود آمد که این مشکل را با کمک یک لایه پنهان(Hidden Layer) حل کرد. اصلی ترین و مهم ترین ویژگی RNN حالت مخفی(Hidden State) است که برخی از اطلاعات یک دنباله را به خاطر می آورد.
CNN
شبکه عصبی کانولوشن به جای آرایه دو بعدی استاندارد، دارای آرایش سه بعدی از نورون ها است. لایه اول لایه کانولوشن نامیده می شود. هر نورون در لایه کانولوشنال فقط اطلاعات بخش کوچکی از تصویر را پردازش می کند. در هر پردازش با استفاده از فیلتر، ویژگیهای تصویر را دریافت می کند و می تواند چندین بار این عملیات را محاسبه کند تا پردازش تصویر را کامل کند.