بایگانی برچسب برای: عملکرد بهنگام

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

یک شبکه عصبی مصنوعی (Artificial Neural Network – ANN) ایده ای برای پردازش اطلاعات است که از سیستم عصبی زیستی الهام گرفته و مانند مغز به پردازش اطلاعات می‌پردازد. عنصر کلیدی این ایده، ساختار جدید سیستم پردازش اطلاعات است. این سیستم از شمار زیادی عناصر پردازشی فوق العاده بهم پیوسته به نام نورون‌ها (neurons) تشکیل شده که برای حل یک مسئله با هم هماهنگ عمل می‌کنند.

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

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

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

ساختار شبکه عصبی

انسان‌ها از زمان‌های بسیار دور سعی بر آن داشتند که بیوفیزیولوژی مغز را دریابند زیرا که همواره مسئله هوشمندی انسان و قابلیت یادگیری، تعمیم، خلاقیت، انعطاف پذیری و پردازش موازی در مغز برای بشر جالب بوده و بکارگیری این قابلیت‌ها در ماشین‌ها بسیار مطلوب می‌نمود. روش‌های الگوریتمیک برای پیاده سازی این خصایص در ماشین‌ها مناسب نمی‌باشند، در نتیجه می‌بایست روش‌هایی مبتنی بر همان مدل‌های بیولوژیکی ابداع شوند.

شبکه عصبی-05

 

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

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

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

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

 

شبکه عصبی-02

 

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

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

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

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

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

شبکه عصبی-ترجمه

 

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

چنین وضعیتی در تشخیص گفتار نیز به وجود آمد. پس از افزودن یادگیری با شبکه های عصبی در Google Voice نرخ خطای این برنامه تا ۴۹% کاهش یافت. البته این قابلیت هیچوقت بدون نقص نخواهد بود، اما به مرور زمان شاهد پیشرفت آن هستیم.

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

شبکه های عصبی در مقابل کامپیوتر های معمولی

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

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

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

امتیاز شبکه عصبی در آن است که چگونگی حل مسئله را خودش کشف می‌کند!

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

 

شبکه عصبی-03

مزیت‌های شبکه عصبی

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

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

مزیت‌های دیگر شبکه های عصبی

  • یادگیری انطباق پذیر (Adaptive Learning)

یادگیری انطباق پذیر، قابلیت یادگیری و نحوه انجام وظایف بر پایه اطلاعات داده شده برای تمرین و تجربه‌های مقدماتی.

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

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

خرابی جزئی یک شبکه منجر به تنزل کارایی متناظر با آن می‌شود، اگر چه تعدادی از قابلیت‌های شبکه حتی با خسارت بزرگی هم به کار خود ادامه می‌دهند.

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

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

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

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

 

تفاوت شبکه هاِی پس خور با شبکه‌های پیش خور در آن است که در شبکه‌های برگشتی حداقل یک سیگنال برگشتی از یک نرون به همان نرون یا نرون‌های همان لایه یا نرون‌های لایه‌های قبل وجود دارد و اگر نرونی دارای فیدبک باشد بدین مفهوم است که خروجی نرون در لحظه حال نه تنها به ورودی در آن لحظه بلکه به مقدار خروجی خود نرون در لحظه ی گذشته نیز وابسته است.

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

 

 یادگیری در شبکه‌ های عصبی

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

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

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

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

ساختار شبکه های عصبی مصنوعی به زبان ساده (Artificial Neural Network)

 

ساختار شبکه‌های عصبی مصنوعی به زبان ساده (Artificial Neural Network)

 

شبکه عصبی مصنوعی روشی عملی برای یادگیری توابع گوناگون نظیر توابع با مقادیر حقیقی، توابع با مقادیر گسسته و توابع با مقادیر برداری می‌باشد.

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

گمان می‌رود که مغز انسان از تعداد ‌1011 نرون تشکیل شده باشد که هر نرون با تقریبا 104 نرون دیگر در ارتباط است. سرعت سوئیچنگ نرونها در حدود 310 ثانیه است که در مقایسه با کامپیوترها 1010 ثانیه  بسیار ناچیز می‌نماید. با این وجود آدمی قادر است در 0.1 ثانیه  تصویر یک انسان را بازشناسائی نماید. ولی برای کامپیتر دقایقی طول می کشد که این بازشناسی انجام شود.

