 چیست؟ و طرز کار آنها چگونه است؟-201021052659.jpg)
شبکه های عصبی مصنوعی (ANN) چیست؟ و طرز کار آنها چگونه است؟
در دنیای امروزی کارهای زیادی وجود دارد که کامپیوترها می توانند بهتر از انسان انجام دهند؛ یک صفحه وب را بلافاصله بازیابی کنند، یا ریشه های مربع را محاسبه کنند. اما وقتی صحبت از عقل سلیم، الهام و تخیل می شود، مغز انسان حرف بیشتری برای گفتن دارد!
از زمان های بسیار دور انسان ها سعی بر این داشتند، که فیزیولوژی مغز را دریابند، زیرا که همواره مسئله هوشمندی انسان، قابلیت یادگیری، خلاقیت و... در مغز مورد توجه بشر واقع شده بود.
شبکه های عصبی هم یکی از زیر شاخه های هوش مصنوعی است که برای اولین بار، در دهه ۱۹۵۰ برای حل این مسئله ساخته شدند. شبکه عصبی مصنوعی تلاشی برای شبیه سازی شبکه نورون های مغز است تا کامپیوتر قادر به یادگیری چیزها و تصمیم گیری به روش انسانی باشد. در واقع آنها با الهام از ساختار مغز پاسخ انسان سازی بیشتر رایانه ها هستند .
در طی سالهای اخیر به گفته بسیاری از دانشمندان، مغز انسان پیچیده ترین سیستمی است که توانسته تاکنون در گیتی شناخته شود و مورد مطالعه قرار بگیرد. پیچیدگی رازآلود این سیستم بی همتا، به اتصال های فراوان موجود میان اعضای آن بازمی گردد؛ و این دقیقا همان چیزی است که مغز را از دیگر سیستم های موجود متمایز تر می کند.
سرعت و قدرت پردازش بسیار بالای مغز انسان، به اطلاعات انبوهی برمیگردد که در میان سلولهای سازنده مغز وجود دارد. بدون وجود این لینک های ارتباطی مغز انسان، سیستم معمولی کاهش می یافت، امکانات فعلی راهم نداشت!
ایده پشت شبکه عصبی مصنوعی هم، شبیه سازی سلول های مغزی متصل داخل یک کامپیوتر است، تا بتوانند اعمال یادگیری شناسایی الگو ها و تصمیم گیری انسانگونه را انجام دهند. در شبکه های عصبی نیازی نیست که برای یادگیری سریع، برنامه را به او دیکته کنید، بلکه این شبکه می تواند تقریبا از هر عملکرد گروه برداری کند و با توجه به نمونه های آموزش کافی و قدرت محاسبه بالا، همه چیز را مانند مغز انسان، خودش یاد بگیرد. در مورد شبکه های عصبی با برنامه نویسی ساده بسیار متفاوت هستند چرا که آنها از مجموعه های آموزشی برای آموزش توانایی تصمیمگیری انسانی خود استفاده میکنند.
ساختار شبکه های عصبی
شبکه های عصبی مصنوعی سعی در تکرار رفتار و فرایندهای مغز واقعی دارند و به همین دلیل معماری آنها بر اساس ساختار بیولوژیکی مدل سازی می شود.
مغز انسان دارای صدها میلیارد سلول به نام نورون است که از یک بدنه سلولی تشکیل شدهاند و وظیفه جابجایی داده های عصبی را بر عهده دارند.
شبکه عصبی نیز دارای چندین نورون مصنوعی به نام واحد پردازش هستند که توسط گروه هایی به هم متصل می شوند. این واحد های پردازشی از یک سری واحد های ورودی و خروجی تشکیل شدند.
واحد های ورودی (input layers) برای دریافت اشکال مختلف داده از دنیای بیرون که شبکه سعی در یادگیری، شناسایی و پردازش آنها دارند طراحی شده اند. این واحدها ساختار های مختلف اطلاعاتی را بر اساس یک سیستم طبقه بندی وزن داخلی دریافت کرده و سعی در تحلیل و ارائه اطلاعات برای تولید یک گزارش خروجی را دارد.
سایر واحد ها که واحدهای خروجی (output layers) نام دارند در طرف مخالف شبکه قرار دارند و چگونگی واکنش شبکه به اطلاعات داده شده را بررسی میکنند. همچنین در میان این دو واحد هم تعدادی لایه وجود دارد که به آنها لایه های مخفی (Hidden layers) می گویند که به همراه دو واحدهای دیگر بخش عمده مغز مصنوعی را تشکیل می دهند.
عموما در شبکه های عصبی، نورونهای تمام لایه ها به هم متصل هستند. شبکه های عصبی هر نورون به طور مستقل عمل میکند و رفتار کلیه شبکه در واقع برآیند رفتار تمام نورون ها است. به بیانی دیگر، نورونها در طی یک روند همکاری، یکدیگر را تصحیح می کنند.
طرز کار شبکه های عصبی مصنوعی
• ابتدا اطلاعات از طریق واحد های ورودی با مقادیر X، وارد شبکه می شود. در واقع ورودی الگوریتم همان Xها هستند، که در تصویر از X1 تا Xm نشان داده شده است.
• سپس به هر ورودی یک وزن اختصاص داده میشود.(مثل X1 که یک وزن به اسم W1 دارد). در واقع هر ورودی باید در وزن خود، ضرب شود. در تصویر هم مشاهده می کنید، هر کدام از ورودی ها به یک وزن متصل شدهاند.
• در قدم بعد، حاصل ضرب Xها در Wها، به وسیله یک تابع جمع به نام سیگما (Σ) با هم جمع میشوند.
• در مرحله بعد، Activation Function را که یک تابع فعالسازی است بر روی داده ها اعمال میکنیم. چه خوب نسبت به نیاز مسئله و نوع شبکه عصبی، تعریف می شود.
• و در آخر دادهها بعد از طی کردن تمامی این مراحل، به سمت خروجی شبکه میروند که در واقع نتیجه این شبکه را، مشخص می کند.
نحوه یادگیری شبکه های عصبی مصنوعی
شبکههای عصبی مصنوعی نیز مانند انسانها با مثال یاد می گیرند. اصولا مهم ترین ویژگی یک سیستم هوشمند، توانایی یادگیری این سیستم است؛ زیرا که با این قابلیت سیستم منعطف تر و ساده تر برنامه ریزی می شود، بنابراین بهتر می تواند در مورد مسائل جدید پاسخگو باشد.
همان طور که ما نیز برای یادگیری به بازخورد نیاز داریم شبکه های عصبی نیز به آن نیاز دارد. بطور مثال، فرض کنید که می خواهید یک توپ را درون سبد هدف بیندازید. وقتی شما برای اولین بار امتحان می کنید، مغز شما به سرعت شروع جمع آوری اطلاعات و تجزیه و تحلیل آنها می کند. بنابراین دفعه بعدی که خواستید دوباره توپ را بیندازید، مغز سعی میکند که اشتباهات سری قبلی را به یاد آورد و سعی در اصلاح آن کند.
در این مثال شما از بازخورد برای مقایسه نتیجه قبلی با نتیجه دلخواه خود، استفاده کردهاید. در واقع این بازخوردها تفاوتها را مشخص کرده و بر اساس آن دستور کار بعدی را برای شما ایجاد می کند. مثلاً با شدت کمتر، رها کردن زودتر ویا طول برد کمتر، میتوانید توپ را درون سبد هدف بیاندازید!
شبکه های عصبی نیز دقیقا به همین روش یاد میگیرند. یادگیری شبکه های عصبی با استفاده از یک روند بازخوردی را پس انتشار می گویند. این فرآیند به این صورت است که: از مقایسه خروجی تولیدی یک شبکه با خروجی دلخواه، تفاوت های بین این دو خروجی را برای تغییر و اصلاح وزن های اتصالات بین واحدهای شبکه ای، استفاده می شود. البته با یک تفاوت که این روش بر عکس عمل می کند یعنی از واحدهای خروجی به سمت واحدهای مخفی و سپس از آنجا به سمت واحد های ورودی می رویم.
این روند تا آنجا ادامه می یابد که شبکه های عصبی دقیقا همانطور که باید، یاد بگیرد و بتواند خروجی درستی را ارائه دهد
کاربرد های شبکه های عصبی مصنوعی
استفاده از سیستمهای هوشمند، به ویژه شبکه های عصبی مصنوعی گسترده شده. به طوری که کمتر مبحثی هست که نیاز به تحلیل تصمیم گیری پیش بینی و... را داشته باشد، و در آن از موضوع شبکههای عصبی مصنوعی استفاده نشده باشد.
امروزه می توانید ردپای شبکه های عصبی مصنوعی را در علوم های مختلفی از جمله کامپیوتر، نجوم، پزشکی، اقتصاد و مالی، زیست محیطی، نظامی و...
همچنین این شبکه حتی نتوانسته در هنر و ادبیات نیز جایگاهی را به خود اختصاص دهد!
پیامی ارسال کنید