عملیات شبكههای عصبی
تا اینجا تمام توجه ما معطوف ساختار درونی یك نرون مصنوعی یا المان پردازشی بود. اما بخش مهم دیگری در مراحل طراحی یك شبكه عصبی نیز وجود دارد. در واقع هنر یك طراح شبكههای عصبی میتواند در چگونگی تركیب نرونها در یك شبكه (neuran Clustering)، متجلی شود. علوم بیولوژی نشان دادهاند كه كلاسترینگ نرونها در شبكه عصبی مغز ما بهگونهای است كه ما را قادر میسازد تا اطلاعات را به صورتی پویا، تعاملی و خودسامان (Selforganizing) پردازش كنیم. در شبكههای عصبی بیولوژیك، نرونها در ساختاری سه بعدی به یكدیگر اتصال یافتهاند. اتصالات بین نرونها در شبكههای عصبی بیولوژیك آنقدر زیاد و پیچیدهاست كه به هیچ وجه نمیتوان شبكه مصنوعی مشابهی طراحی كرد. تكنولوژی مدارات مجتمع امروزی به ما امكان میدهد كه شبكههای عصبی را در ساختارهای دو بعدی طراحی كنیم. علاوه بر این، چنین شبكههای مصنوعی دارای تعداد محدودی لایه و اتصالات بین نرونها خواهند بود. بدین ترتیب، این واقعیات و محدودیتهای فیزیكی تكنولوژی فعلی، دامنه كاربردهای شبكههای عصبی مبتنیبر تكنولوژی سیلیكونی را مشخص میسازند.
ساختار شبكههای عصبی امروزی، از لایههای نرونی تشكیل شده است. در چنین ساختاری، نرونها علاوه بر آنكه در لایه خود به شكل محدودی به یكدیگر اتصال داده شدهاند، از طریق اتصال بین لایهها نیز به نرونهای طبقات مجاور ارتباط داده میشوند.
در این توپولوژی، گروهی از نرونها از طریق ورودیهای خود با جهان واقعی ارتباط دارند. گروه دیگری از نرونها نیز از طریق خروجیهای خود، جهان خارج را میسازند. در واقع این <جهان خارج> تصویری است كه شبكه عصبی از ورودی خود میسازد یا میتوان چنین گفت كه جهان خارج <تصوری> است كه شبكه عصبی از ورودی خود دارد. خلاصه آنكه در توپولوژی فوق، مابقی نرونها از دید پنهان هستند.
تلاش محققان در زمینه شبكههای عصبی نشان داده است كه شبكههای عصبی، چیزی بیشتر از یك مشت نرون كه به یكدیگر اتصال داده شدهاند، هستند. حتی گروهی از محققان سعی داشتهاند كه از اتصالات تصادفی برای ارتباط دادن نرون به یكدیگر استفاده كنند كه در این زمینه به نتایج جالب توجهی دست نیافتند. امروزه مشخص شده است كه در سادهترین مغزهای بیولوژیك مانند مغز مارها هم ارتباطات بین نرونها بسیار ساختیافته است. در حال حاضر یكی از سادهترین روشهای ارتباط دهی نرونها در شبكههای عصبی، آن است كه ابتدا نرونها در گروههای مشخصی به صورت لایههای نرونی سازماندهی میشوند و پس از تامین ارتباطات بیننرونی در هر لایه، ارتباطات بین لایهها نیز برقرار میشوند.
اگرچه در كاربردهای مشخصی میتوان با موفقیت از شبكههای عصبی تك لایه استفاده كرد، اما رسم بر آن است كه شبكههای عصبی حداقل دارای سه لایه باشند (همانطور كه قبلاً اشاره شد، لایه ورودی، لایه خروجی و نهایتاً لایه پنهان یا لایه میانی).
در بسیاری از شبكههای عصبی، اتصالات بیننرونی به گونهای است كه نرونهای لایههای میانی، ورودی خود را از تمام نرونهای لایه پایینی خود (به طور معمول لایه نرونهای ورودی) دریافت میكنند. بدین ترتیب در یك شبكه عصبی، سیگنالها به تدریج از یك لایه نرونی به لایههای بالاتر حركت میكنند و در نهایت به لایه آخر و خروجی شبكه میرسند. چنین مسیر در اصطلاح فنی feed forward نامیده میشود. ارتباطات بیننرونی در شبكههای عصبی از اهمیت بسیار زیادی برخوردار هستند و به نوعی قدرت یك شبكه عصبی را تعیین میكنند. قاعده آن است كه ارتباطات بین نرونی را به دو گروه تقسیمبندی میكنند. یك نوع از ارتباطات بین نرونی، بهگونهای هستند كه باعث جمع شدن سیگنال در نرون بعدی میشوند. گونه دوم ارتباطات بین نرونی باعث تفریق سیگنال در نرون بعدی میشوند. در اصطلاح محاورهای گروهی از ارتباطات انگیزش ایجاد میكنند و گروه دیگر ممانعت به عمل میآورند.
در مواردی، نرون مشخصی از شبكه عصبی تمایل دارد كه سیگنال دیگر نرونهای لایه خود را نادیده بگیرد. چنین حالتی بهطور معمول در لایه خروجی ایجاد میشود. به عنوان مثال، در كاربردهای تشخیص متن (OCR)، فرض كنید كه احتمال آنكه كاراكتر مورد شناسایی، حرف P باشد برابر با 85 درصد تعیین شده است و به همین ترتیب احتمال آنكه كاراكتر مورد نظر حرف F باشد، 65 درصد تخمین زده است. در این وضعیت، سیستم باید كاراكتری را برگزیند كه دارای درصد احتمال بزرگتر است. در نتیجه در این شبكه عصبی، نرونهایی كه خروجی F را تجویز میكنند، باید نادیده گرفته شوند یا inhibit شوند. به چنین فرایندی، lateral inhibition گفته میشود.
نوع دیگری از ارتباط بین نرونی در شبكههای عصبی به ارتباط بازخورد یا feedback معروف است. در این نوع از ارتباطات، خروجی یك لایه نرونی به لایه قبلی (یا به لایهای كه چند مرحله پایینتر است) اتصال داده میشود. در نرمافزارهای پیشرفته شبكههای عصبی، كاربر و طراح شبكه عصبی میتواند نوع ارتباطات بین نرونها و لایههای آنها را تعیین كند.
آموزش شبكههای عصبی
تا اینجا از ساختار شبكههای عصبی صحبت كردیم. گفتیم كه شبكههای عصبی میتوانند بر اساس طراحی خود سیگنالهای ورودی را پردازش كنند و به سیگنالهای خروجی مورد نظر تبدیل نمایند. به طور معمول، پس از آنكه یك شبكه عصبی طراحی و پیادهسازی شد، باید پارامترهای 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، تفاوتهای بنیادی دو روش محاسباتی را نشان میدهد.
مشخصه
|
روش محاسباتی متداول
(شامل سيستمهای خبره)
|
شبكههای عصبی مصنوعی
|
روش پردازش
|
ترتيبی
|
موازی
|
توابع
|
منطقی (left brained)
|
(estault (right brained
|
روش فراگيري
|
به كمك قواعد (didactically)
|
با مثال (Socratically)
|
كاربرد
|
حسابداری، واژه پردازی، رياضيات،
ارتباطات ديجيتال
|
پردازش حسگرها، تشخيص گفتار، نوشتار، الگو
|
سیستمهای خبره، انشعابی از روش محاسباتی متداول محسوب میشود و در مواردی هم به آن نسل پنجم محاسبات نام دادهاند (نسل اول از كلید و سیمبندی استفاده میكرد، نسل دوم با اختراع ترانزیستور ایجاد شد، نسل سوم از فناوری مدارات مجتمع استفاده میكرد، نسل چهارم با به وجود آمدن زبانهای سطح بالا آغاز شد و نسل پنجم شامل هوش مصنوعی میشود). به طور معمول، یك سیستم خبره شامل دو بخش عمده میشود. یك بخش یا موتور استنتاجی و یك پایگاه دانایی (Knowledge base). موتور استنتاجی، بخشی است كه رابط كاربر را مدیریت میكند و بر فایلها و دسترسی به برنامهها و برنامهریزی كنترل دارد. پایگاه دانایی شامل اطلاعاتی در ارتباط با یك مسئله مشخص است. این پایگاه به متخصصان اجازه میدهد كه قواعد فرایند مشخصی را تعریف نماید. چنین متخصصی نیازی به دانستن روشهای برنامهنویسی نخواهد داشت. او تنها باید كاری كه از كامپیوتر میخواهد را درك كند و شناخت كافی از روش عمل سیستم داشته باشد. درواقع پوسته سیستم بخشی است كه به كامپیوتر میگوید چهكار باید انجام دهد. برنامه لازم برای حل مسئله توسط خود سیستم تولید خواهد شد.
تلاشهایی كه برای اجرایی كردن سیستمهای خبره به كار گرفته شدهاند، با مشكلات مشتركی مواجه بودهاند. با افزایش سطح پیچیدگی سیستمها، منابع كامپیوتری مورد نیاز سیستم به شدت افزایش مییابند و سیستم با كندی بیش از حد روبرو میشود. در حقیقت تجربه نشان داده است كه در وضعیت فعلی، سیستمهای خبره تنها میتوانند در مواقعی مفید واقع شوند كه هدف محدود و مشخصی تعیین شده باشد.
شبكههای عصبی در مسیری گام برمیدارند كه ابزارها توانایی فراگیری و برنامهریزی خود را داشته باشند. ساختارشبكههای عصبی به گونهای است كه قابلیت حل مسئله را بدون كمك فرد متخصص و برنامهریزی خارجی داشته باشند. شبكههای عصبی قادر به یافتن الگوهایی در اطلاعات هستند كه هیچكس، هیچگاه از وجود آنها اطلاع نداشته است.
درحالیكه سیستمهای خبره در عمل به موفقیتهای بسیاری دست یافتهاند، شبكههای عصبی در كاربردهایی همچون دید مصنوعی، تشخیص و تولید پیوسته گفتار، فراگیری ماشینی و نظایر آن با مشكلاتی روبرو بودهاند. در حال حاضر شبكههای عصبی كاملاً وابسته به سرعت پردازنده سیستم اجرا كننده هستند.