شاید بد نباشد ابتدا به این سوال فکر کنید، چرا با اینکه سرعت سوئیچنگ نرونهای کامپیوتر از مغز انسان بیشتر است ولی انسان‌ها سریعتر چهره یک شخص را به یاد می‌آورند؟

ساختار شبکه عصبی

 

 

هر دو تصویر بالا را مشاهده کنید. چه شباهت‌هایی می‌بینید؟

همانطور که ملاحظه می کنید، تصویر اول یک نرون طبیعی بیولوژیکی است. اطلاعات از طریق ورودی یا همان دندریت وارد نرون می شوند، همان ورودی‌ها در تصویر دوم با مقادیر (x1,…….,xm) قابل مشاهده هستند. در مدل شبکه عصبی مصنوعی به هر ورودی یک وزن (w1,…….,wm) اختصاص می دهیم. این وزن‌ها در واقع اهمیت ورودی‌ها برای ما هستند، یعنی هر چه وزن بیشتر باشد، ورودی برای آموزش شبکه مهمتر است. سپس تمامی ورودی‌ها با هم جمع (Σ) شده و به صورت یک‌لایه به آکسون وارد می شوند. در مرحله بعد Activation Function را بر روی داده‌ها اعمال می‌کنیم.

Activation Function در واقع نسبت به نیاز مسئله و نوع شبکه عصبی ما (در آموزش های بعدی به آن می پردازیم) تعریف می شود. این function شامل یک فرمول ریاضی برای بروزرسانی وزن‌ها در شبکه است.

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

منبع

شبکه های عصبی مصنوعی چیست؟ قسمت 1
شبکه های عصبی مصنوعی چیست؟ قسمت 2
شبکه های عصبی مصنوعی چیست؟ قسمت 3
شبکه های عصبی مصنوعی چیست؟ قسمت 4

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

شبکه های عصبی مصنوعی یا شبکه های عصبی صناعی (Artificial Neural Network – ANN) یا به زبان ساده‌تر شبکه های عصبی سیستم‌ها و روش‌های محاسباتی نوین برای یادگیری ماشینی، نمایش دانش و در انتها اعمال دانش به دست آمده در جهت بیش‌بینی پاسخ‌های خروجی از سامانه‌های پیچیده هستند. ایدهٔ اصلی این گونه شبکه‌ها تا حدودی الهام‌گرفته از شیوهٔ کارکردسیستم عصبی زیستی برای پردازش داده‌ها و اطلاعات به منظور یادگیری و ایجاد دانش قرار دارد. عنصر کلیدی این ایده، ایجاد ساختارهایی جدید برای سامانهٔ پردازش اطلاعات است.

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

تعریف‌ها

توافق دقیقی بر تعریف شبکه عصبی در میان محققان وجود ندارد؛ اما اغلب آنها موافقند که شبکه عصبی شامل شبکه‌ای از عناصر پردازش ساده (نورونها) است، که می‌تواند رفتار پیچیده کلی تعیین شده‌ای از ارتباط بین عناصر پردازش و پارامترهای عنصر را نمایش دهد. منبع اصلی و الهام بخش برای این تکنیک، از آزمایش سیستم مرکزی عصبی و نورونها (آکسون‌ها، شاخه‌های متعدد سلولهای عصبی و محلهای تماس دو عصب) نشأت گرفته‌است، که یکی از قابل توجه‌ترین عناصر پردازش اطلاعات سیستم عصبی را تشکیل می‌دهد. در یک مدل شبکه عصبی، گره‌های ساده (بطور گسترده «نورون»، «نئورونها»، «PE «ها (» عناصر پردازش «) یا» واحدها «) برای تشکیل شبکه‌ای از گره‌ها، به هم متصل شده‌اند—به همین دلیل به آن، اصطلاح» شبکه های عصبی» اطلاق می‌شود. در حالی که یک شبکه عصبی نباید به خودی خود سازگارپذیر باشد، استفاده عملی از آن بواسطه الگوریتمهایی امکان‌پذیر است، که جهت تغییر وزن ارتباطات در شبکه (به منظور تولید سیگنال موردنظر) طراحی شده باشد.

کارکرد

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

این شبکه‌ها برای تخمین و تقریب، کارایی بسیار بالایی از خود نشان داده‌اند. گستره کاربرد این مدل‌های ریاضی بر گرفته از عملکرد مغز انسان، بسیار وسیع می‌باشد که به عنوان چند نمونه کوچک می‌توان استفاده از این ابزار ریاضی در پردازش سیگنال‌های بیولوییکی، مخابراتی و الکترونیکی تا کمک در نجوم و فضا نوردی را نام برد.

