در سال 1965 توسط دکتر لطفی زاده معرفی شد.
منطق فازی در واقع میگه که یه گزاره لزومی نداری یا درست باشه یا غلط (صفر باشه یا یک) ممکنه مثلا یه گزاره 0.7 درست باشه!
درکش یه مقدار در ابتدا سخته! بگذارید یه مثال بزنم، شما از دوستتون می پرسید بنظرت حسین بلنده یا نه؟ دوستتون جواب میده ایییی، بلند نیست اما کوتاه هم نمیشه بهش گفت! اما در منطق باینری (یا منطقی که اکثر ما باهاش تو کامپیوتر آشنا هستیم) هیچ وقت برای یه گزاره همچین جوابی نمیده.
توی منطق باینری ما میگیم اگه قد مساوی یا بلند تر از 175 بود بگو بلند اگه کوتاه تر بود بگو کوتاه! اما آدم اینطوری نیست منطقش مثل مثال قبلی که زدم.
حالا این سوال پیش میاد که ما در حال حاضر از همین منطق باینری جواب های خیلی خوبی میگیریم، فازی به چه دردی میخوره؟
برای جواب به این سوال یه مثال دیگه میزنم! مثلا یه شرکت می خواد یه کارخونه بزنه در فاصله ی ماکزیمم 200 کیلومتری تهران، که به تولید کننده ی یه مدل مواد اولیه نزدیک تر از 10 کیلومتر باشه و قیمت زمین هم اونجا هر چی کمتر باشه بهتر.اول یه بار با منطق باینری میریم پیش، اولین نمونه فاصلش با تهران 190 هست و با مواد اولیه هم 9 کیلومتر فاصله داره و قیمت زمین هم اونجا 2000 واحد هست، چندین تا نمونه دیگه هم برسی میشن که دو شرط اول رو ندارن، در آخر هم یه نمونه پیدا میشه که فاصلش تا تهران 201 کیلومتر هست و فاصلش با مواد اولیه 3 کیلومتره و قیمتش هم 1000 واحده! طبق منطق باینری این نمونه رد میشه چون فاصلش 201 هست و بیشتر از 200! اما حالا فرض کنید خود شما دارین تصمییم میگیرین، می یاین می بینید دو شرط آخر این مورد خیلی بهتر از اولین نمونس و تنها مشکل شرط اوله که 1 کیلومتر بیشتر از اون چیزیه که میخواین، با خودتون میگید خوب 1 کیلومتر در مقابل اون شرایط خوب که چیزی نیس و این مورد آخر رو انتخاب می کنید!
منطق فازی دقیقا همینو میگه! یعنی مثل منطق باینری که کاملا سخت گیرانه شرایط رو چک میکنه عمل نمی کنه بلکه مثل مغز آدم انعطاف پذیره.
این روزا تو خیلی چیزها از منطق فازی استفاده میشه، مثلا چند تاشون که شاید جالب باشن اینان:

  • ترمز های ABS و سیستم کروز.
  • دوربین ها
  • ماشین ظرف شویی
  • آسانسور ها
  • ماشین لباس شویی
  • بازی های رایانه ای
  • شناخت الگو ها
  • سیستم های تهویه

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

کد پی‌اچ‌پی:
IF x AND y THEN z
IF a OR b THEN c

همونطور که می دونید if در زبان برنامه نویسی چیز جدیدی نیست! اما با یه مثال ساده شاید بشه فرقش رو نشون داد.
در نظر بگیرید دارید یه سیستم تهویه طراحی می کنید، توی سیستم های فازی بجای استفاده از شرط هایی مثل temprature>60C یا 30C<temprature<60C از اصطلاحات زیر استفاده می کنیم:

کد پی‌اچ‌پی:

IF temperature IS very cold THEN stop fan

IF temperature IS cold THEN turn down fan

IF temperature IS normal THEN maintain level

IF temperature IS hot THEN speed up fan

