شبکه عصبی (neural network) چیست؟
در فناوری اطلاعات (IT)، یک شبکه عصبی مصنوعی (ANN) یک سیستم سخت افزاری و/یا نرم افزاری است که پس از عملکرد نورون ها در مغز انسان الگوبرداری شده است. شبکههای عصبی مصنوعی – که به سادگی شبکههای عصبی نیز نامیده میشوند – انواع فناوریهای یادگیری عمیق هستند که زیر چتر هوش مصنوعی یا AI نیز قرار میگیرند. با ایران گواه همراه باشید.
کاربردهای تجاری این فناوری ها عموماً بر حل مشکلات پیچیده پردازش سیگنال یا تشخیص الگو متمرکز هستند. نمونه هایی از کاربردهای تجاری مهم از سال 2000 شامل تشخیص دست خط برای پردازش چک، رونویسی گفتار به متن، تجزیه و تحلیل داده های اکتشاف نفت، پیش بینی آب و هوا و تشخیص چهره است.
تاریخچه شبکه های عصبی مصنوعی به روزهای اولیه محاسبات باز می گردد. در سال 1943، ریاضیدانان وارن مک کالوچ و والتر پیتس یک سیستم مداری ساختند که برای تقریبی عملکرد مغز انسان طراحی شده بود که الگوریتم های ساده ای را اجرا می کرد.
تا اینکه در حدود سال 2010 بود که تحقیقات دوباره شروع به کار کرد. روند کلان داده، جایی که شرکتها حجم وسیعی از دادهها را جمعآوری میکنند، و محاسبات موازی، دادههای آموزشی و منابع محاسباتی مورد نیاز برای اجرای شبکههای عصبی مصنوعی پیچیده را به دانشمندان داده میدهد. در سال 2012، یک شبکه عصبی توانست عملکرد انسان را در یک کار تشخیص تصویر به عنوان بخشی از رقابت ImageNet شکست دهد. از آن زمان، علاقه به شبکههای عصبی مصنوعی افزایش یافته و این فناوری همچنان در حال بهبود است.
نحوه عملکرد شبکه های عصبی مصنوعی
یک ANN معمولاً شامل تعداد زیادی پردازنده است که به صورت موازی کار می کنند و در لایه ها مرتب شده اند. لایه اول اطلاعات ورودی خام را دریافت می کند – مشابه اعصاب بینایی در پردازش بینایی انسان. هر ردیف متوالی به جای ورودی خام، خروجی را از لایه قبلی دریافت می کند – به همان روشی که نورون های دورتر از عصب بینایی سیگنال هایی را از آنهایی که به آن نزدیک تر هستند دریافت می کنند. آخرین لایه خروجی سیستم را تولید می کند.
هر گره پردازشی حوزه کوچکی از دانش خود را دارد، از جمله آنچه دیده است و قوانینی که در ابتدا با آن برنامه ریزی شده یا برای خودش توسعه داده شده است. لایه ها بسیار به هم مرتبط هستند، به این معنی که هر گره در ردیف n به گره های زیادی در ردیف n-1 – ورودی های آن – و در ردیف n+1، که داده های ورودی را برای آن گره ها ارائه می دهد، متصل می شود. ممکن است یک یا چند گره در لایه خروجی وجود داشته باشد که پاسخی که تولید می کند را می توان خواند.
شبکههای عصبی مصنوعی به دلیل تطبیقپذیر بودن قابل توجه هستند، به این معنی که با یادگیری از آموزش اولیه خود را اصلاح میکنند و اجراهای بعدی اطلاعات بیشتری در مورد جهان ارائه میدهند. ابتدایی ترین مدل یادگیری بر وزن دادن به جریان های ورودی متمرکز است، به این ترتیب که هر گره اهمیت داده های ورودی را از هر یک از پیشینیان خود وزن می کند. ورودی هایی که به دریافت پاسخ های درست کمک می کنند، وزن بیشتری دارند.
نحوه یادگیری شبکه های عصبی
به طور معمول، یک ANN در ابتدا آموزش داده می شود یا مقادیر زیادی از داده را تغذیه می کند. آموزش شامل ارائه ورودی و گفتن به شبکه است که خروجی باید چه باشد. برای مثال، برای ساختن شبکهای که چهره بازیگران را شناسایی میکند، آموزش اولیه ممکن است مجموعهای از تصاویر شامل بازیگران، غیربازیگران، ماسکها، مجسمهها و چهرههای حیوانات باشد. هر ورودی با شناسایی منطبق، مانند نام بازیگران یا اطلاعات “نه بازیگر” یا “غیر انسان” همراه است. ارائه پاسخها به مدل اجازه میدهد وزنهای داخلی خود را تنظیم کند تا یاد بگیرد چگونه کار خود را بهتر انجام دهد.
برای مثال، اگر گرههای دیوید، دایان و داکوتا به گره ارنی بگویند که تصویر ورودی فعلی تصویری از برد پیت است، اما گره دورانگو بگوید که بتی وایت است، و برنامه تمرین تأیید کند که پیت است، ارنی وزنی را که به آن اختصاص میدهد کاهش میدهد. ورودی دورانگو و افزایش وزنی که به دیوید، دایان و داکوتا می دهد.
در تعریف قوانین و تصمیم گیری – یعنی تصمیم هر گره در مورد اینکه چه چیزی را بر اساس ورودی های لایه قبلی به لایه بعدی ارسال کند – شبکه های عصبی از چندین اصل استفاده می کنند. اینها شامل آموزش مبتنی بر گرادیان، منطق فازی، الگوریتمهای ژنتیک و روشهای بیزی است. ممکن است قوانین اساسی در مورد روابط شی در داده های مدل سازی شده به آنها داده شود.
به عنوان مثال، ممکن است به یک سیستم تشخیص چهره دستور داده شود، “ابروها بالای چشم ها هستند” یا “سبیل ها در زیر بینی هستند. سبیل ها در بالا و/یا کنار دهان هستند.” قوانین پیش بارگذاری می تواند آموزش را سریعتر کند و مدل را زودتر قدرتمندتر کند. اما همچنین مفروضاتی در مورد ماهیت مشکل ایجاد می کند، که ممکن است ثابت شود که یا نامربوط و مفید یا نادرست و معکوس هستند، و تصمیم گیری در مورد قوانین، در صورت وجود، بسیار مهم است.
علاوه بر این، مفروضاتی که افراد هنگام آموزش الگوریتمها مطرح میکنند باعث میشود شبکههای عصبی سوگیریهای فرهنگی را تقویت کنند. مجموعه دادههای مغرضانه یک چالش مداوم در سیستمهای آموزشی است که با تشخیص الگوهای موجود در دادهها، پاسخها را به تنهایی پیدا میکنند. اگر دادههای تغذیهکننده الگوریتم خنثی نباشد – و تقریباً هیچ دادهای خنثی نباشد – ماشین سوگیری را منتشر میکند.
انواع شبکه های عصبی
گاهی اوقات شبکه های عصبی بر حسب عمق توصیف می شوند، از جمله اینکه چند لایه بین ورودی و خروجی دارند یا به اصطلاح لایه های پنهان مدل. به همین دلیل است که اصطلاح شبکه عصبی تقریباً مترادف با یادگیری عمیق استفاده می شود. همچنین می توان آنها را با تعداد گره های پنهانی که مدل دارد یا بر حسب تعداد ورودی و خروجی هر گره توصیف کرد. تغییرات در طراحی شبکه عصبی کلاسیک به اشکال مختلف انتشار اطلاعات به سمت جلو و عقب در بین لایهها اجازه میدهد.
انواع خاصی از شبکه های عصبی مصنوعی عبارتند از:
- شبکه های عصبی پیشخور: یکی از ساده ترین انواع شبکه های عصبی. آنها اطلاعات را در یک جهت، از طریق گره های ورودی مختلف، تا زمانی که به گره خروجی می رسد، منتقل می کنند. شبکه ممکن است دارای لایههای گره پنهان باشد یا نداشته باشد که عملکرد آنها را قابل تفسیرتر میکند. برای پردازش مقادیر زیادی نویز آماده شده است. این نوع از مدل محاسباتی ANN در فناوری هایی مانند تشخیص چهره و بینایی کامپیوتری استفاده می شود.
- شبکه های عصبی مکرر: پیچیده تر آنها خروجی گره های پردازش را ذخیره می کنند و نتیجه را به مدل برمی گردانند. به این ترتیب گفته می شود که مدل یاد می گیرد تا نتیجه یک لایه را پیش بینی کند. هر گره در مدل RNN به عنوان یک سلول حافظه عمل می کند و محاسبات و اجرای عملیات را ادامه می دهد. این شبکه عصبی با همان انتشار جلویی مانند یک شبکه پیشخور شروع میشود، اما سپس تمام اطلاعات پردازش شده را به خاطر میآورد تا در آینده از آنها استفاده مجدد کند. اگر پیشبینی شبکه نادرست باشد، سیستم خودآموخته میشود و به کار در جهت پیشبینی صحیح در طول انتشار پسانداز ادامه میدهد. این نوع ANN اغلب در تبدیل متن به گفتار استفاده می شود.
- شبکه های عصبی کانولوشنال: یکی از محبوب ترین مدل های مورد استفاده امروزه. این مدل محاسباتی شبکه عصبی از تنوعی از پرسپترون های چندلایه استفاده می کند و شامل یک یا چند لایه کانولوشن است که می توانند به طور کامل به هم متصل یا ادغام شوند. این لایههای کانولوشن نقشههای مشخصهای را ایجاد میکنند که ناحیهای از تصویر را ثبت میکنند که در نهایت به مستطیل شکسته شده و برای غیرخطی ارسال میشود. در بسیاری از پیشرفته ترین کاربردهای هوش مصنوعی از جمله تشخیص چهره، دیجیتالی کردن متن و پردازش زبان طبیعی استفاده شده است. کاربردهای دیگر عبارتند از: تشخیص پارافراسی، پردازش سیگنال و طبقه بندی تصویر.
- شبکههای عصبی دکانولوشنال: از فرآیند مدل CNN معکوس استفاده میکنند. هدف آنها یافتن ویژگیها یا سیگنالهای گمشدهای هستند که ممکن است در ابتدا برای وظیفه سیستم CNN بیاهمیت در نظر گرفته شوند. از این مدل شبکه می توان در سنتز و تحلیل تصویر استفاده کرد.
- شبکه های عصبی مدولار: شامل چندین شبکه عصبی است که به طور جداگانه از یکدیگر کار می کنند. شبکه ها در طول فرآیند محاسبات با یکدیگر ارتباط برقرار نمی کنند یا با فعالیت های یکدیگر تداخل نمی کنند. در نتیجه، فرآیندهای محاسباتی پیچیده یا بزرگ را می توان با کارایی بیشتری انجام داد.
مزایای شبکه های عصبی مصنوعی
مزایای شبکه های عصبی مصنوعی عبارتند از:
- توانایی های پردازش موازی به این معنی است که شبکه می تواند بیش از یک کار را در یک زمان انجام دهد.
- اطلاعات در کل شبکه ذخیره می شود، نه فقط یک پایگاه داده.
- توانایی یادگیری و مدلسازی روابط غیرخطی و پیچیده به مدلسازی روابط واقعی بین ورودی و خروجی کمک میکند.
- تحمل خطا به این معنی است که خرابی یک یا چند سلول شبکه عصبی مصنوعی تولید خروجی را متوقف نخواهد کرد.
- فساد تدریجی به این معنی است که شبکه به تدریج در طول زمان تنزل پیدا می کند، به جای اینکه مشکلی بلافاصله شبکه را از بین ببرد.
- توانایی تولید خروجی با دانش ناقص با از دست دادن عملکرد بر اساس اهمیت اطلاعات از دست رفته.
- هیچ محدودیتی روی متغیرهای ورودی اعمال نمی شود، مانند نحوه توزیع آنها.
- یادگیری ماشینی به این معنی است که ANN می تواند از رویدادها درس بگیرد و بر اساس مشاهدات تصمیم گیری کند.
- توانایی یادگیری روابط پنهان در داده ها بدون فرمان دادن به هیچ رابطه ثابت به این معنی است که یک ANN می تواند داده های بسیار فرار و واریانس غیر ثابت را بهتر مدل کند.
- توانایی تعمیم و استنتاج روابط نامرئی روی دادههای دیده نشده به این معنی است که شبکههای عصبی مصنوعی میتوانند خروجی دادههای دیده نشده را پیشبینی کنند.
معایب شبکه های عصبی مصنوعی
معایب ANN ها عبارتند از:
- فقدان قوانین برای تعیین ساختار شبکه مناسب به این معنی است که معماری شبکه عصبی مصنوعی مناسب تنها از طریق آزمون و خطا و تجربه یافت می شود.
- نیاز به پردازنده هایی با توانایی پردازش موازی، شبکه های عصبی را به سخت افزار وابسته می کند.
- شبکه با اطلاعات عددی کار می کند، بنابراین تمام مشکلات باید قبل از ارائه به ANN به مقادیر عددی ترجمه شوند.
- فقدان توضیح در پشت راه حل های کاوشگر یکی از بزرگترین معایب شبکه های عصبی مصنوعی است. ناتوانی در توضیح چرایی یا چگونگی پشت راه حل باعث عدم اعتماد به شبکه می شود.
کاربردهای شبکه های عصبی مصنوعی
تشخیص تصویر یکی از اولین حوزههایی بود که شبکههای عصبی با موفقیت در آن به کار رفتند، اما استفاده از فناوری به حوزههای بیشتری گسترش یافته است، از جمله:
- چت ربات ها
- پردازش زبان طبیعی، ترجمه و تولید زبان
- پیش بینی بازار سهام
- برنامه ریزی و بهینه سازی مسیر راننده تحویل
- کشف و توسعه دارو
اینها تنها چند حوزه خاص هستند که امروزه شبکه های عصبی در آنها اعمال می شوند. کاربردهای اولیه شامل هر فرآیندی است که بر اساس قوانین یا الگوهای دقیق عمل می کند و دارای مقادیر زیادی داده است. اگر دادههای درگیر بیش از حد بزرگ باشد که انسان نتواند آن را در مدت زمان معقولی درک کند، این فرآیند احتمالاً کاندیدای اصلی برای اتوماسیون از طریق شبکههای عصبی مصنوعی است.