اگر یک شبکه را هم‌ارز با یک گراف بدانیم، فرایند آموزش شبکه تعیین نمودن وزن هر یال و base اولیهٔ خواهد بود.

تاریخچه شبکه های عصبی مصنوعی

از قرن نوزدهم به طور همزمان اما جداگانه سویی نروفیزیولوزیست‌ها سعی کردند سیستم یادگیری و تجزیه و تحلیل مغز را کشف کنند، و از سوی دیگر ریاضیدانان تلاش کردند تا مدل ریاضی بسازند، که قابلیت فراگیری و تجزیه و تحلیل عمومی مسائل را دارا باشد. اولین کوشش‌ها در شبیه‌سازی با استفاده از یک مدل منطقی توسط مک کلوک و والتر پیتز انجام شد که امروزه بلوک اصلی سازنده اکثر شبکه های عصبی مصنوعی است. این مدل فرضیه‌هایی در مورد عملکرد نورون‌ها ارائه می‌کند. عملکرد این مدل مبتنی بر جمع ورودی‌ها و ایجاد خروجی است. چنانچه حاصل جمع ورودی‌ها از مقدار آستانه بیشتر باشد اصطلاحاً نورون برانگیخته می‌شود. نتیجه این مدل اجرای توابع ساده مثل AND و OR بود.

نه تنها نروفیزیولوژیست‌ها بلکه روان‌شناسان و مهندسان نیز در پیشرفت شبیه‌سازی شبکه های عصبی تأثیر داشتند. در سال ۱۹۵۸ شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه می‌باشد، به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده‌است. این سیستم می‌تواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سیستم دیگر مدل خطی تطبیقی نورون می‌باشد که در سال ۱۹۶۰ توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکه های عصبی به کار گرفته شده در مسائل واقعی بودند. Adalaline یک دستگاه الکترونیکی بود که از اجزای ساده‌ای تشکیل شده بود، روشی که برای آموزش استفاده می‌شد با پرسپترون فرق داشت.

در سال ۱۹۶۹ میسکی و پاپرت کتابی نوشتند که محدودیت‌های سیستم‌های تک لایه و چند لایه پرسپترون را تشریح کردند. نتیجه این کتاب پیش داوری و قطع سرمایه‌گذاری برای تحقیقات در زمینه شبیه‌سازی شبکه های عصبی بود. آنها با طرح اینکه طرح پرسپترون قادر به حل هیچ مسئله جالبی نمی‌باشد، تحقیقات در این زمینه را برای مدت چندین سال متوقف کردند.

با وجود اینکه اشتیاق عمومی و سرمایه‌گذاری‌های موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشین‌هایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکه‌ای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکه‌های ART را بنانهادند که با مدل‌های طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیک‌هایی برای یادگیری ایجاد کردند. ورباس در سال ۱۹۷۴ شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.

پیشرفت‌هایی که در سال ۱۹۷۰ تا ۱۹۸۰ بدست آمد برای جلب توجه به شبکه های عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مسئله دخالت داشتند، از جمله کتاب‌ها و کنفرانس‌های وسیعی که برای مردم در رشته‌های متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی ANN ایجاد شده‌است.

در ایران

از جمله کارهای انجام شده در ایران که بعد از سال ۲۰۰۰ به طور جدی انجام گرفته می‌توان به تحلیل‌های دقیق انجام شده روی مواد پلیمری، سیکل‌های ترمودینامیکی، مجراهای عبور سیال و… اشاره کرد.

دیگر نقاط دنیا

فیس‌بوک از یک شبکه عصبی مصنوعی ۹ لایه با بیش از ۱۲۰میلیون ارتباط وزنی، برای شناسایی و تشخیص چهره در طرح عمق‌صورت (به انگلیسی:DeepFace) استفاده میکند. ادعا میشود دقت شناسایی چهره در این سامانه ۹۷٪ است که در مقایسه با سامانه نسل‌بعدی‌شناسایی (به انگلیسی: Next Generation Identification) مورد استفاده اداره تحقیقات فدرال آمریکا که مدعی است تا ۸۵٪ دقت دارد جهش بلندی در جمع‌اوری و تحلیل اطلاعات شخصی محسوب میشود. قابل ذکر است فیس‌بوک بدلیل قوانین محافظت از اطلاعات شخصی در اتحادیه اروپا از این سامانه در این کشورها استفاده نمیکند.

 


