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

فهرست مطالب

هم رویش منتشر کرده است:

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

 

 

شبکه های عصبی چیست؟

برای آنکه تعریف مناسبی از شبکه عصبی (یا مناسب تر این است که بگوییم شبکه عصبی مصنوعی) ارائه دهیم، به سراغ مخترع یکی از اولین نوروکامپیوترها (کامپیوترهای عصبی) می رویم. یعنی دکتر رابرت هچ-نیلسن (Robert Hecht-Nielsen). دکتر نیلسن، شبکه عصبی را به صورت زیر تعریف می کند:

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

به عبارت دیگر، می توان شبکه عصبی مصنوعی را یک مدل محاسباتی در نظر گرفت. که عملکرد آن، الهام گرفته از شبکه های عصبی بیولوژیکی موجود در مغز انسان است. که وظیفه پردازش اطلاعات را بر عهده دارند.

 

محرک و اتصالات بیولوژیکی

واحد محاسباتی پایه ای مغز انسان، نورون نام دارد. تقریبا 86 میلیارد نورون در سیستم عصبی انسان یافت می شود. این نورون ها، با چیزی بین 1014 تا 1015 سیناپس (synapses) به یکدیگر متصل هستند. شکل های زیر، یک نورون بیولوژیکی و یک مدل ریاضی مرسوم از نورون را نشان می دهد.

 

شبکه-ها-ی-عصبی-چیست-شبکه-ها-ی-عصبی-بازگشتی-هم-رویش
نورون بیولوژیکی

 

شبکه-ها-ی-عصبی-چیست-شبکه-ها-ی-عصبی-بازگشتی-هم-رویش
مدل ریاضیاتی مرسوم

 

 

 

هم رویش منتشر کرده است:

آموزش ساخت شبکه عصبی با پایتون (و دیگر زبان‌ها) از صفر

 

 

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

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

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

در مدل محاسباتی، فرض می کنیم که زمان بندی دقیق جرقه ها اهمیتی ندارد. و فقط، فرکانس شلیک است که اطلاعات را تبادل می کند.

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

+ پیش از این آموزش شبکه عصبی LSTM برای پیش بینی قیمت بازار در هم‌رویش منتشر شد. برای دیدن فیلم معرفی این بسته بر روی لینک آموزش شبکه عصبی LSTM و یا پخش کننده پایین کلیک کنید:

 

 

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

 

معماری شبکه عصبی

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

و اما ادامه ماجرا … !

 

گره های ورودی (لایه ورودی)

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

 

 گره های پنهان (لایه پنهان)

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

 

گره های خروجی (لایه خروجی)

گره های خروجی (لایه خروجی): در نهایت، در این لایه از یک تابع فعالسازی استفاده می کنیم. تا قالب مطلوب خروجی را برایمان تولید کند. (مثلا برای مسائل دسته بندی، از تابع softmax استفاده می کنیم).

 

 اتصالات و وزن ها

اتصالات و وزن ها: شبکه، از اتصالات متعددی تشکیل می شود که هر اتصال، خروجی نورون i ام را به ورودی نورون j ام منتقل می کند. در این جا، i مقدم بر j است و j بعد از i آورده می شود. بنابراین به هر اتصال، یک وزن به صورت Wij اختصاص داده می شود.

 

تابع فعال سازی

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

 

قانون یادگیری

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

 

انواع شبکه های عصبی

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

 

1- شبکه عصبی پیشخور

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

می توان دو نوع از شبکه های عصبی پیشخور را به صورت زیر برشمرد:

 

1-1- پرسپترون تک لایه:

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

 

1-2- پرستپرون چند لایه (MLP):

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

 

1-3- شبکه عصبی کانولوشنی (پیچشی):

شبکه های عصبی کانولوشنی (convolutional) بسیار شبیه به شبکه های عصبی معمولی هستند. این شبکه ها نیز از نورون هایی با وزن ها و بایاس های قابل تعلیم ساخته شده اند. در شبکه عصبی کانولوشنی (CNN یا ConvNet یا تغییر ناپذیر با انتقال یا تغییرناپذیر با فضا) الگوی اتصال واحدها، از ارگان قشر بینایی الهام گرفته شده است.  واحدها، در یک ناحیه محدود از فضا که با عنوان میدان پذیرایی (receptive field) شناخته می شود، به محرک ها پاسخ می دهند. میدان های پذیرایی تا حدی با یکدیگر همپوشانی دارند و کل میدان بینایی را پوشش می دهند. پاسخ هر واحد را می توان از نظر ریاضی توسط عملگر کانولوشن تقریب زد.

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

 

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

 

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

 

 

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

 

2- شبکه های عصبی بازگشتی

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

 

توابع فعال سازی متداول

هر تابع فعال سازی (یا غیرخطی گری)، یک عدد را به عنوان ورودی می گیرد و عملیات ریاضی معین و ثابتی روی آن انجام می دهد. برخی از توابع فعال سازی که در عمل با آنها سروکار خواهید داشت عبارتند از:

– sigmoid (سیگموید)

– Tanh (تانژانت هایپربولیک)

– ReLU

– Leaky Relu (رلوی نشتی)

برای جزییات بیشتر، می توانید به مقاله توابع فعال سازی (Activation Functions) مراجعه کنید و یا نگاهی به یادداشت های موجود در (Cs231n (CNNs) course notes) بیندازید.

 

شبکه های عصبی مصنوعی و مغز

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

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

 

در راستای این مقاله، مطالعه مقاله های زیر پیشنهاد می‌شود:

شبکه عصبی کانولوشن یا Convolutional چیست ؟ __ راهنمای جامع به روش ELI5

شبکه عصبی بازگشتی چیست ؟ آشنایی با شبکه‌های عصبی بازگشتی (RNN) و (LSTM)

تاریخچه شبکه عصبی و یادگیری عمیق ___ (قسمت اول)

 

کلید واژگان

شبکه های عصبی چیست – شبکه عصبی – شبکه عصبی کانولوشنی – شبکه های عصبی بازگشتی – انواع معماری شبکه عصبی  – انواع شبکه عصبی مصنوعی – انواع شبکه عصبی – شبکه عصبی پرسپترون چندلایه – شبکه عصبی مصنوعی چیست – شبکه عصبی کانولوشنی – انواع شبکه های عصبی

 

مراجع

 

 

منبع :

a-gentle-introduction-to-neural-networks-series

 

 

دوره های آموزشی مرتبط

نویسنده :

سئو و ویراستاری :

زیبا عامریان هستم فارغ‌التحصیل مهندسی کامپیوتر و متخصص سئو و بازاریابی محتوا. در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم.

زیبا عامریان هستم فارغ‌التحصیل مهندسی کامپیوتر و متخصص سئو و بازاریابی محتوا. در تیم اجرایی هم‌رویش مدیریت واحد محتوا رو به عهده دارم و امیدوارم که تونسته باشم تاثیر خوبی روی سئو و کیفیت خوانش محتوای هم‌رویش بگذارم.

دیدگاهتان را بنویسید

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

Search

مطالب مرتبط

دسته بندی مطالب

دوره-رایگان-یادگیری-ماشین-کتاب-یادگیری-ماشین-ژرون-Aurelien-Geron-هم-رویش
یادگیری ماشین رایگان ــ تندخوانی کتاب جرون