الگوریتم ها در کامپیوتر ها اعمال مشخص و واضحی هستند که بصورت پی در پی و در جهت رسیدن به هدف خاصی انجام می شوند.حتی در تعریف الگوریتم این گونه آمده است که الگوریتم عبارت است از مجموعه ای ازاعمال واضح که دنبال ای از عملیات را برای رسیدن به هدف خاصی دنبال می کنند.آنچه در این تعریف خود نمایی می کند کلمه دنباله می باشد که به معنای انجام کار ها بصورت گام به گام می باشد.
این امر مشخص می کند که همه چیز در الگوریتم های سنتی باید قدم به قدم برای کامپیوتر مشخص و قابل فهم و درک باشد.حتی در اولین الگوریتمهای هوش مصنوعی نیز بر همین پایه و کار قدم به قدم بنا نهاده شده اند.
در اواخرقرن بیستم رویکرد به الگوریتم های جدید صورت گرفت که علتهای مختلفی داشت مثل حجیم بودن میزان محاسبات برخی مسایل و بالا بودن مرتبه زمانی الگوریتم های سنتی در مورد این مسایل باعث شد نیاز به الگوریتمهای جدید احساس شود.همچنین برخی کارهای انسان که هنوز قابل انجام توسط کامپیوتر نبودندو یا به بخوبی توسط کامپیوتر انجام نمی شدند باعث این رویکرد شد.
مهمترین الگوریتمهای جدید عبارتند از :1- شبکه های عصبی 2- منطق فازی 3- محاسبات تکاملی
شبکه عصبی چیست ؟
این سوال که آیا انسان توانا تر است یا کامپیوتر موضوعی است که ذهن بشر را به خود مشغول کرده است.
اگر جواب این سوال انسان است چرا کامپیوتر اعمالی مانند جمع و ضرب و محاسبات پیچیده را در کسری از ثانیه انجام می دهد، حال آنکه انسان برای انجام آن به زمان زیادی نیازمند است.
واگر جواب آن کامپیوتر است چرا کامپیوتر از اعمالی مانند دیدن و شنیدن که انسان به راحتی آنها را انجام می دهدعاجزاست.جواب این مسئله را باید در ذات اعمال جستجو کرد .
اعمال محاسباتی اعمالی هستند سریالی و پی در پی به همین دلیل توسط کامپیوتر به خوبی انجام می شوند.حال آنکه اعمالی مانند دیدن وشنیدن کارهای هستند موازی که مجمو عه ای از داده های متفاوت و متضاد در آنها تفکیک و پردازش می شوندو به همین دلیل توسط انسان به خوبی انجام می شوند.
در واقع مغز انسان اعمال موازی را به خوبی درک و آنها را انجام می دهدو کامپیوتر اعمال سریالی را بهتر انجام می د هد.حال باید دیدآیا می توان این اعمال موازی و در واقع ساختار مغز انسان را به نوعی در کامپیوتر شبیه سازی کرد و آیا می توان امکان یادگیری که از جمله توانایی های انسان است به نوعی در کامپیوتر مدل سازی نمود.این کار به نوعی در انسان هم انجام می شود و زمان انجام آن عمدتا در کودکی است.به عنوان مثال یک کودک ممکن است یک شی مانند چکش را نشناسد اما هنگامی که آن را می بیند واسم آن را یاد می گیرد و سپس چند چکش متفاوت را می بینداین شی را بخوبی می شناسدو اگر بعد از مدتی چکشی را که تا کنون آن را ندیده است ببیند به راحتی تشخیص می دهد که شی مورد نظر یک چکش است و تنها از نظر جزئیات با چکش های مشابه که قبلا دیده است تفاوت دارد.
لازم به ذکر است که شبکه های عصبی تنها در یادگیری کاربرد ندارند، بلکه تمام مسائل جدید وکلاسیک توسط آنها قابل حل می باشد.اما آنچه شبکه های عصبی بدان نیازمند است مثالها و نمونه های مفید وکافی است که بتواند به خوبی فضای مسئله را پوشش دهند.حال باید دیدچگونه می توان شبکه عصبی انسان را به نوعی شبیه سازی نمود، برای این کار نخست به ساختار مغز و سیستم عصبی انسان نگاهی گذرا می اندازیم.
مغز انسان یکی از پیچیده ترین اعضای بدن است که تا کنون نیز به درستی شناخته نشده است و شاید اگر روزی به درستی شناخته شودبتوان شبیه سازی بهتری از آن انجام داد و به نتایج بهتری درباره هوش مصنوعی رسید.تحقیقات در مورد شبکه های عصبی نیز از زمانی آغاز شد که رامون سگال درباره ساختار مغز و اجزای تشکیل دهنده آن اطلاعات و نظراتی ارائه کرد.
او در اوایل قرن بیستم مغز را به عنوان اجتماعی از اجزای کوچک محاسباتی دانست و آنها را نرون نامید.امروزه ما می دانیم که بیشتر فعالیتهای انسان را نرونها انجام می دهندو در کوچکترین فعالیتهای حیاتی انسان مانند پلک زدن نیز نقش حیاتی و اساسی دارند.این نکته هم بسیار جالب است بدانید که در بدن ما حدود نرون وجود دارد که هر کدام از این نرونها با نرون دیگر در ارتباط هستند.نرونها شکلها و انواع مختلفی دارند، اما به طور عمده در سه دسته تقسیم بندی می شوند.
اما نرون ها از نظری دیگر به دو دسته تقسیم می شوند:1- نرونهای داخلی مغز که در فاصله های حدود 100میکرون به یکدیگر متصلند ونرونهای خارجی که قسمتهای مختلف مغز را به یکدیگر و مغز را به ماهیچه ها و اعضای حسی را به مغز متصل می کنند.اما همانطور که گفتیم نرونها از نظری دیگر به سه دسته تقسیم می شوند که عبارتند از:
1- نرونهای حسی : کاری که این نرونها انجام می دهند این است که اطلاعات را از اندام های حسی بدن به مغز و نخاع می رسانند.
2- نرونهای محرک :این نرونهافرمانهای مغز و نخاع را به ماهیچه ها و غدد و سایر اندام های حسی و تحت فرمان مغز می رسانند.
3- نرونهای ارتباطی : این نرونها مانندیک ایستگاه ارتباطی بین نرونهای حسی ونرونهای محرک عمل می کنند .
گفتنی است که نرون ها در همه جای بدن هستند وبه عنوان عنصر اصلی مغز محسوب می شوندوبه تنهایی مانند یک واحد پردازش منطقی عمل می کنند نحوه عملیات نرون بسیار پیچیده است و هنوز در سطح میکروسکوپی چندان شناخته شده نیست ، هر چند قوانین پایه آن نسبتا روشن است.
هر نرون ورودی های متعددی را پذیرا است که با یکدیگر به طریقی جمع می شوند.
اگر در یک لحظه تعداد ورودی های فعال
نرون به حد کفایت برسدنرون نیز فعال شده و آتش می کند.
در غیر این صورت نرون به صورت غیر فعال و آرام باقی می ماند.حال به بررسی اجزاءخود نرون می پردازیم:
نرون از یک بدنه اصلی تشکبل شده است که به آن سوما گفته می شود.
به سوما رشته های نا منظم طولانی متصل است که به آنها دندریت می گویند.
قطر این رشته ها اغلب از یک میکرون نازکتر است و اشکال شاخه ای پیچیده ای دارند.شکل ظریف آنها شبیه شاخه های درخت بدون برگ است که هر شاخه بارها وبارها به شاخه های نازکتری منشعب می شود.دندریت ها نقش اتصالاتی را دارندکه ورودی هارا به نرون ها می رساند.این سلولها می توانندعملیاتی پیچیده تر از ععملیات جمع ساده را بر ورودی های خود انجام دهند، از این رو عمل جمع ساده را می توان به عنوان تقریب قابل قبولی از عملیات واقعی نرون به حساب آورد.
یکی از عناصر عصبی متصل به هسته نرون آکسون نامیده می شود.این عنصر بر خلاف دندریت از نظر الکتریکی فعال است و به عنوان خروجی نرون عمل می کند.
آکسون همیشه در روی خروجی سلولها مشاهده می شوند لیکن اغلب در ار تباط های بین نرونی غایب اند.در این مواقع خروجی ها و ورودی ها هر دو بر روی دندریت هاواقع می شوند.
آکسون وسیله ای غیر خطی است که در هنگام تجاوز پتانسیل ساکن داخل هسته از حد معینی پالس ولتاژی را به میزان یک هزارم ثانیه ، به نام پتانسیل فعالیت ، تولید می کند.
این پتانسیل فعالیت در واقع یک سری از پرش های سریع ولتاژ است.رشته آکسون در نقطه تماس معینی به نام سیناپس قطع می شود ودر این مکان به دندریت سلول دیگر وصل می گردد.
در واقع این تماس به صورت اتصال مستقیم نیست بلکه از طریق ماده شیمیایی موقتی صورت می گیرد.سیناپس پس از آنکه پتانسیل آن از طریق پتانسیل های فعالیت در یافتی از طریق آکسون به اندازه کافی افزایش یافته از خود ماده شیمیایی منتقل کننده عصبی ترشح می کند.برای این ترشح ممکن است به دریافت بیش از یک پتانسیل فعالیت نیاز باشد.
منتقل کننده عصبی ترشح شده در شکاف بین آکسون ودندریت پخش می شودو باعث می گرددمی گردد که دروازه های موجود در دندریت ها فعال شده و باز شود و بدین صورت یون های شارژ شده وارد دندریت می شوند.
این جریان یون است که باعث می شود پتانسیل دندریت افزایش یافته و باعث یک پالس ولتاژ در دندریت شودکه پس از آن منتقل شده و وارد بدن نرون دیگر می گردد.
هر دندریت ممکن است تحت تأثیرتعداد زیادی سیناپس باشد وبدین صورت اتصالات داخلی زیادی را ممکن می سازد.
در اتصالات سیناپسی تعداد دروازه های باز شده بستگی به مقدار منتقل کننده عصبی آزاد شده داردو همچنین به نظر می رسدکه پاره ای سیناپس ها باعث تحریک دندریت ها می شوند در صورتی که پاره ای سیناپس ها دندریت ها را از تحریک باز می دارند.
این به معنای تغییر پتانسیل محلی دندریت ها در جهت مثبت یا منفی می باشد.یک نرون خود به تنهایی می تواند دارای ورودی های سیناپسی متعددی در روی دندریت های خود باشد و ممکن است با خروجی های سیناپسی متعددی به دندریت های نرون دیگر وصل شود.
یادگیری در سیستم های بیولوژیک
تصور می شود یادگیری هنگامی صورت می گیرد که شدت اتصال یک سلول و سلول دیگر در محل سیناپس ها اصلاح می گردد.به نظر می رسد که این مقصود از طریق ایجاد سهولت بیشتر در میزان آزاد شدن
ناقل شیمیایی حاصل می گردد.
این حالت باعث می شود که دروازه های بیشتری روی دندریت های سمت مقابل باز شود و به این صورت باعث افزایش میزان اتصال دو سلول شود.
تغییر میزان اتصال نرون ها به صورتی که باعث تقویت تماس های مطلوب شود از مشخصه های مهم در مدل های شبکه های عصبی است.
ناقل شیمیایی حاصل می گردد.
تغییر میزان اتصال نرون ها به صورتی که باعث تقویت تماس های مطلوب شود از مشخصه های مهم در مدل های شبکه های عصبی است.
سازمان مغز مغز از قسمتهای مختلفی تشکیل شده و هر کدام از این قسمت ها مسئولیت انجام وظایف متفاوتی را به عهده دارد.
در اانسان این سازماندهی کاملا مشهود است.
بزرگترین قسمت مغز نیمکره های مخ است که قسمت عمده فضای داخلی جمجمه را اشغال می کند.
مخ ساختار لایه ای دارد.آخرین لایه خارجی آن قشر مغز نامیده می شود ، جایی که سلولهای نرون برای تسهیل اتصالات داخلی کاملا به هم فشرده شده اند.نقش این قشر در انسان و حیوان کاملا شناخته نشده است ولی می توانیم شواهدی از آن نقش رااز طریق تحقیقاتی به دست آوریم که بر روی حیواناتی صورت گرفته که این بخش از مغز آنها خارج شده است.
برای مثال یک سگ در این حالت می تواند به خوبی راه برود، غذا بخورد و بخوابد و حتی پارس کند .
ولی در همان حال سگ کور می شودو احساس بویایی خود را از دست می دهد .
به ویژه اینکه تمامی علاقه خود را به محیط اطراف از دست می دهد ، نسبت به افراد و شنیدن نام خود عکس العملی نشان نمی دهد و نسبت به سگ های دیگر حتی حتی از جنس مخالف بی تفاوت می ماند.
در ضمن قدرت یادگیری را از دست می دهد.
در واقع ویژگیهایی را که ما اصطلاحا هوش می نامیم از دست می دهد ،ویژگی هایی چون آگاهی ، علاقه ، تعامل با محیط و قدرت سازگاری و یادگیری.
بنابراین به نظر می رسد که مخ بستر وظایف عالی تر مغز و هسته هوش مرکزی است.
پژوهشگران سالها در مورد لایه قشر خارجی مغز تحقیق کرده اند و به تدریج به اسرار آن پی بردهاند .
به نظر می رسدکه تقسیم وظایف در این قسمت از مغز حالت منطقه ای دارد،به طوری که هر قسمت ازقشر مغز نقش جداگانه ای مانند کنترل دست ،شنیدن ودیدن را ایفا می کند.به ویژه قسمت بینایی مغز جالب است.
در قسمت بینایی ،تحریکات الکتریکی سلولها می تواند حالت احساس نور را موجب شود.
تحلیل دقیق نشان داده است که لایه های مخصوص از نرون ها به جهت های معینی از تحریکات نوری حساس اند ، به طوری که مثلا یک لایه اکثرا به خطوط افقی و لایه دیگر اکثرا به خطوط عمودی حساسیت نشان می دهد.
گر چه قسمت عمده ای از این ساختار به طور ژنتیکی از پیش تعیین شده است ، به نظر می رسد که آرایش سلولها و گرایش آن ها به جهات مختلف در سالهای اولیه زندگی فرا گرفته می شود.
حیواناتی که در محیط صرفا دارای خطوط افقی پرورش می یابند در نهایت دارای ساختار نرونی نخواهند بود که نسبت به خطوط عمودی حساس باشد.
این امر نشان می دهد که ساختار های مغزی از داده های محیطی تاثیر می پذیرند وصرفا از طرف عوامل ژنتیکی تعیین نمی شوند.
این حالت در کورتکس بینایی اصطلاحا خود سازمان دهی نامیده می شود، زیرا هیچ آموزگار خارجی برای آموزش مغز مداخله ندارد.
نرون پایه در مطالب گذشته دیدیم که مغز از مکانیزم بسیار پیشرفته ای برخوردار است که هنوز چندان شناخته شده نیست و توانایی انجام اعمال بسیار شگرف را دارد.
همچنین دیدیم بسیاری از کارهایی که آرزو داریم کامپیوتر توانایی انجامشان را داشته باشند ، توسط مغز انجام می شود.در واقع فلسفه اصلی محاسبات شبکه های عصبی این است که با مدل کردن ویژگی عمده مغز و نحوه عملکرد آن بتوان کامپیو ترهایی را ساخت که اکثر ویژگی های مفید مغز را از خود نشان دهد.به پیچیدگی ساختار مغز اشاره کردیم و گفتیم که مغز را می توان به صورت مجموعه بسیار متصل وشبکه ای از عناصر پردازشی نسبتا ساده در نظر گرفت.
به مدلی نیاز داریم که بتواند ویژگی های مهم سیستم های عصبی را کسب کند ، به این منظور که بتواند رفتار مشابهی را از خود بروز دهد.
لیکن اگر بخواهیم این مدل به اندازه کافی برای فهمیدن و به کارگیری ساده باشد باید بسیاری از جزئیات را عمدا نادیده بگیریم .
استخراج تعداد محدودی ویژگی های مهم و نادیده گرفتن بقیه ویژگی ها از ضروریت های معمول مدل سازی است .
هدف مدل سازی اصولا ایجاد نمونه ساده تری از سیستم است که رفتار عمومی سیستم را حفظ کرده و کمک کند که سیستم با سهولت بیشتر قابل درک باشد عملیات شبکههای عصبی تا اینجا تمام توجه ما معطوف ساختار درونی یک نرون مصنوعی یا المان پردازشی بود.
اما بخش مهم دیگری در مراحل طراحی یک شبکه عصبی نیز وجود دارد.
در واقع هنر یک طراح شبکههای عصبی میتواند در چگونگی ترکیب نرونها در یک شبکه (neuran Clustering)، متجلی شود.
علوم بیولوژی نشان دادهاند که کلاسترینگ نرونها در شبکه عصبی مغز ما بهگونهای است که ما را قادر میسازد تا اطلاعات را به صورتی پویا، تعاملی و خودسامان (selforganizing) پردازش کنیم.
در شبکههای عصبی بیولوژیک، نرونها در ساختاری سه بعدی به یکدیگر اتصال یافتهاند.
اتصالات بین نرونها در شبکههای عصبی بیولوژیک آنقدر زیاد و پیچیدهاست که به هیچ وجه نمیتوان شبکه مصنوعی مشابهی طراحی کرد.
تکنولوژی مدارات مجتمع امروزی به ما امکان میدهد که شبکههای عصبی را در ساختارهای دو بعدی طراحی کنیم.
علاوه بر این، چنین شبکههای مصنوعی دارای تعداد محدودی لایه و اتصالات بین نرونها خواهند بود.
بدین ترتیب، این واقعیات و محدودیتهای فیزیکی تکنولوژی فعلی، دامنه کاربردهای شبکههای عصبی مبتنیبر تکنولوژی سیلیکونی را مشخص میسازند.
ساختار شبکههای عصبی امروزی، از لایههای نرونی تشکیل شده است.
در چنین ساختاری، نرونها علاوه بر آنکه در لایه خود به شکل محدودی به یکدیگر اتصال داده شدهاند، از طریق اتصال بین لایهها نیز به نرونهای طبقات مجاور ارتباط داده میشوند.
در شکل 1 نمونهای از ساختار لایهای یک شبکه عصبی مصنوعی نمایش داده شده است (تعداد اتصالات ممکن بین نرونها را در چنین ساختاری با تعداد اتصالات بین نرونهای مغز انسان، مقایسه کنید).
در این توپولوژی، گروهی از نرونها از طریق ورودیهای خود با جهان واقعی ارتباط دارند.
گروه دیگری از نرونها نیز از طریق خروجیهای خود، جهان خارج را میسازند.
در واقع این تصویری است که شبکه عصبی از ورودی خود میسازد یا میتوان چنین گفت که جهان خارج است که شبکه عصبی از ورودی خود دارد.
خلاصه آنکه در توپولوژی فوق، مابقی نرونها از دید پنهان هستند.تلاش محققان در زمینه شبکههای عصبی نشان داده است که شبکههای عصبی، چیزی بیشتر از یک مشت نرون که به یکدیگر اتصال داده شدهاند، هستند.
حتی گروهی از محققان سعی داشتهاند که از اتصالات تصادفی برای ارتباط دادن نرون به یکدیگر استفاده کنند که در این زمینه به نتایج جالب توجهی دست نیافتند.
امروزه مشخص شده است که در سادهترین مغزهای بیولوژیک مانند مغز مارها هم ارتباطات بین نرونها بسیار ساختیافته است.
در حال حاضر یکی از سادهترین روشهای ارتباط دهی نرونها در شبکههای عصبی، آن است که ابتدا نرونها در گروههای مشخصی به صورت لایههای نرونی سازماندهی میشوند و پس از تامین ارتباطات بیننرونی در هر لایه، ارتباطات بین لایهها نیز برقرار میشوند.
اگرچه در کاربردهای مشخصی میتوان با موفقیت از شبکههای عصبی تک لایه استفاده کرد، اما رسم بر آن است که شبکههای عصبی حداقل دارای سه لایه باشند (همانطور که قبلاً اشاره شد، لایه ورودی، لایه خروجی و نهایتاً لایه پنهان یا لایه میانی).
در بسیاری از شبکههای عصبی، اتصالات بیننرونی به گونهای است که نرونهای لایههای میانی، ورودی خود را از تمام نرونهای لایه پایینی خود (به طور معمول لایه نرونهای ورودی) دریافت میکنند.
بدین ترتیب در یک شبکه عصبی، سیگنالها به تدریج از یک لایه نرونی به لایههای بالاتر حرکت میکنند و در نهایت به لایه آخر و خروجی شبکه میرسند.
چنین مسیر در اصطلاح فنی feed forward نامیده میشود.
ارتباطات بیننرونی در شبکههای عصبی از اهمیت بسیار زیادی برخوردار هستند و به نوعی قدرت یک شبکه عصبی را تعیین میکنند.
قاعده آن است که ارتباطات بین نرونی را به دو گروه تقسیمبندی میکنند.
یک نوع از ارتباطات بین نرونی، بهگونهای هستند که باعث جمع شدن سیگنال در نرون بعدی میشوند.
گونه دوم ارتباطات بین نرونی باعث تفریق سیگنال در نرون بعدی میشوند.
در اصطلاح محاورهای گروهی از ارتباطات انگیزش ایجاد میکنند و گروه دیگر ممانعت به عمل میآورند.
در مواردی، نرون مشخصی از شبکه عصبی تمایل دارد که سیگنال دیگر نرونهای لایه خود را نادیده بگیرد.
چنین حالتی بهطور معمول در لایه خروجی ایجاد میشود.
به عنوان مثال، در کاربردهای تشخیص متن (OCR)، فرض کنید که احتمال آنکه کاراکتر مورد شناسایی، حرف P باشد برابر با 85 درصد تعیین شده است و به همین ترتیب احتمال آنکه کاراکتر مورد نظر حرف F باشد، 65 درصد تخمین زده است.
در این وضعیت، سیستم باید کاراکتری را برگزیند که دارای درصد احتمال بزرگتر است.
در نتیجه در این شبکه عصبی، نرونهایی که خروجی F را تجویز میکنند، باید نادیده گرفته شوند یا inhibit شوند.
به چنین فرایندی، lateral inhibition گفته میشود.
نوع دیگری از ارتباط بین نرونی در شبکههای عصبی به ارتباط بازخورد یا feedback معروف است.
در این نوع از ارتباطات، خروجی یک لایه نرونی به لایه قبلی (یا به لایهای که چند مرحله پایینتر است) اتصال داده میشود.
در شکل 2 نمونهای از یک شبکه عصبی نمایش داده شده که در آن از ارتباط بازخوردی استفاده شده است.
در نرمافزارهای پیشرفته شبکههای عصبی، کاربر و طراح شبکه عصبی میتواند نوع ارتباطات بین نرونها و لایههای آنها را تعیین کند.
آموزش شبکههای عصبی تا اینجا از ساختار شبکههای عصبی صحبت کردیم.
گفتیم که شبکههای عصبی میتوانند بر اساس طراحی خود سیگنالهای ورودی را پردازش کنند و به سیگنالهای خروجی مورد نظر تبدیل نمایند.
به طور معمول، پس از آنکه یک شبکه عصبی طراحی و پیادهسازی شد، باید پارامترهای w و b به ازای مجموعههایی از سیگنالهای ورودی، بهگونهای تنظیم شوند که سیگنالهای خروجی شبکه خروجی مطلوب را تشکیل دهند.
چنین فرایندی را آموزش دیدن شبکه عصبی مینامند (در نخستین مرحله آموزش، مقادیر w و b بهطور تصادفی انتخاب میشوند.
زیرا تا این پارامترها مقدار نداشته باشند، شبکه عصبی قابل استفاده نخواهد بود) در حین آموزش دیدن شبکه عصبی (یعنی به تدریج همزمان با افزایش دفعاتی که مقادیر پارامترها برای رسیدن به خروجی مطلوبتر، تنظیم میشوند) مقدار پارامترها به مقدار حقیقی و نهایی خود نزدیکتر میشوند.
بهطور کلی دو روش برای آموزش دادن شبکههای عصبی وجود دارد.
روش supervised و روش unsupervised.
روش نخست، شامل مراحلی است که در بخش قبل، بهطور مختصر تشریح شد.
اما در روش unsupervised، شبکه عصبی باید بدون کمک گرفتن از جهان خارج، بتواند کار آموزش را انجام دهد.
واقعیت آن است که در عمل از روش supervised و یا حداکثر از روشهای ترکیبی استفاده میشود و فرایند آموزش unsupervised به شکل خالص تنها وعدهای است که شاید در آینده بتواند تحقق یابد.
در حال حاضر و در کاربردهای پیشرفته، از روش آموزش unsupervised برای ایجاد تنظیمات اولیه بر روی سیگنالهای ورودی شبکههای عصبی استفاده میشود و باقی مراحل آموزش شبکه به روش supervised ادامه مییابد.
همانطور که قبلاً اشاره کردیم، در روش معمول آموزش شبکههای عصبی، از مجموعه شناختهشدهای از دادههای ورودی و خروجیهای متناظر آنها (training set data) برای آموزش دادن شبکه استفاده میشود.
در چنین فرایندی، پس از اعمال مجموعههای دادههای آموزشی، پارامترهای شبکه به تدریج به سمت مقادیر نهایی خود همگرا میشوند.
بستههای نرمافزاری پیشرفته تولید و طراحی شبکههای عصبی، دارای ابزارهایی هستند که بر روند آموزش شبکه مدیریت میکنند.
چنین ابزارهایی میتوانند سرعت همگرایی پارامترهای شبکه را زیر نظر بگیرند و به عنوان مثال، اجازه دهند که پارامترهای یک شبکه مشخص، در طول چندین روز به دقت کافی و مورد نظر طراحان خود برسد.
در مواردی ممکن است که شبکه عصبی اصولاً موفق به فراگیری نشود.
بدین معنی که پارامترهای شبکه پس از زمانهای طولانی به مقدار مشخصی همگرا نشود.
چنین مواردی ممکن است بر اثر ناکافی بودن دادههای آموزشی و یا اصولاً نقص طراحی شبکه ایجاد شوند.
حتی مواردی در عمل وجود دارند که شبکه عصبی مشخصی، بر اثر آموزش بیش از حد، اصطلاحا over trained شود.
توجه داشته باشید که فرایند آموزش شبکههای عصبی فقط به ازای زیر مجموعهای از دادههایی که قرار شبکه آنها را در کاربرد حقیقی خود پردازش کند، آموزش داده میشوند.
درصورتیکه تعداد دادههای آموزشی یک شبکه عصبی بیش از اندازه زیاد باشد (در واقع از تمامی دادههای مسئله برای آموزش دادن به شبکه استفاده شود)، شبکه عصبی به جای آنکه آموزش ببیند، به حالتی میرسد که به آن حفظ کردن اطلاعات میگویند.
در واقع به جای آنکه یک شبکه عصبی برای حل مسئله از هوش خود کمک بگیرد، از محفوظات خود استفاده میکند!
پس از آنکه یک شبکه عصبی به اندازه کافی آموزش دید، طراح یا کاربر شبکه میتواند پارامترهای شبکه را قفل کند (هر چند که در مواردی پارامترهای شبکه آزاد گذارده میشوند تا در طول کاربرد واقعی بازهم شبکه آموزش ببیند).
در این مرحله شبکه عصبی برای کاربرد واقعی خود و حل مسائل آماده خواهد بود.
در برخی از ابزارهای تولید و طراحی شبکههای عصبی، کل شبکه عصبی به همراه پارامترهای قفل شده آن، تبدیل به نرمافزار مستقلی (مثلاً یک فایل dll) میشوند که میتوان از آن در پروژههای مشخصی استفاده کرد.
در برخی از موارد دیگر، چنین شبکههایی پس از آموزش دیدن، به شکل سختافزاری در قالب یک مدار مجتمع (IC) به تولید انبوه یا نیمه انبوه میرسند.
آموزش unsupervised یا تطبیقی (Adaptive) در مورد این روش آموزش گفتیم که شبکه عصبی بدون در اختیار داشتن دادههای خروجی، در معرض آموزش قرار میگیرد.
در واقع سیستم به تنهایی و بدون کمک خارجی باید با توجه به شکل سیگنالهای خروجی خود، درباره درستی و نادرستی آنها تصمیمگیری نماید.
در دنیای واقعی شرایط بسیار زیادی وجود دارند که در آنها مجموعه اطلاعات کافی برای آموزش دادن به سیستم فراهم نیستند.
تحقیقات نظامی یکی از گرایشهایی است که به این موضوع توجه دقیقی دارد.
به عنوان مثال گفته میشود که شرایط جنگی به دلیل فراوانی پارامترها و تکنیکهای نظامی متغیر و پیشرفتهای تکنولوژی نظامی، از نمونه مواردی است که در آنها به هیچ وجه نمیتوان مجموعه دادههای آموزشی کافی به دست آورد.
در این زمینه یکی از محققان شبکههای عصبی، به نام Tuevo Kohonen (از دانشگاه هلسینکی) فعالیتی جدی دارد.
کوهونن با تحقیقات در ساختارهای عصبی غیرمتعارف، به پژوهش در این زمینه ادامه میدهد.
کوهنن، نرونهای شبکهعصبی را فیلدهای مختلفی تقسیمبندی میکند.
در روش کوهنن، نرونهای هر فیلد یا Topologically ordered محسوب میشوند (توپولوژی نام شاخهای از ریاضیات است که در آن نگاشت از یک فضا به فضای دیگر بدون تغییر مشخصههای هندسی، مورد بررسی قرار میگیرد).
گروهبندیهای سهبعدی که در ساختار مغز پستانداران یافت شده است، نمونهای از مرتبسازی توپولوژیک محسوب میشوند.
کوهونن معتقد است که فقدان ملاحظات توپولوژیک در مدلهای عصبی امروزی، باعث میشود که شبکههای عصبی امروزی، مدلهای ساده شدهای از شبکههای عصبی واقعی موجود در مغز محسوب شوند.
در هر صورت این حوزه از مبحث شبکههای عصبی، هنوز در مرحله تحقیقات آزمایشگاهی قرارداد و کاربرد واقعی نیافته است.
تفاوتهای شبکههای عصبی با روشهای محاسباتی متداول و سیستمهای خبره گفتیم که شبکههای عصبی روش متفاوتی برای پردازش و آنالیز اطلاعات ارائه میدهند.
اما نباید این گونه استنباط شود که شبکههای عصبی میتوانند برای حل تمام مسائل محاسباتی مورد استفاده واقع شوند.
روشهای محاسباتی متداول همچنان برای حل گروه مشخصی از مسائل مانند امور حسابداری، انبارداری و محاسبات عددی مبتنی بر فرمولهای مشخص، بهترین گزینه محسوب میشوند.
جدول 1، تفاوتهای بنیادی دو روش محاسباتی را نشان میدهد.
جدول 1 سیستمهای خبره، انشعابی از روش محاسباتی متداول محسوب میشود و در مواردی هم به آن نسل پنجم محاسبات نام دادهاند (نسل اول از کلید و سیمبندی استفاده میکرد، نسل دوم با اختراع ترانزیستور ایجاد شد، نسل سوم از فناوری مدارات مجتمع استفاده میکرد، نسل چهارم با به وجود آمدن زبانهای سطح بالا آغاز شد و نسل پنجم شامل هوش مصنوعی میشود).
به طور معمول، یک سیستم خبره شامل دو بخش عمده میشود.
یک بخش یا موتور استنتاجی و یک پایگاه دانایی (Knowledge base).
موتور استنتاجی، بخشی است که رابط کاربر را مدیریت میکند و بر فایلها و دسترسی به برنامهها و برنامهریزی کنترل دارد.
پایگاه دانایی شامل اطلاعاتی در ارتباط با یک مسئله مشخص است.
این پایگاه به متخصصان اجازه میدهد که قواعد فرایند مشخصی را تعریف نماید.
چنین متخصصی نیازی به دانستن روشهای برنامهنویسی نخواهد داشت.
او تنها باید کاری که از کامپیوتر میخواهد را درک کند و شناخت کافی از روش عمل سیستم داشته باشد.
درواقع پوسته سیستم بخشی است که به کامپیوتر میگوید چهکار باید انجام دهد.
برنامه لازم برای حل مسئله توسط خود سیستم تولید خواهد شد.
تلاشهایی که برای اجرایی کردن سیستمهای خبره به کار گرفته شدهاند، با مشکلات مشترکی مواجه بودهاند.
با افزایش سطح پیچیدگی سیستمها، منابع کامپیوتری مورد نیاز سیستم به شدت افزایش مییابند و سیستم با کندی بیش از حد روبرو میشود.
در حقیقت تجربه نشان داده است که در وضعیت فعلی، سیستمهای خبره تنها میتوانند در مواقعی مفید واقع شوند که هدف محدود و مشخصی تعیین شده باشد.
شبکههای عصبی در مسیری گام برمیدارند که ابزارها توانایی فراگیری و برنامهریزی خود را داشته باشند.
ساختارشبکههای عصبی به گونهای است که قابلیت حل مسئله را بدون کمک فرد متخصص و برنامهریزی خارجی داشته باشند.
شبکههای عصبی قادر به یافتن الگوهایی در اطلاعات هستند که هیچکس، هیچگاه از وجود آنها اطلاع نداشته است.
درحالیکه سیستمهای خبره در عمل به موفقیتهای بسیاری دست یافتهاند، شبکههای عصبی در کاربردهایی همچون دید مصنوعی، تشخیص و تولید پیوسته گفتار، فراگیری ماشینی و نظایر آن با مشکلاتی روبرو بودهاند.
در حال حاضر شبکههای عصبی کاملاً وابسته به سرعت پردازنده سیستم اجرا کننده هستند.
معرفی چند نوع شبکه عصبی در این قسمت به معرفی چند نوع از شبکه های عصبی می پردازیم : 1- پرسپترون تک لایه 2- پرسپترون چند لایه 3- شبکههای Back Propagation 4-شبکه هاپفیلد 5- ماشین بولتزمن 6-شبکه کوهونن 1- پرسپترون تک لایه ابتدا مشخصات یک نرون تنها و نحوه مدلسازی آن را بررسی می کنیم .
نقش اصلی یک نرون بیولوژیکی عمل جمع ورودی های خود تا جایی است که مجموع ورودی ها از حدی که به آن آستانه می گوییم تجاوز نکند و آن گاه تولید یک خروجی است.
ورودی های نرون از طریق دندریت ها که به خروجی های نرون دیگر توسط نقاط اتصال ( سیناپس ) متصل است وارد می شوند .
سیناپس ها کارایی سیگنالهای در یافتی را تغییر می دهند.
بدنه سلول کلیه ورودی ها را دریافت می کند و هنگامی که مجموع ورودی ها از حد آستانه تجاوز کرد سیگنالی را آتش می کند.
مدلی که از نرون می سازیم باید مشخصه های زیر را داشته باشد : خروجی یک نرون فعال است (یک ) و یا غیر فعال است ( صفر ) 2- خروجی تنها به ورودی ها بستگی دارد .
میزان ورودی ها باید به حدی برسد که خروجی نرون را فعال سازد .
کارآیی سیناپس ها در انتقال سیگنال های ورودی به بدنه سلول را می توان با استفاده از ضریبی که در ورودی های نرون ضرب می شود مدل سازی کرد.سیناپس ها ی قویتر که سیگنال بیشتری را منتقل کنند دارای ضریب های بسیار بزرگتری هستند در حالی که سیناپس های ضعیف ضریب هاب کوچک تری دارند.
بدین صورت مدل ما به صورتی خواهد بود که در شکل می بینید : این مدل ابتدا مجموع وزنی ورودی های خود را محاسبه کرده سپس آن را با حد آستانه داخلی خود مقایسه می کند و چنانچه از آن تجاوز کرد فعال شود.
در غیر این صورت غیرفعال باقی می ماند .
چون ورودی ها برای تولید خروجی از میان نرون عبور می کنند به این سیستم (( پیش خور )) می گوییم .
این عمل راباید بصورت ریاضی نشان دهیم .
اگر تعداد ورودی ها n باشد آن گاه هر خط ورودی دارای یک ضریب وزنی مربوط به خود است .
نرون مدل سازی شده ورودی های خود را محاسبه می کند.
ابتدا اولین ورودی رادر ضریب وزنی مربوط به خط ارتباطی آن ورودی ضرب می کند.
سپس همین عمل را برای ورودی دوم وسایر ورودی ها تکرار می کند در نهایت تمام مقادیر حاصل را جمع می کند که این عملیات به طور خلاصه به شکل زیر است : + ورودی 1 * وزن مربوط به خط ارتباطی 1 = مجموع ورودی ها + ورودی 2* وزن مربوط به خط ارتباطی 2 + ورودی 3 * وزن مربوط به خط ارتباطی 3 .....................................................................
ورودی n * وزن مربوط به خط ارتباطی n که شکل کلی فرمول آن به صورت روبرو خوهد بود: حاصل جمع فوق باید با مقدار آستانه نرون مورد نظر مقایسه شود .
در مقایسه با آستانه اگر حاصل جمع به دست آمده از میزان آستانه تجاوز کند آن گاه خروجی نرون مساوی (( 1 )) خواهد بود و اگر حاصل جمع کمتر از آستانه باشد خروجی مساوی صفر می شود.
این فرآیند را می توان را می توا نید در شکل زیر ببینید که چگونه وقتی مجموع ورودی های یک نرون از حد آستانه بیشتر شود خروجی این نرون برابر یک می شود و هنگامی که خروجی آن کمتر از حد آستانه است خروجی آن برابر صفر می شود.شکلی که در ادامه مشاهده می کنید معروف به تابع پله یا تابع هوی ساید است.
در این شکل محور x نشان دهنده مجموع ورودی ها و محور y نشان دهنده خروجی نرون است .
از طرف دیگر می توان مقدار آستانه را ابتدا از حاصل جمع وزنی به دست آمده کم کرد و آن گاه مقدار حاصل را با صفر مقایسه کرد .
اگر مقدار حاصل مثبت بود خروجی نرون 1 و در غیر این صورت صفر خواهد بود.
این مورد در شکل ننیز نشان داده شده است .دقت کنید که کل تابع آستانه تغییر نکرده است ولی در این حالت پرش پلکانی در منطقه 0=x صورت گرفته است .
آستانه در واقع تورشی به حاصل جمع وزنی اضافه می کند.
راه دیگری برای دستیابی به همین منظور می تواند حذف کامل آستانه از بدنه نرون و در عوض اضافه کردن یک خط ورودی با مقدار ثابت 1 باشد .
این ورودی همیشه فعال باقی می ماندو ضریب وزنی خط ارتباطی آن برابر با مقدار منفی آستانه در نظر گرفته می شود.
در این صورت به جای کم کردن مقدار آستانه از حاصل جمع ورودی نرون می توان ورودی ثابت اضافی 1+ را در ضریب وزنی خود که برابر با مقدار منفی آستانه است ضرب کرد و به سایر ورودی ها اضافه کرد .
به این راه کار احتساب تورش می گوییم .
به همین صورت مقدار منفی آستانه را تورش یا یک سویی می نامیم.
هر دو راهکار مشابه وقابل قبول است .