وبلاگ

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

what-is-neural-networks-a-gentle-introduction-to-neural-networks-series-hamruyesh-com
هوش مصنوعی

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

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

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

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

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

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

 

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

 

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

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

.

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

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

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

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

 

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

 

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

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

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

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

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

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

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

 

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

 

 

 

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

 

 

 

 

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

 

سایت ما 

منبع ما 

دیدگاه خود را اینجا قرار دهید

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

فیلدهای نمایش داده شده را انتخاب کنید. دیگران مخفی خواهند شد. برای تنظیم مجدد سفارش ، بکشید و رها کنید.
  • عکس
  • شناسه محصول
  • امتیاز
  • قیمت
  • در انبار
  • موجودی
  • افزودن به سبد خرید
  • توضیحات
  • محتوا
  • عرض
  • اندازه
  • تنظیمات بیشتر
  • نویسنده
  • قسمت
  • زبان
Click outside to hide the comparison bar
مقایسه