تلاش محققان در زمينه شبكههاي عصبي نشان داده است كه شبكههاي عصبي، چيزي بيشتر از يك مشت نرون كه به يكديگر اتصال داده شدهاند، هستند. حتي گروهي از محققان سعي داشتهاند كه از اتصالات تصادفي براي ارتباط دادن نرون به يكديگر استفاده كنند كه در اين زمينه به نتايج جالب توجهي دست نيافتند. امروزه مشخص شده است كه در سادهترين مغزهاي بيولوژيك مانند مغز مارها هم ارتباطات بين نرونها بسيار ساختيافته است. در حال حاضر يكي از سادهترين روشهاي ارتباط دهي نرونها در شبكههاي عصبي، آن است كه ابتدا نرونها در گروههاي مشخصي به صورت لايههاي نروني سازماندهي ميشوند و پس از تامين ارتباطات بيننروني در هر لايه، ارتباطات بين لايهها نيز برقرار ميشوند.
اگرچه در كاربردهاي مشخصي ميتوان با موفقيت از شبكههاي عصبي تك لايه استفاده كرد، اما رسم بر آن است كه شبكههاي عصبي حداقل داراي سه لايه باشند (همانطور كه قبلاً اشاره شد، لايه ورودي، لايه خروجي و نهايتاً لايه پنهان يا لايه مياني).
در بسياري از شبكههاي عصبي، اتصالات بيننروني به گونهاي است كه نرونهاي لايههاي مياني، ورودي خود را از تمام نرونهاي لايه پاييني خود (به طور معمول لايه نرونهاي ورودي) دريافت ميكنند. بدين ترتيب در يك شبكه عصبي، سيگنالها به تدريج از يك لايه نروني به لايههاي بالاتر حركت ميكنند و در نهايت به لايه آخر و خروجي شبكه ميرسند. چنين مسير در اصطلاح فني 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، تفاوتهاي بنيادي دو روش محاسباتي را نشان ميدهد.
|
مشخصه |
روش محاسباتي متداول (شامل سيستمهاي خبره) |
شبكههاي عصبي مصنوعي |
|
روش پردازش |
ترتيبي |
موازي |
|
توابع |
منطقي (left brained) |
(estault (right brained |
|
روش فراگيري |
به كمك قواعد (didactically) |
با مثال (Socratically) |
|
كاربرد |
حسابداري، واژه پردازي، رياضيات، ارتباطات ديجيتال |
پردازش حسگرها، تشخيص گفتار، نوشتار، الگو |
جدول 1
سيستمهاي خبره، انشعابي از روش محاسباتي متداول محسوب ميشود و در مواردي هم به آن نسل پنجم محاسبات نام دادهاند (نسل اول از كليد و سيمبندي استفاده ميكرد، نسل دوم با اختراع ترانزيستور ايجاد شد، نسل سوم از فناوري مدارات مجتمع استفاده ميكرد، نسل چهارم با به وجود آمدن زبانهاي سطح بالا آغاز شد و نسل پنجم شامل هوش مصنوعي ميشود). به طور معمول، يك سيستم خبره شامل دو بخش عمده ميشود. يك بخش يا موتور استنتاجي و يك پايگاه دانايي (
Knowledge base). موتور استنتاجي، بخشي است كه رابط كاربر را مديريت ميكند و بر فايلها و دسترسي به برنامهها و برنامهريزي كنترل دارد. پايگاه دانايي شامل اطلاعاتي در ارتباط با يك مسئله مشخص است. اين پايگاه به متخصصان اجازه ميدهد كه قواعد فرايند مشخصي را تعريف نمايد. چنين متخصصي نيازي به دانستن روشهاي برنامهنويسي نخواهد داشت. او تنها بايد كاري كه از كامپيوتر ميخواهد را درك كند و شناخت كافي از روش عمل سيستم داشته باشد. درواقع پوسته سيستم بخشي است كه به كامپيوتر ميگويد چهكار بايد انجام دهد. برنامه لازم براي حل مسئله توسط خود سيستم توليد خواهد شد.
تلاشهايي كه براي اجرايي كردن سيستمهاي خبره به كار گرفته شدهاند، با مشكلات مشتركي مواجه بودهاند. با افزايش سطح پيچيدگي سيستمها، منابع كامپيوتري مورد نياز سيستم به شدت افزايش مييابند و سيستم با كندي بيش از حد روبرو ميشود. در حقيقت تجربه نشان داده است كه در وضعيت فعلي، سيستمهاي خبره تنها ميتوانند در مواقعي مفيد واقع شوند كه هدف محدود و مشخصي تعيين شده باشد.
شبكههاي عصبي در مسيري گام برميدارند كه ابزارها توانايي فراگيري و برنامهريزي خود را داشته باشند. ساختارشبكههاي عصبي به گونهاي است كه قابليت حل مسئله را بدون كمك فرد متخصص و برنامهريزي خارجي داشته باشند. شبكههاي عصبي قادر به يافتن الگوهايي در اطلاعات هستند كه هيچكس، هيچگاه از وجود آنها اطلاع نداشته است.
درحاليكه سيستمهاي خبره در عمل به موفقيتهاي بسياري دست يافتهاند، شبكههاي عصبي در كاربردهايي همچون ديد مصنوعي، تشخيص و توليد پيوسته گفتار، فراگيري ماشيني و نظاير آن با مشكلاتي روبرو بودهاند. در حال حاضر شبكههاي عصبي كاملاً وابسته به سرعت پردازنده سيستم اجرا كننده هستند.
منبع:ماهنامه شبکه - شماره ۵۲