معرفی شبکه عصبی مصنوعی

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

 

در این حافظه یا شبکهٔ عصبی نورونها دارای دو حالت فعال (روشن یا ۱) و غیرفعال (خاموش یا ۰) اند و هر یال (سیناپس یا ارتباط بین گره‌ها) دارای یک وزن می‌باشد. یال‌های با وزن مثبت، موجب تحریک یا فعال کردن گره غیرفعال بعدی می‌شوند و یال‌های با وزن منفی، گره متصل بعدی را غیرفعال یا مهار (در صورتی که فعال بوده باشد) می‌کنند.

 

تحقیقات اخیر

در تاریخ Dec 17, 2009 ابرکامپیوتر شرکت IBM در آمریکا توانست در حدود billion 1 (میلیارد) نورون را با حدود 10 trillion سیناپس مصنوعی شبیه‌سازی کند که نشان دهنده این واقعیت هست که نورون‌های مصنوعی به سیستم‌های قدرتمندی برای اجرا نیاز دارند و برای شبیه‌سازی مغز انسان احتمالاً به کامپیوتر کوانتومی نیاز خواهد بود. همچنین با دانستن این موضوع که مورچه ۲۵۰٬۰۰۰ نورون و زنبور در حدود ۹۶۰٬۰۰۰ و گربه ۷۶۰٬۰۰۰٬۰۰۰ نورون و در حدود 1013 سیناپس دارد می‌شود نتیجه گرفت که با ابرکاپیوترهای کنونی تا حدودی بتوان این موجودات را شبیه‌سازی کرد. (لیست موجودات مختلف بر اساس تعداد نورون‌ها و سیناپس‌ها)

 

در تاریخ Dec 9, 2014 شرکت IBM از تراشه SyNAPSE خود رونمایی کرد. این چیپ که با سرمایه‌گذاری DARPA (سازمان پروژه‌های تحقیقاتی پیشرفتهٔ دفاعی ایالت متحده) به بهره‌برداری رسیده، به گونه‌ای طراحی شده که فعالیت‌های مغز انسان را شبیه‌سازی کند و به طور کلی از چارچوب منطق بولین و باینری خارج شود. این تراشه متشکل از ۱ میلیون نورون مجازی است که با استفاده از ۲۵۶ میلیون سیناپس مجازی به یکدیگر متصل شده‌اند. سیناپس بزرگ‌ترین تراشه‌ای است که شرکت IBM تاکنون تولید کرده است، چراکه در آن ۵٫۴ میلیارد ترانزیستور استفاده شده است.

 

همچنین مجموعهٔ ترانزیستورهای مورد استفاده متشکل از ۴٫۰۹۶ هستهٔ neuroSynaptic است که روی تراشه قرار گرفته‌اند. مصرف این تراشه تنها ۷۰ میلی‌وات mW است که در مقایسه با تراشه‌های کنونی بسیار کمتر است. List of CPU power dissipation figures از نظر مقیاس، تراشهٔ سیناپس برابر با مغز یک زنبور عسل است و تعداد نئورون‌ها و سیناپس‌های مورد استفاده با آن برابری می‌کند، با این وجود این تراشه بسیار ضعیف‌تر از مغز انسان‌ها است. مغز هر انسان از حدود ۸۶ میلیارد نورون و ۱۰۰ تریلیوین سیناپس تشکیل شده است. البته تیم توسعهٔ SyNAPSE نشان داده که می‌توان با اتصال تراشه‌های سیناپس به یکدیگر، تراشهٔ بزرگ‌تر و قوی‌تری ساخت.

 

در حال حاضر IBM موفق شده یک بورد قابل برنامه‌ریزی و کارآمد با استفاده از ۱۶ عدد چیپ SyNAPSE ایجاد نماید که همگی در هماهنگی کامل با یکدیگر فعالیت می‌کنند. این بورد نمایانگر قدرت ۱۶ میلیون نورون است که بنا بر گفتهٔ محققان این پروژه، در پردازش سنتی با استفاده از تعداد زیادی رک (مکان قرارگیری چندین کامپیوتر پر قدرت بزرگ) و مجموعه‌های عظیم کامپیوتری قابل دستیابی بود؛ و با وجود مجتمع نمودن ۱۶ چیپ در یک سیستم، باز هم با مصرف نیروی به شدت پایینی روبرو هستیم که در نتیجهٔ آن حرارت بسیار پایین‌تری نیز تولید می‌شود. در حقیقت چیپ SyNAPSE جدید آنچنان انقلابی بوده و دنیای پردازش را از نگرش دیگری نمایان می‌سازد که IBM مجبور شده برای همراهی با توسعهٔ آن به ایجاد یک زبان برنامه‌نویسی جدید بپردازد و یک برنامهٔ آموزشی گستردهٔ اطلاع‌رسانی تحت نام دانشگاه SyNAPSE راه‌اندازی کند.

 