دقیقا مثل وقتی که شما توی ماشین نشستین، می بینید هوا خیلی گرمه بدون اینکه دمای دقیق توی ماشین رو بدونید کولر ماشین رو روشن می کنید و روی دمای کم میگذارید!
اگر دقت کنید هیچ ELSEای وجود نداره، چون دما می تونه هم سرد باشه هم متوسط با درجه های مختلف!
اپراتور های AND، OR و NOT که باهاشون توی منطق باینری آشنا هستیم توی منطق فازی هم وجود دارن.
قبل از تعریف این عملگر ها باید بدونیم مجموعه های فازی یا Fuzzy sets به چه معنی هستند. همونطور که گفتیم توی منطق فازی درجه ی درستی لزوما نباید 0 یا 1 باشه و یه گزاره می تونه مثلا 0.3 درست باشه.
بعد گفتیم که تو منطق فازی می تونیم از هوای گرم یا قد بلند صحبت کنیم، اما باید اول اونارو برای سیستم فازیمون تعریف کنیم! هر کدوم از این دسته ها یه مجموعه ی فازی رو تشکیل میدن.
در واقع یه مجموعه ی فازی یه جفت (A, m) هست که A یه مجموعه هست و m یه تابع با دامنه ی A و برد [0,1]. به ازای هر x عضو (A، m(x درجه ی عضویت یا درستی x رو نشون میده!
می دونم یه کلمه از چند تا جمله ی قبل نفهمیدین الان بصورت نمودار میبینیدشون و می فهمید که چیز خیلی پیچیده ای نیست!
خوب حالا که تعریف فازی ست هارو فهمیدیم میریم که اونارو توی نمودار ببینیم و عملگر هارو هم از روی شکل و با توجه به تعریفشون بررسی کنیم:
[عکس: 6.gif]
به عنوان مثال این شکل مجموعه ی فازی جوان رو نشون میده، شما وقتی از دوستتون می پرسین بنظرت علی جوونه؟
دوستتون اگه علی 17 سالش باشه میگه آره، اگه 25 سالش باشه میگه اییی، آره هنوز میشه بهش گفت جوونه، اگه 28 سالش باشه میگه خیلی جوون نیس و اگه 50 سالش باشه میگه نه!
این مجموعه ی فازی هم در واقع همین رو میگه! همونطور که میبینید قبل از 20 سال (m(B یک هست، یعنی 0 تا 20 کاملا عضو مجموعه ی جوان هست، هر چی که میریم جلوتر عضویت توی مجموعه ی جوانی کمتر شده، توی 25 سالگی درجه ی عضویت یا درستی 0.5 هست و توی 28 سالگی 0.2 و بعد از 30 سالگی 0 که یعنی از این سن به بعد اصلا جوان نیست!
بنظرم الان یکم بهتر مطلب جا افتاده باشه! حالا فرض کنید دو تا مجموعه ی فازی زیر رو داشته باشیم:
[عکس: 7.gif]
[عکس: 8.gif]
مجموعه ی اول رو در ابتدا در نظر میگیریم. تعریف NOT توی شکل بصورت زیره:
[عکس: 9.gif]
یا به عبارتی:

کد پی‌اچ‌پی:
NOT A = (1- m(A))

خوب حالا دو مجموعرو که بالاتر نمودارشون هست رو در نظر بگیرین، تعریف AND روی اون دو مجموعه بصورت زیره:
[عکس: 10.gif]
یا به عبارتی:

کد پی‌اچ‌پی:
A AND B = minimum(m(A), m(B))

OR هم قاعدتا تا الان حدس زدید به چه صورت خواهد بود:
[عکس: 11.gif]

کد پی‌اچ‌پی:
A OR B = maximum(m(A), m(B))[/list]

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


منطق فازی

منطق فازی (fuzzy logic) اولین بار در پی تنظیم نظریهٔ مجموعه‌های فازی به وسیلهٔ پروفسور لطفی زاده (۱۹۶۵ م) در صحنهٔ محاسبات نو ظاهر شد.
واژهٔ fuzzy به معنای غیردقیق، ناواضح و مبهم (شناور) است.

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

مقدمه

دانش مورد نیاز برای بسیاری از مسائل مورد مطالعه به دو صورت متمایز ظاهر می‌شود:

۱. دانش عینی مثل مدل‌ها و معادلات و فرمول‌های ریاضی که از پیش تنظیم شده و برای حل و فصل مسائل معمولی فیزیک، شیمی، یا مهندسی مورد استفاده قرار می‌گیرد.
۲. دانش شخصی مثل دانستنی‌هایی که تا حدودی قابل توصیف و بیان زبان‌شناختی بوده، ولی امکان کمّی کردن آن‌ها با کمک ریاضیات سنتی معمولاً وجود ندارد. به این نوع دانش، دانش ضمنی یا دانش تلویحی (Tacit knowledge) گفته می‌شود.

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

تاریخچه

منطق فازی بیش از بیست سال پس از ۱۹۶۵ از درگاه دانشگاه‌ها به بیرون راه نیافت زیرا کمتر کسی معنای آنرا درک کرده بود. در اواسط دهه ۸۰ میلادی قرن گذشته صنعتگران ژاپنی معنا و ارزش صنعتی این علم را دریافته و منطق فازی را به کار گرفتند. اولین پروژه آنها طرح هدایت و کنترل تمام خودکار قطار زیرزمینی شهر سندای بود که توسط شرکت هیتاچی برنامه‌ریزی و ساخته شد. نتیجهٔ این طرح موفق و چشم‌گیر ژاپنی‌ها به طور ساده اینگونه خلاصه می‌شود: آغاز حرکت نامحسوس (تکان‌های ضربه‌ای) قطار، شتاب‌گرفتن نامحسوس، ترمز و ایستادن نامحسوس و صرفه جویی در مصرف برق.

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

ملاحظات آغازین

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

مجموعه‌های قطعی

مجموعه‌های قطعی (Crisp sets) درواقع همان مجموعه‌های عادی و معمولی هستند که در ابتدای نظریهٔ کلاسیک مجموعه‌ها معرفی می‌شوند. افزودن صفت قطعی به واقع وجه تمایزی را ایجاد می‌نماید که به کمک آن می‌شود یکی از مفاهیم ابتکاری و حیاتی در منطق فازی موسوم به تابع عضویت را به آسانی در ذهن به وجود آورد.

در حالت مجموعه‌های قطعی، تابع عضویت فقط دو مقدار در برد خود دارد (در ریاضیات، برد یک تابع برابر با مجموعه تمام خروجی‌های تابع است).

آری و خیر (یک و صفر) که همان دو مقدار ممکن در منطق دوارزشی کلاسیک هستند؛ بنابراین:

{\displaystyle \mathbf {\mu } _{A}(x)=\left\{{\begin{matrix}1&{\mbox{if}}\ x\in A,\\0&{\mbox{if}}\ x\notin A.\end{matrix}}\right.}

که در اینجا {\displaystyle \mathbf {\mu } _{A}(x)} تابع عضویت عنصر x در مجموعه قطعی A است.

مجموعه‌های فازی

مجموعه‌های فازی (fuzzy sets) از تعمیم نظریهٔ کلاسیک مجموعه‌ها حاصل می‌آید که در منطق فازی کاربرد دارد.

برد تابع عضویت از {\displaystyle \{0,1\}} در مورد مجموعه‌های قطعی به بازهٔ بستهٔ {\displaystyle [0,1]} برای مجموعه‌های فازی تبدیل می‌شود.

متغیرهای زبانی

منطق فازی دما

متغیرهای زبانی به متغیرهایی گفته می‌شود که مقادیر مورد قبول برای آن‌ها به جای اعداد، کلمات و جملات زبان‌های انسانی یا ماشینی هستند.
همانگونه که در محاسبات ریاضی از متغیرهای عددی استفاده می‌گردد، در منطق فازی نیز از متغیرهای زبانی (گفتاری یا غیر عددی) استفاده می‌گردد. متغیرهای زبانی بر اساس ارزش‌های زبانی (گفتاری) که در مجموعه عبارت (کلمات/اصطلاحات) قرار دارند بیان می‌شود. عبارت زبانی (Linguistic terms) صفاتی برای متغیرهای زبانی هستند. به عنوان مثال: متغیر زبانی «سن» بسته به تقسیمات مورد نظر شخصی و شرایط می‌تواند مجموعه عباراتی از قبیل «نوجوان»، «جوان»، «میان سال» و «سالمند» باشد.

مجموعه عبارات (اصطلاحات) فازی (سن) = { «جوان»، «نه جوان»، «نه چندان جوان»، «خیلی جوان» ،… ، «میان سال»، «نه چندان میان سال»… ، «پیر»، «نه پیر»، «خیلی پیر»، «کم و بیش پیر»… ، «نه خیلی جوان و نه خیلی پیر»، «نه جوان و نه پیر»…}

یا در مثالی دیگر، فشار (خون) را می‌توان متغیری زبانی در نظر گرفت، که ارزش‌هایی (خصوصیت‌هایی) از قبیل پایین، بالا، ضعیف، متوسط و قوی را می‌تواند در خود جای دهد. به زبان ریاضی داریم (T = Terms):

{پایین، بالا، ضعیف، متوسط، قوی} = (فشار)T

توابع عضویت

درجه عضویت \mu _{{A}}(x) بیانگر میزان عضویت عنصر x به مجموعه فازی {\tilde A} است. اگر درجه عضویت یک عنصر از مجموعه برابر با صفر باشد، آن عضو کاملاً از مجموعه خارج است و اگر درجه عضویت یک عضو برابر با یک باشد، آن عضو کاملاً در مجموعه قرار دارد. حال اگر درجه عضویت یک عضو مابین صفر و یک باشد، این عدد بیانگر درجه عضویت تدریجی می‌باشد.

عدم قطعیت

صفت عدم قطعیت، به صورت‌های گوناگون، در همهٔ زمینه‌ها و پدیده‌ها صرف نظر از روش شناسی مورد کاربرد جهت مطالعه، طراحی، و کنترل پدیدار می‌شود.
مفاهیم نادقیق بسیاری در پیرامون ما وجود دارند که آن‌ها را به صورت روزمره در قالب عبارت‌های مختلف بیان می‌کنیم. به عنوان مثال: «هوا خوب است» هیچ کمیتی برای خوب بودن هوا مطرح نیست تا آن را بطور دقیق اندازه‌گیری نماییم، بلکه این یک حس کیفی است. در واقع مغز انسان با در نظر گرفتن عوامل گوناگون و بر پایه تفکر استنتاجی جملات را تعریف و ارزش گذاری می‌نماید که الگوبندی آن‌ها به زبان و فرمول‌های ریاضی اگر غیرممکن نباشد، کاری بسیار پیچیده خواهد بود. منطق فازی فناوری جدیدی است که شیوه‌هایی را که برای طراحی و مدل سازی یک سیستم نیازمند ریاضیات پیچیده و پیشرفته‌است، با استفاده از مقادیر زبانی و دانش فرد خبره جایگزین می‌سازد.

انگیزه‌ها و اهداف

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

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

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

متغیرها در طبیعت یا در محاسبات بر دو نوعند: ارزش‌های کمی که می‌توان با یک عدد معین بیان نمود و ارزش‌های کیفی که براساس یک ویژگی بیان می‌شود. این دو ارزش قابل تبدیل‌اند.
مثلاً در مورد قد افراد، اگر آن‌ها با ارزش عددی (سانتی‌متر) اندازه‌گیری نماییم و افراد را به دسته‌های قدکوتاه و قدبلند تقسیم‌بندی کنیم و در این دسته‌بندی، حد آستانه ۱۸۰ سانتی‌متر برای بلندی قد مدنظر باشد، در اینصورت تمامی افراد زیر ۱۸۰ سانتی‌متر براساس منطق قدیم قد کوتاه‌اند. حتی اگر قد فرد ۱۷۹ سانتی‌متر باشد؛ ولی در مجموعه فازی هر یک از این صفات براساس تابع عضویت تعریف و بین صفر تا یک ارزشگذاری می‌شود.

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

کاربردهای صنعتی

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

برخی از کاربردها عبارتند از:

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

نرم‌افزارهای برای سیستم منطق فازی

  • Peach محاسبات هوشمند در پایتون
  • DotFuzzy کتابخانهٔ متن‌باز منطق فازی سی شارپ
  • JFuzzyLogic بستهٔ نرم‌افزاریِ متن باز منطق فازی برای جاوا
  • بسته pyFuzzyLib کتابخانهٔ منطق فازی در پایتون
  • بسته pyfuzzy کتابخانهٔ منطق فازی در پایتون
  • FisPro سیستم استنتاج فازی حرفه‌ای
  • (KBCT (Knowledge Base Configuration Tool ابزار پیکربندی پایگاه اطلاعات

منبع

منطق فازی (Fuzzy Logic) قسمت 1
منطق فازی (Fuzzy Logic) قسمت 2

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

منبع

انسان موجود کاملی نیست و به همین دلیل همواره نیازهای فراوانی در زندگی وی ظاهر می‌شوند. این نیازها در ادوار مختلف تمدن بشری، از نظر نوع و شدت، تغییرات فراوانی داشته‌اند. در بسیاری از مواقع، نیازهای دو نسل پیاپی از انسان‌ها، تفات‌های بسیاری با هم دارند و مسائلی برای افراد یک نسل اهمیت دارند که نسل پیشین یا پسین، کاملا نسبت به آن مسائل، بی توجه هستند. اما چیزی که در میان تمام نسل‌های بشری مشترک است، تلاش برای رفع نیازها و کمبودهای ذاتی است.علی رغم کمبودها و نیازهای بسیاری که همراه انسان هستند، قدرت تفکر و نوآوری انسان، این امکان را به او می‌دهد که بتواند با ابداع و اختراع، بخش قابل توجهی از محدودیت‌ها و نیازهایش را جبران کند.
انسان از نظر توان فیزیکی، موجودی محدود است. در میان جاندارانی که در خشکی، دریا و هوا حرکت می‌کنند؛ انسان جایگاه قابل توجهی ندارد. سرعت حرکت انسان در خشکی و آب،کاملا محدود است. اقامت انسان در زیر آب فقط محدود به مدت زمان کوتاهی بوده و پرواز در آسمان نیز برای انسان غیر ممکن است. انسان قدرت بلند کردن هر وزنه‌ای را ندارد. با درک چنین نیازهایی، در طول قرون و اعصار مختلف، اختراعاتی چون: هواپیما، کشتی، چاقو، جرثقیل، لباس و تجهیزات غواصی و طناب اختراع شده‌اند. تمامی اختراعات یاد شده، در جهت رفع محدودیت‌های فیزیکی انسان‌ها ایجاد شده‌اند.
پس از مدتی که تمدن نوپای بشری کار خود را آغاز نمود، نوع دیگری از نیازها برای انسان مطرح شدند. نیازهایی که در مقایسه با نیازهای فیزیکی، قدری لوکس‌تر به نظر می‌رسند. انسان در این مرحله، علاقه‌مند به ثبت وقایع و دستاوردهای خود شد. نقاشی‌هایی که امروزه در غارها کشف می‌شوند و سنگ‌نوشته‌ها و کتیبه‌هایی که در موزه‌های مختلف وجود دارند نشان از علاقه‌مندی بشر، به حفظ و انتقال اطلاعات دارد. نیاز به ذخیره‌سازی و تبادل اطلاعات، در زمان‌های مختلف توسط بشر حس شده است و اختراعات و ابداعاتی از قبیل دیسک‌های نوری، دوربین عکاسی، خط، تلفن، کبوتر نامه‌بر، و اینترنت، همگی محصول توجه به این نیاز بوده‌اند.
دسته‌ی دیگری از محدودیت‌هایی که انسان رفته رفته بیشتر با آن‌ها روبرو شد، و سعی در رفع آن‌ها نمود، شامل خستگی، محدودیت سرعت کار، و عدم مصونیت از خطا است. به عنوان مثال، محاسبات سنگین و حجیم، حتی اگر توسط انسان قابل انجام هم باشد؛ قطعا مصون از خطا و اشتباه نخواهد بود. انسان نمی‌تواند یک طرح را صدها بار بدون هیچ تفاوت (حتی جزئی) اجرا نماید. ساعات کار مفید انسان، در هر کاری که باشد، کاملا محدود و متاثر از محدودیت‌های فیزیکی اوست. به خصوص اگر ماهیت کار به نوعی باشد که با قوای فکری و محاسباتی انسان مرتبط باشد. قطعا با طولانی‌تر شدن زمان کار، کیفیت کار نیز خدشه‌دار خواهد شد. این نوع از نیازها و محدودیت‌ها منجر به ایجاد اختراعاتی چود ساعت، چاپگر، و کامپیوتر شدند. این اختراعات، مجموعه‌ای از کارها (احتمالا تکراری) را بدون هیچ خستگی یا خطایی انجام می‌دهند.
بشر امروز، علاوه بر نیازهای فیزیکی، ثبت و انتقال اطلاعات و پردازش دقیق نوع دیگری از نیاز را تجربه می‌کند. نیازی که تا 50 سال پیش، هیچ گاه به صورت جدی برای انسان مطرح نشده بود. تا پیش از این، انسان در پی ایجاد ابزارهایی بود که به جای او: کارهای فیزیکی انجام دهند، اطلاعات را به یاد داشته باشند (و منتقل کنند) و به جای او محاسبه کنند! اما امروزه انسان در پی ایجاد ابزارها و ادواتی است که به جای او فکر کنند، یاد بگیرند و تصمیم گیری کنند. ابزارهایی که از قدرت تحلیل و هوش انسان تقلید می‌کنند. به این ترتیب بود که هوش مصنوعی (Artificial Intelligence) به عنوان یکی از نیازهای عصر جدید مورد توجه انسان‌ها قرار گرفت.
فرض کنید که به جای استفاده از یک هوش انسانی در زمینه کنترل امنیت یک سازمان یا اداره، از سیستمی استفاده شود که قدرت تشخیص اثر انگشت، چهره و صدای افراد را دارد و می‌تواند تمام افراد وارد شونده یا خارج شونده را شناسایی نماید. این کاربرد نمونه، نیازمند استفاده از چندین تخصص از رشته‌های مختلف علمی و مهندسی است که اصلی‌ترین مورد در میان آن‌ها، بحث هوش مصنوعی می باشد. سیستم‌هایی همچون خلبان خودکار در هواپیما، کنترل کننده‌های ترافیک شهری، ادوات مراقبت پزشکی هوشمند، ابزارهای تبدیل صوت به متن و روبات‌های هوشمند، از جمله مظاهر استفاده از هوش مصنوعی در زندگی روزمره هستند.
هوش مصنوعی از جمله مباحثی است که تا پیش از اختراع کامپیوترها صحبت کردن در مورد آن‌ها عملا غیر ممکن بود. پس از ورود کامپیوترها به زندگی بشری بود که بحث در خصوص هوش مصنوعی به یکی از مباحث داغ تبدیل شد. هوش مصنوعی از نظر علمی، بخشی از علوم کامپیوتر است و امروزه به عنوان مبحثی اساسی و کاربردی در رشته‌های مختلف علوم پایه و مهندسی مورد مطالعه و پژوهش قرار می‌گیرد. اطلاعات بیشتر درباره آن را می توانید در این دو بخش (1 – 2) بخوانید.

هوش محاسباتی (Computational Intelligence)

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

محاسبات تکاملی (Evolutionary Computation)

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

هوش ازدحامی (Swarm Intelligence)

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

شبکه‌های عصبی مصنوعی (Artificial Neural Networks)

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

سیستم‌های فازی (Fuzzy Systems)

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

شبکه های عصبی مصنوعی – از صفر تا صد

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

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

فرایندهای خودآگاه و ناخودآگاهی که در حدود جغرافیایی بدن انسان رخ می دهند، همگی تحت مدیریت مغز هستند. برخی از این فرایندها آن قدر پیچیده هستند، که هیچ کامپیوتر یا اَبَر کامپیوتری در جهان، امکان پردازش و انجام آن را ندارد. با این حال، تحقیقات نشان می دهند که واحدهای سازنده مغز انسان، از نظر سرعت عملکرد، حدود یک میلیون بار، کندتر از ترانزیستورهای مورد استفاده در تراشه های سیلیکونی CPU هستند.

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

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

در راستای شبیه سازی رفتار محاسباتی مغز انسان، از چند دهه گذشته، که کامپیوترها امکان پیاده سازی الگوریتم های محاسباتی را فراهم نمودند، کارهای پژوهشی توسط متخصصین علوم کامپیوتر، مهندسین و ریاضی دان ها شروع شده است، که ما حصل کار آن ها، در شاخه ای از علم هوش مصنوعی، و در زیر شاخه هوش محاسباتی، تحت عنوان موضوع «شبکه های عصبی مصنوعی» یا Artificial Neural Networks (به اختصار: ANNs) طبقه بندی شده است. در مبحث شبکه های عصبی مصنوعی، مدل های ریاضی و نرم افزاری متعددی با الهام گرفتن از مغز انسان پیشنهاد شده اند، که برای حل گستره وسیعی از مسائل علمی، مهندسی و کاربردی، در حوزه های مختلف کاربرد دارند.

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

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

 

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

 

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

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

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

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

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

پرسپترون چند لایه یا MLP

یکی از پایه ای ترین مدل های عصبی موجود، مدل پرسپترون چند لایه یا Multi-Layer Perceptron (به اختصار MLP) است که عملکرد انتقالی مغز انسان را شبیه سازی می کند. در این نوع شبکه عصبی، رفتار شبکه ای مغز انسان و انتشار سیگنال در آن بیشتر مد نظر بوده است و از این رو، گهگاه با نام شبکه های پیشرو (Feedforward Networks) نیز خوانده می شوند. هر یک از سلول های عصبی مغز انسان، موسوم به نورون (Neuron)، پس از دریافت ورودی (از یک سلول عصبی یا غیر عصبی دیگر)، پردازشی روی آن انجام می دهند و نتیجه را به یک سلول دیگر (عصبی یا غیر عصبی) انتقال می دهد. این رفتار تا حصول نتیجه ای مشخص ادامه دارد، که احتمالا منجر به یک تصمیم، پردازش، تفکر و یا حرکت خواهد شد.

شبکه های عصبی شعاعی یا RBF

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

ماشین های بردار پشتیبان یا SVM

در شبکه های عصبی MLP و RBF، غالبا توجه بر بهبود ساختار شبکه عصبی است، به نحوی که خطای تخمین و میزان اشتباه های شبکه عصبی کمینه شود. اما در نوع خاصی از شبکه عصبی، موسوم به ماشین بردار پشتیبان یا Support Vector Machine (به اختصار SVM)، صرفا بر روی کاهش ریسک عملیاتی مربوط به عدم عملکرد صحیح، تمرکز می شود. ساختار یک شبکه SVM، اشتراکات زیادی با شبکه عصبی MLP دارد و عملا تفاوت اصلی آن، در شیوه یادگیری است.

نگاشت های خود سازمان ده یا SOM

شبکه عصبی کوهونن (Kohonen) و یا نگاشت خود سازمان ده یا Self-Organizing Map (به اختصار SOM) نوع خاصی از شبکه عصبی که از نظر شیوه عملکرد، ساختار و کاربرد، کاملا با انواع شبکه عصبی که پیش از این مورد بررسی قرار گرفتند، متفاوت است. ایده اصلی نگاشت خود سازمان ده، از تقسیم عملکردی ناحیه قشری مغز، الهام گرفته شده است و کاربرد اصلی آن در حل مسائلی است که به مسائل «یادگیری غیر نظارت شده» معروف هستند. در واقع کارکرد اصلی یک SOM، در پیدا کردن شباهت ها و دسته های مشابه در میان انبوهی از داده هاست که در اختیار آن قرار گرفته است. مشابه با کاری که قشر مغز انسان انجام داده است و انبوهی از ورودی های حسی و حرکتی به مغز را، در گروه های مشابهی طبقه بندی (یا بهتر است بگوییم: خوشه بندی) کرده است.

یادگیرنده رقمی ساز بردار یا LVQ

این نوع خاص شبکه عصبی، تعمیم ایده شبکه های عصبی SOM برای حل مسائل یادگیری نظارت شده است. از طرفی شبکه عصبی LVQ (یا Learning Vector Quantization)، می تواند به این صورت تعبیر شود که، گویا شبکه عصبی MLP با یک رویکرد متفاوت کاری را که باید انجام بدهد، یاد می گیرد. اصلی ترین کاربرد این نوع شبکه عصبی، در حل مسائل طبقه بندی است، که گستره وسیعی از کاربردهای سیستم های هوشمند را پوشش می دهد.

شبکه عصبی هاپفیلد یا Hopfield

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

 منبع

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

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

یک شبکه عصبی مصنوعی (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

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

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

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

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

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

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

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

چرا از شبکه های عصبی استفاده می‌کنیم

 

تصویری از عروس دریایی در رؤیای عمیق گوگل
تصویری از عروس دریایی در شبکه عصبی convolutional رؤیای عمیق گوگل

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

  1. یادگیری تطبیقی: توانایی یادگیری اینکه چگونه وظایف خود را بر اساس اطلاعات داده شده به آن یا تجارب اولیه انجام دهد در واقع اصلاح شبکه را گویند.
  2. خود سازماندهی: یک شبکه عصبی مصنوعی به صورت خودکار سازماندهی و ارائه داده‌هایی که در طول آموزش دریافت کرده را انجام دهد. نورون‌ها با قاعدهٔ یادگیری سازگار شده و پاسخ به ورودی تغییر می‌یابد.
  3. عملگرهای بی‌درنگ: محاسبات در شبکه عصبی مصنوعی می‌تواند به صورت موازی و به وسیله سخت‌افزارهای مخصوصی که طراحی و ساخت آن برای دریافت نتایج بهینه قابلیت‌های شبکه عصبی مصنوعی است انجام شود.
  4. تحمل خطا: با ایجاد خرابی در شبکه مقداری از کارایی کاهش می‌یابد ولی برخی امکانات آن با وجود مشکلات بزرگ همچنان حفظ می‌شود.
  5. دسته‌بندی: شبکه های عصبی قادر به دسته‌بندی ورودی‌ها بر ای دریافت خروجی مناسب می‌باشند.
  6. تعمیم دهی: این خاصیت شبکه را قادر می‌سازد تا تنها با برخورد با تعداد محدودی نمونه، یک قانون کلی از آن را به دست آورده، نتایج این آموخته‌ها را به موارد مشاهده از قبل نیز تعمیم دهد. توانایی که در صورت نبود آن سامانه باید بی‌نهایت واقعیت‌ها و روابط را به خاطر بسپارد.
  7. پایداری-انعطاف‌پذیری: یک شبکه عصبی هم به حد کافی پایدار است تا اطلاعات فراگرفته خود را حفظ کند و هم قابلیت انعطاف و تطبیق را دارد و بدون از دست دادن اطلاعات قبلی می‌تواند موارد جدید را بپذیرد.

 

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

 

شبکه مغز کرم الگانس

شبکه مغز کرم الگانس Caenorhabditis elegans _ شبکه نورونی این کرم از 302 نورون و حدود ۷۰۰۰ اتصال سیناپس تشکیل شده است.

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

  1. شبکه های عصبی دستورات را به صورت سری اجرا نکرده، شامل حافظه‌ای برای نگهداری داده و دستورالعمل نیستند.
  2. به مجموعه‌ای از ورودی‌ها به صورت موازی پاسخ می‌دهند.
  3. بیشتر با تبدیلات و نگاشت‌ها سروکار دارند تا الگوریتم‌ها و روش‌ها.
  4. شامل ابزار محاسباتی پیچیده نبوده، از تعداد زیادی ابزارساده که اغلب کمی بیشتر از یک جمع وزن دار را انجام می‌دهند تشکیل شده‌اند.

 

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

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

 

نورون مصنوعی

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

 

از نورون‌های انسان تا نورون مصنوعی

اکشن پتانسیل نورون زیستی: پتانسیل الکتریکی نورون در حالت استراحت در -70 mV قرار دارد. با اعمال محرک بر غشای نورون، پتانسیل غشا به -۵۵ میلی ولت می‌رسد پس از آن در صورتی که محرک اعمال شود پتانسیل غشا به سرعت در نقطه +40 mV به اوج خود می‌رسد و با همان سرعت، پتانسیل غشا به -90 mV کاهش و overshoots پیدا می‌کند و در نهایت دوباره به resting potential (پتانسیل حالت استراحت) در -70 mV بازمی‌گردد

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

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

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

  • لایه ورودی: دریافت اطلاعات خامی که به شبکه تغذیه شده‌است.
  • لایه‌های پنهان: عملکرد این لایه‌ها به وسیله ورودی‌ها و وزن ارتباط بین آنها و لایه‌های پنهان تعیین می‌شود. وزن‌های بین واحدهای ورودی و پنهان تعیین می‌کند که چه وقت یک واحد پنهان باید فعال شود.
  • لایه خروجی: عملکرد واحد خروجی بسته به فعالیت واحد پنهان و وزن ارتباط بین واحد پنهان و خروجی می‌باشد.

شبکه‌های تک لایه و چند لایه‌ای نیز وجود دارند که سازماندهی تک لایه که در آن تمام واحدها به یک لایه اتصال دارند بیشترین مورد استفاده را دارد و پتانسیل محاسباتی بیشتری نسبت به سازماندهی‌های چند لایه دارد. در شبکه‌های چند لایه واحدها به وسیله لایه‌ها شماره گذاری می‌شوند (به جای دنبال کردن شماره گذاری سراسری).

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

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

تقسیم‌بندی شبکه های عصبی

بر مبنای روش آموزش به چهار دسته تقسیم می‌شوند:

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

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

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

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

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

 

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

با وجود برتری‌هایی که شبکه های عصبی نسبت به سامانه‌های مرسوم دارند، معایبی نیز دارند که پژوهشگران این رشته تلاش دارند که آنها را به حداقل برسانند، از جمله:

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

 

تصویری از شبکه عصبی RNN

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

  • Dynamic Neural Network
    • Feedforward neural network FNN
    • Recurrent neural network RNN
      • RNN تکنولوژی speech recognition و handwriting recognition را ممکن کرد.
        • Hopfield network
        • Boltzmann machine
        • Simple recurrent networks
        • Echo state network
        • Long short term memory network
        • Bi-directional RNN
        • Hierarchical RNN
        • Stochastic neural networks
    • Kohonen Self-Organizing Maps
    • Autoencoder
    • Backpropagation
    • probabilistic neural network PNN
    • Time delay neural network TDNN
  • Static Neural Network
    • Neocognitron
    • Radial basis function network RBF
    • Learning vector quantization
    • Perceptron
      • Adaline model
      • Convolutional neural network CNN
        • Deep Dream Google
    • Modular neural networks
      • Committee of machines COM
      • Associative neural network ASNN
  • Memory Network
    • Google / Deep Mind
    • facebook / MemNN
    • Holographic associative memory
    • One-shot associative memory
    • Neural Turing Machine
    • Adaptive resonance theory
    • Hierarchical temporal memory
  • Other types of Networks
    • Instantaneously trained networks ITNN
    • Spiking neural networks SNN
      • Pulse Coded Neural Networks PCNN
    • Cascading neural networks
    • Neuro-fuzzy networks
    • Growing Neural Gas GNG
    • Compositional pattern-producing networks
    • Counterpropagation network
    • Oscillating neural network
    • Hybridization neural network
    • Physical neural network
      • Optical neural network
      • neuromorphic hardware

تمایز Morphologische سلول‌های عصبی 1_Unipolar neuron (نورون تک قطبی) 2_ Bipolar neuron (نورون دو قطبی) ۳_ نورون‌های چند قطبی (سیستم مغز) 4_ Pseudounipolar neuron (سیستم عصبی محیطی)

منبع

شبکه های عصبی مصنوعی چیست؟ قسمت 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