در تاریخ March 16, 2016 شرکت Google بخش DeepMind توانست توسط هوش مصنوعی خود قهرمان جهان را در بازی GO (شطرنج چینی با قدمتی بیش از ۲۵۰۰ سال) با نتیجه ۴ به ۱ شکست دهند که این دستاورد بزرگی برای هوش مصنوعی بود. گوگل در این هوش مصنوعی از تکنولوژی Deep Learning و short-term memory بهره برده است و این سیستم به نوعی مشابهTuring Machine هست اما به صورت end-to-end دارای تفاوت‌های قابل تشخیص می‌باشد و این تکنولوژی‌ها به اون اجازه داده است که با gradient descent به صورت مؤثری قابل تعلیم باشد.

در DeepMind محققان گوگل مجموعه‌ای از حرکت‌های بهترین بازکنان گو را که شامل بیش از ۳۰ میلیون حرکت است، جمع‌آوری کرده و سیستم هوش مصنوعی مبتنی بر یادگیری عمیق خود را با استفاده از این حرکات آموزش داده‌اند تا از این طریق آلفاگو قادر باشد به تنهایی و براساس تصمیمات خود به بازی بپردازد. همچنین دانشمندان برای بهبود هر چه بیشتر این سیستم راه‌حل تقابل هوش مصنوعی توسعه یافته با خودش را در پیش گرفتند؛ با استفاده از این روش، دانشمندان موفق شدند تا حرکات جدیدی را نیز ثبت کنند و با استفاده از این حرکات آموزش هوش مصنوعی را وارد مرحلهٔ جدیدتری نمایند. چنین سیستمی قادر شده تا بهترین بازیکن اروپا و جهان را شکست دهد.

بزرگ‌ترین نتیجهٔ توسعهٔ آلفاگو، عدم توسعهٔ این سیستم با قوانین از پیش تعیین شده است. در عوض این سیستم از روش‌های مبتنی بر یادگیری ماشین و شبکه عصبی توسعه یافته و تکنیک‌های برد در بازی گو را به خوبی یادگرفته و حتی می‌تواند تکنیک‌های جدیدی را ایجاد و در بازی اعمال کند. کریس نیکولسون، مؤسس استارت آپ Skymind که در زمینهٔ تکنولوژی‌های یادگیری عمیق فعالیت می‌کند، در این خصوص این چنین اظهار نظر کرده است: ” از سیستم‌های مبتنی بر شبکهٔ عصبی نظیر آلفاگو می‌توان در هر مشکل و مسئله‌ای که تعیین استراتژی برای رسیدن به موفقیت اهمیت دارد، استفاده کرد. کاربردهای این فناوری می‌تواند از اقتصاد، علم یا جنگ گسترده باشد. “

اهمیت برد آلفاگو :در ابتدای سال ۲۰۱۴ میلادی، برنامهٔ هوش مصنوعی Coulom که Crazystone نام داشت موفق شد در برابر نوریموتو یودا، بازیکن قهار این رشتهٔ ورزشی پیروز شود؛ اما موضوعی که باید در این پیروزی اشاره کرد، انجام ۴ حرکت پی در پی ابتدایی در این رقابت توسط برنامهٔ هوش مصنوعی توسعه یافته بود که برتری بزرگی در بازی گو به شمار می‌رود. در آن زمان Coulom پیش‌بینی کرده بود که برای غلبه بر انسان، نیاز به یک بازهٔ زمانی یک دهه‌ای است تا ماشین‌ها بتوانند پیروز رقابت با انسان‌ها در بازی GO باشند.

چالش اصلی در رقابت با بهترین بازیکن‌های گو، در طبیعت این بازی نهفته است. حتی بهترین ابررایانه‌های توسعه یافته نیز برای آنالیز و پیش‌بینی نتیجهٔ حرکت‌های قابل انجام از نظر قدرت پردازشی دچار تزلرل شده و نمی‌توانند قدرت پردازشی مورد نیاز را تأمین کنند. در واقع نیروی پردازشی این رایانه‌ها مناسب نبوده و در نتیجه زمان درازی را برای ارائهٔ نتیجهٔ قابل قبول مورد نیاز است. زمانی که ابررایانهٔ موسوم به Deep Blue که توسط IBM توسعه یافته بود، موفق شد تا در سال ۱۹۹۷، گری کاسپاروف، قهرمان شطرنج جهان را شکست دهد، بسیاری به قدرت این ابررایانه پی بردند؛ چراکه این ابررایانه با قدرت زیادی کاسپاروف را شکست داد. علت پیروزی قاطع این Deep Blue، قدرت بالای این ابررایانه در کنار قدرت تحلیل و نتیجه‌گیری از هر حرکت احتمالی ممکن در بازی بود که تقریباً هیچ انسانی توانایی انجام آن را ندارد.

اما چنین پیش‌بینی‌هایی در بازی GO ممکن نیست. براساس اطلاعات ارائه شده در بازی شطرنج که در صفحه‌ای ۸ در ۸ انجام می‌شود، در هر دور، بصورت میانگین می‌توان ۳۵ حرکت را انجام داد، اما در بازی گو که بین دو نفر در تخته‌ای به بزرگی ۱۹ در ۱۹ خانه انجام می‌شود، در هر دور بصورت میانگین می‌توان بیش از ۲۵۰ حرکت انجام داد. هر یک از این ۲۵۰ حرکت احتمالی نیز در ادامه ۲۵۰ احتمال دیگر را در پی دارند؛ که می شه نتیجه گرفت که در بازی گو، به اندازه‌ای احتمال حرکات گسترده است که تعداد آن از اتم‌های موجود در جهان هستی نیز بیشتر است.

تلاش‌های پیشین: در سال ۲۰۱۴ محققان در DeepMind، دانشگاه ادینبورگ و facebook امیدوار بودند تا با استفاده از شبکه های عصبی، سیستم‌هایی مبتنی بر شبکه های عصبی توسعه دهند که قادر باشد تا با نگاه کردن به تختهٔ بازی، همچون انسان‌ها به بازی بپردازند. محققان در فیس‌بوک موفق شده‌اند تا با کنار هم قراردادن تکنیک درخت مونت کارلو و یادگیری عمیق، شماری از بازیکنان را در بازی گو شکست دهد. البته سیستم فیس‌بوک قادر به برد در برابر CrazyStone و سایر بازیکنان شناخته شدهٔ این رشتهٔ ورزشی نشد.

سخت‌افزار مورد نیاز سیستم یادگیری عمیق دیپ مایند: براساس اطلاعات ارائه شده، سیستم DeepMind قادر است روی رایانه‌ای با چند پردازندهٔ گرافیکی نیز به خوبی کار کند؛ اما در مسابقه‌ای که آلفاگو در برابر فان هوی برگزار کرد، این سیستم مبتنی بر شبکهٔ عصبی از وجود شبکه‌های از رایانه‌ها بهره می‌برد که شامل بیش از ۱۷۰ پردازندهٔ گرافیکی Nvidia و ۱٬۲۰۰ پردازنده بود.

در تاریخ October 4, 2016 شرکت Google از نوعی رباتیک ابری رونمایی کرد که در ان شبکه های عصبی روبات‌ها قادر به به اشتراک گذاشتن یادگیری هایشان با یکدیگر بودند؛ که این عمل باعث کاهش زمان مورد نیاز برای یادگیری مهارت‌ها توسط ربات‌ها می‌شود و به جای اینکه هر ربات به شکل جداگانه عمل کند، ربات‌ها تجربه‌های خود را به صورت جمعی در اختیار یکدیگر قرار می‌دهند. برای مثال یک ربات به ربات دیگر آموزش می‌دهد که چطور کار ساده‌ای مانند در باز کردن را انجام دهد یا جسمی را جابه‌جا کند و در فواصل زمانی معین، ربات‌ها آنچه را که یادگرفته‌اند به سرور آپلود می‌کنند. ضمن این که آخرین نسخه از یادگیری آن موضوع را هم دانلود می‌کنند تا به این وسیله هر ربات به تصویر جامع‌تری از تجربه‌های فردی خود دست پیدا کند.

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

 

شبکه های عصبی مصنوعی چیست؟ قسمت 1
شبکه های عصبی مصنوعی چیست؟ قسمت 2
شبکه های عصبی مصنوعی چیست؟ قسمت 3
شبکه های عصبی مصنوعی چیست؟ قسمت 4