(Neural Networks)
مسعود سعيدي
شبكههاي عصبي را ميتوان با اغماض زياد، مدلهاي الكترونيكي از ساختار عصبي مغز انسان ناميد. مكانيسم فراگيري و آموزش مغز اساساً بر تجربه استوار است. مدلهاي الكترونيكي شبكههاي عصبي طبيعي نيز بر اساس همين الگو بنا شدهاند و روش برخورد چنين مدلهايي با مسائل، با روشهاي محاسباتي كه بهطور معمول توسط سيستمهاي كامپيوتري در پيش گرفته شدهاند، تفاوت دارد. ميدانيم كه حتي سادهترين مغزهاي جانوري هم قادر به حل مسائلي هستند كه اگر نگوييم كه كامپيوترهاي امروزي از حل آنها عاجز هستند، حداقل در حل آنها دچار مشكل ميشوند. به عنوان مثال، مسائل مختلف شناسايي الگو، نمونهاي از مواردي هستند كه روشهاي معمول محاسباتي براي حل آنها به نتيجه مطلوب نميرسند. درحاليكه مغز سادهترين جانوران بهراحتي از عهده چنين مسائلي بر ميآيد. تصور عموم كارشناسان IT بر آن است كه مدلهاي جديد محاسباتي كه بر اساس شبكههاي عصبي بنا ميشوند، جهش بعدي صنعت IT را شكل ميدهند. تحقيقات در اين زمينه نشان داده است كه مغز، اطلاعات را همانند الگوها (pattern) ذخيره ميكند. فرآيند ذخيرهسازي اطلاعات بهصورت الگو و تجزيه و تحليل آن الگو، اساس روش نوين محاسباتي را تشكيل ميدهند. اين حوزه از دانش محاسباتي (computation) به هيچ وجه از روشهاي برنامهنويسي سنتي استفاده نميكند و بهجاي آن از شبكههاي بزرگي كه بهصورت موازي آرايش شدهاند و تعليم يافتهاند، بهره ميجويد. در ادامه اين نوشته به اين واژگان كه در گرايش شبكههاي عصبي، معاني ويژهاي دارند، بيشتر خواهيم پرداخت.
شباهت با مغز
اگرچه مكانيسمهاي دقيق كاركرد مغز انسان (يا حتي جانوران) بهطور كامل شناخته شده نيست، اما با اين وجود جنبههاي شناخته شدهاي نيز وجود دارند كه الهام بخش تئوري شبكههاي عصبي بودهاند. بهعنوان مثال، يكي ازسلولهاي عصبي، معروف به نرون (Neuron) است كه دانش بشري آن را بهعنوان سازنده اصلي مغز ميانگارد. سلولهاي عصبي قادرند تا با اتصال بهيكديگر تشكيل شبكههاي عظيم بدهند. گفته ميشود كه هر نرون ميتواند به هزار تا ده هزار نرون ديگر اتصال يابد (حتي در اين مورد عدد دويست هزار هم به عنوان يك حد بالايي ذكر شده است).
قدرت خارقالعاده مغز انسان از تعداد بسيار زياد نرونها و ارتباطات بين آنها ناشي ميشود.
ساختمان هر يك از نرونها نيز بهتنهايي بسيار پيچيده است. هر نرون از بخشها و زيرسيستمهاي زيادي تشكيل شده است كه از مكانيسمهاي كنترلي پيچيدهاي استفاده ميكنند. سلولهاي عصبي ميتوانند از طريق مكانيسمهاي الكتروشيميايي اطلاعات را انتقال دهند. برحسب مكانيسمهاي بهكاررفته در ساختار نرونها، آنها را به بيش از يكصدگونه متفاوت طبقهبندي ميكنند. در اصطلاح فني، نرونها و ارتباطات بين آنها، فرايند دودويي(Binary)، پايدار (Stable) يا همزمان (Synchronous) محسوب نميشوند.
در واقع، شبكههاي عصبي شبيهسازي شده يا كامپيوتري، فقط قادرند تا بخش كوچكي از خصوصيات و ويژگيهاي شبكههاي عصبي بيولوژيك را شبيهسازي كنند. در حقيقت، از ديد يك مهندس نرمافزار، هدف از ايجاد يك شبكه عصبي نرمافزاري، بيش از آنكه شبيهسازي مغز انسان باشد، ايجاد مكانيسم ديگري براي حل مسائل مهندسي با الهام از الگوي رفتاري شبكههاي بيولوژيك است.
روش كار نرونها شكل 1
در شكل يك، نماي ساده شدهاي از ساختار يك نرون بيولوژيك نمايش داده شده است. بهطور خلاصه، يك نرون بيولوژيك، پس از دريافت سيگنالهاي ورودي (به شكل يك پالس الكتريكي) از سلولهاي ديگر، آن سيگنالها را با يكديگر تركيب كرده و پس از انجام يك عمل (operation) ديگر بر روي سيگنال تركيبي، آن را بهصورت خروجي ظاهر ميسازد.

همانطور كه در تصوير مشاهده ميكنيد، نرونها از چهار بخش اصلي ساخته شدهاند. دندريتها (Dendrite)، سوما (Soma)، اكسان (Axon) و بالاخره، سيناپس (synapse) دندريتها، همان اجزايي هستند كه بهشكل رشتههاي طويل از مركز سلول به اطراف پراكنده ميشوند. دندريتها نقش كانالهاي ارتباطي را براي انتقالدادن سيگنالهاي الكتريكي به مركز سلول بر عهده دارند. در انتهاي دندريتها، ساختار بيولوژيكي ويژهاي بهنام سيناپس واقع شده است كه نقش دروازههاي اتصالي كانالهاي ارتباطي را ايفا ميكند. در واقع سيگنالهاي گوناگون از طريق سيناپسها و دندريتها به مركز سلول منتقل ميشوند و در آنجا با يكديگر تركيب ميشوند. عمل تركيب كه به آن اشاره كرديم، ميتواند يك عمل جمع جبري ساده باشد. اصولاً اگر چنين نيز نباشد، در مدلسازي رياضي ميتوان آنرا يك عمل جمع معمولي در نظر گرفت كه پس از آن تابع ويژهاي بر روي سيگنال اثر داده ميشود و خروجي به شكل سيگنال الكتريكي متفاوتي از طريق اكسان (و سيناپس آن) به سلولهاي ديگر انتقال داده ميشود.
البته تحقيقات جديد نمايانگر اين واقعيت هستند كه نرونهاي بيولوژيك بسيار پيچيدهتر از مدل سادهاي هستند كه در بالا تشريح شد. اما همين مدل ساده ميتواند زيربناي مستحكمي براي دانش شبكههاي عصبي مصنوعي (Artificial Neural Network = ANN) تلقي گردد و متخصصان گرايش شبكههاي عصبي يا هوش مصنوعي ميتوانند با پيگيري كارهاي دانشمندان علوم زيستشناسي، به بنيانگذاري ساختارهاي مناسبتري در آينده دست بزنند.
مدل رياضي شكل 2 شكل 3
در متون فني براي نمايش مدل سادهاي كه در بالا تشريح گرديد، بهطور معمول از شكلي مشابه شكل 2 استفاده ميشود. در اين شكل كلاسيك، از علامت p براي نشان دادن يك سيگنال ورودي استفاده ميشود. در واقع در اين مدل، يك سيگنال ورودي پس از تقويت (يا تضعيف) شدن به اندازه پارامتر w، بهصورت يك سيگنال الكتريكي با اندازه pw وارد نرون ميشود. بهجهات سادهسازي مدل رياضي، فرض ميشود كه در هسته سلول عصبي، سيگنال ورودي با سيگنال ديگري به اندازه b جمع ميگردد. در واقع سيگنال b خود به معني آن است كه سيگنالي به اندازه واحد در پارامتري مانند b ضرب (تقويت يا تضعيف) ميشود. مجموع حاصل، يعني سيگنالي به اندازه pw + b، قبل از خارج شدن از سلول تحت عمل يا فرآيند ديگري واقع ميشود كه در اصطلاح فني به آن تابع انتقال (Transfer Function) ميگويند. اين موضوع در شكل بهوسيله جعبهاي نمايش داده شده است كه روي آن علامت f قرار داده شده است. ورودي اين جعبه همان سيگنال pw + b است و خروجي آن يا همان خروجي سلول، با علامت a نشانه گذاري شده است. در رياضي، بخش آخر مدلسازي توسط رابطه (a = f(pw + b نمايش داده ميشود. پارامتر w يا همان ضريبي كه سيگنال ورودي p در آن ضرب ميشود، در اصطلاح رياضي به نام پارامتر وزن يا weight نيز گفته ميشود.
زمانيكه از كنار هم قرار دادن تعداد بسيار زيادي از سلولهاي فوق يك شبكه عصبي بزرگ ساخته شود، شبكهاي در دست خواهيم داشت كه رفتار آن علاوه بر تابع خروجي f، كاملاً به مقادير w و b وابسته خواهد بود. در چنين شبكه بزرگي، تعداد بسيار زيادي از پارامترهاي w و b بايد توسط طراح شبكه مقداردهي شوند. اين پروسه از كار، در اصطلاح دانش شبكههاي عصبي، به فرآيند يادگيري معروف است. در واقع در يك آزمايش واقعي، پس از آنكه سيگنالهاي ورودي چنين شبكه بزرگي اتصال داده شدند، طراح شبكه با اندازهگيري خروجي و با انتخاب پارامترهايw و b بهگونهاي كه خروجي مطلوب بهدست آيد، شبكه را <آموزش> ميدهد. به اين ترتيب پس از آنكه چنين شبكه به ازاي مجموعهاي از وروديها براي ساختن خروجيهاي مطلوب <آموزش> ديد، ميتوان از آن براي حل مسائلي كه از تركيب متفاوتي از وروديها ايجاد ميشوند، بهره برد.

تابع f ميتواند بر حسب كاربردهاي گوناگون بهطور رياضي، به شكل هاي متفاوتي انتخاب شود. در برخي از كاربردها، پاسخ مسائل از نوع دودويي است. مثلاً مسأله بهگونهاي است كه خروجي شبكه عصبي بايد چيزي مانند <سياه> يا <سفيد> (يا <آري> يا <نه>) باشد. در واقع چنين مسائلي نياز به آن دارند كه وروديهاي دنياي واقعي به مقادير گسسته مانند مثال فوق تبديل شوند. حتي ميتوان حالاتي را در نظر گرفت كه خروجي دودويي نباشد، اما همچنان گسسته باشد. به عنوان مثال، شبكهاي را در نظر بگيريد كه خروجي آن بايد يكي از حروف الفبا، مثلاً از بين كاراكترهاي اسكي (يا حتي يكي از پنجاه هزار كلمه متداول زبان انگليسي) باشد. در چنين كاربردهايي، روش حل مسئله نميتواند صرفاً بر جمع جبري سيگنالهاي ورودي تكيه نمايد. در اين كاربردها، ويژگيهاي خواسته شده فوق، در تابع خروجي يا تابع انتقال f گنجانيده ميشوند. مثلاً اگر قرار باشد خروجي فقط يكي از مقادير صفر يا يك را شامل شود، در اين صورت ميتوان تابع خروجي شبكه عصبي را به شكل بخش a شكل شماره 3 انتخاب كرد. در اين حالت، خروجي چنين شبكهاي فقط ميتواند بر حسب وروديهاي متفاوت، مقدار يك يا صفر باشد.
در گروه ديگري از مسائلي كه حل آنها به شبكههاي عصبي واگذار ميشود، خروجي شبكه عصبي الزاماً بين مقادير معلوم و شناخته شده واقع نميشود. مسائلي از نوع شناسايي الگوهاي تصويري، نمونهاي از چنين مواردي محسوب ميشوند. شبكههاي عصبي در اين موارد، بايد بهگونهاي باشند كه قابليت توليد مجموعه نامتناهي از پاسخها را داشته باشند. رفتار حركتي يك روبات نمونهاي از <هوشي> است كه چنين شبكههاي عصبي ميتوانند فراهم آورند. اما در چنين شبكههايي هم لازم خواهد بود كه خروجي بين مقادير مشخصي محدود شده باشد (موضوع محدود شدن خروجي بين دو مقدار حدي ماكزيمم و مينيمم را در اينجا با موضوع قبلي اشتباه نگيريد. در اين مورد خروجي مسأله اساساً گسسته نيست و حتي در بين چنين مقادير حدي، ميتوان به تعداد نامتناهي خروجي دست يافت). اهميت اين موضوع زماني آشكار ميشود كه از مثال واقعي كمك گرفته شود. فرض كنيد قراراست از شبكه عصبي براي كنترل حركت بازوي يك روبات استفاده شود. در صورتيكه خروجي يك شبكه عصبي براي كنترل نيروي حركتي بهكار گرفته شود، طبيعي خواهد بود كه اگر خروجي شبكه محدود نشده باشد، ممكن است بازوي روبات بر اثر حركت بسيار سريع، به خود و يا محيط اطراف آسيب برساند. در چنين مواردي ممكن است از تابع انتقال بهشكل بخش b شكل شماره 3 استفاده شود.

قبل از آنكه به بخش ديگري از موضوع شبكههاي عصبي بپردازيم، بايد يك نكته را يادآوري كنيم كه همانطور كه در ابتداي اين بخش تشريح شد، سلولهاي عصبي داراي وروديهاي متعددي هستند و خروجي آنها نيز الزاماً محدود به يك خروجي نيست. بر اين اساس زماني كه بخواهيم از مدلسازي رياضي براي مدل كردن يك سلول عصبي استفاده كنيم، بهجاي آنكه همانند شكل 2 از يك ورودي p و يك خروجي a استفاده كنيم، از يك بردار p و يك بردار a سخن ميگوييم. بدين ترتيب بدون آنكه نياز به اعمال تغييري در اين تصوير داشته باشيم، ميتوانيم از آن براي مدلسازي سلولي با n ورودي (p1,p2,p3 . . . pn) و به همين ترتيب m خروجي (a1,a2,am) استفاده كنيم. توجه داشته باشيد كه در اين صورت، تعداد عناصر b و w نيز به تناسب افزايش مييابند و هر يك به n عدد افزايش مييابند.
پيادهسازيهاي الكترونيكي نرونهاي مصنوعي شكل 4
نرمافزارهايي كه در آنها از شبكههاي عصبي استفاده شده است، نرونهاي شبكه را المان پردازنده (Processing element) مينامند. بهطور معمول در محصولات نرمافزاري، المانهاي پردازنده قابليت بسيار بيشتري از نمونه سادهشدهاي كه در بخشهاي پيشين تشريح كرديم، دارند. در شكل شماره 4، نمايي با جزئيات بيشتر از يك نرون مصنوعي را نشان ميدهد.

در اين مدل، وروديها در نخستين گام، در ضريب وزني (weighting factor) متناظر خود ضرب ميشوند. در مرحله بعد، وروديهايي كه تغيير مقياس دادهاند وارد واحدي ميشوند كه در آن سيگنالهاي ورودي با هم تركيب ميشوند. بهطور معمول عمل تركيب در اين واحد همان عمل جمع جبري است، اما در اصول، ميتوان در اين واحد، وروديها را به روشهاي ديگري علاوه بر عمل جمع معمولي نيز با يكديگر تركيب كرد. مثلاً ميتوان بهجاي عمل جمع، از عمل متوسط گيري، انتخاب بزرگترين، انتخاب كوچكترين، عمل OR يا AND منطقي هم استفاده كرد. در واقع هدف نهايي در اين واحد آن است كه از تعداد n ورودي، يك سيگنال خروجي براي ارائه به بخشهاي بعدي فرايند، بهدست آيد. انتخاب نوع <عمل> در اين واحد، موضوع دقيقي است كه كاملاً به كاربرد مسأله وابسته است.
![]() |
|
شكل 4 |
بهطور معمول در نرمافزارهاي تجاري، امكان انتخاب و حتي ساختن توابع گوناگون براي اين واحد، از طرف نرمافزار به كاربران داده ميشود. حتي ميتوان كاربردهايي يافت كه در آنها، عمل تركيب در اين واحد، وابسته به زمان باشد و در زمانهاي گوناگون پردازش مسأله، عمليات مختلفي براي تركيب كردن وروديها بهكار برده شوند.
در هر صورت، پس از آنكه وروديها با يكديگر تركيب شدند، سيگنال حاصل به واحد ديگري كه در آن تابع انتقال يا Transfer Function به سيگنال اعمال ميشود، هدايت ميگردد. خروجي اين بخش، سيگنالهاي حقيقي خواهند بود. بدين ترتيب جعبهاي در دست خواهيم داشت كه تعداد n عدد سيگنال ورودي را به m عدد سيگنال خروجي تبديل ميكند. در عمل توابع انتقالي كه در بخش انتهايي نمودار شكل 4 بهكار برده ميشوند، معمولاً يكي از توابع سينوسي، تانژانت هذلولي، sigmoid و نظاير اينها است. در تصوير شماره 5، نمونهاي از يك تابع انتقال از نوع sigmoid نمايش داده شده است. همانطور كه در اين شكل مشاهده ميكنيد، اين تابع انتقال، سيگنال خروجي واحد تركيب را به سيگنال خروجي تبديل ميكند كه مقدار (يا اندازه آن) بين صفر و يك ميتواند باشد.
در عمل، سيگنالِ خروجي يك المان پردازنده ميتواند برحسب نوع كاربرد، به المانهاي پردازشي ديگر و يا به اتصالات ديگر خارج از شبكه عصبي هدايت شود. در واقع تمامي شبكههاي عصبي بر اساس ساختار المانهاي پردازشي فوق كار ميكنند. در قسمت بعدي اين مقاله به تشريح عمليات در شبكههاي عصبي و آموزش اين شبكهها ميپردازیم .
عمليات شبكههاي عصبي شكل 1
تا اينجا تمام توجه ما معطوف ساختار دروني يك نرون مصنوعي يا المان پردازشي بود. اما بخش مهم ديگري در مراحل طراحي يك شبكه عصبي نيز وجود دارد. در واقع هنر يك طراح شبكههاي عصبي ميتواند در چگونگي تركيب نرونها در يك شبكه (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 محسوب ميشوند (توپولوژي نام شاخهاي از رياضيات است كه در آن نگاشت از يك فضا به فضاي ديگر بدون تغيير مشخصههاي هندسي، مورد بررسي قرار ميگيرد). گروهبنديهاي سهبعدي كه در ساختار مغز پستانداران يافت شده است، نمونهاي از مرتبسازي توپولوژيك محسوب ميشوند. كوهنن معتقد است كه فقدان ملاحظات توپولوژيك در مدلهاي عصبي امروزي، باعث ميشود كه شبكههاي عصبي امروزي، مدلهاي ساده شدهاي از شبكههاي عصبي واقعي موجود در مغز محسوب شوند. در هر صورت اين حوزه از مبحث شبكههاي عصبي، هنوز در مرحله تحقيقات آزمايشگاهي قرارداد و كاربرد واقعي نيافته است.
مشخصه روش محاسباتي متداول شبكههاي عصبي مصنوعي روش پردازش ترتيبي موازي توابع منطقي (left brained) (estault (right brained روش فراگيري به كمك قواعد (didactically) با مثال (Socratically) كاربرد حسابداري، واژه پردازي، رياضيات، پردازش حسگرها، تشخيص گفتار، نوشتار، الگو
تفاوتهاي شبكههاي عصبي با روشهاي محاسباتي متداول و سيستمهاي خبره
گفتيم كه شبكههاي عصبي روش متفاوتي براي پردازش و آناليز اطلاعات ارائه ميدهند. اما نبايد اين گونه استنباط شود كه شبكههاي عصبي ميتوانند براي حل تمام مسائل محاسباتي مورد استفاده واقع شوند. روشهاي محاسباتي متداول همچنان براي حل گروه مشخصي از مسائل مانند امور حسابداري، انبارداري و محاسبات عددي مبتني بر فرمولهاي مشخص، بهترين گزينه محسوب ميشوند. جدول 1، تفاوتهاي بنيادي دو روش محاسباتي را نشان ميدهد.
(شامل سيستمهاي خبره)
ارتباطات ديجيتال
جدول 1
سيستمهاي خبره، انشعابي از روش محاسباتي متداول محسوب ميشود و در مواردي هم به آن نسل پنجم محاسبات نام دادهاند (نسل اول از كليد و سيمبندي استفاده ميكرد، نسل دوم با اختراع ترانزيستور ايجاد شد، نسل سوم از فناوري مدارات مجتمع استفاده ميكرد، نسل چهارم با به وجود آمدن زبانهاي سطح بالا آغاز شد و نسل پنجم شامل هوش مصنوعي ميشود). به طور معمول، يك سيستم خبره شامل دو بخش عمده ميشود. يك بخش يا موتور استنتاجي و يك پايگاه دانايي (Knowledge base). موتور استنتاجي، بخشي است كه رابط كاربر را مديريت ميكند و بر فايلها و دسترسي به برنامهها و برنامهريزي كنترل دارد. پايگاه دانايي شامل اطلاعاتي در ارتباط با يك مسئله مشخص است. اين پايگاه به متخصصان اجازه ميدهد كه قواعد فرايند مشخصي را تعريف نمايد. چنين متخصصي نيازي به دانستن روشهاي برنامهنويسي نخواهد داشت. او تنها بايد كاري كه از كامپيوتر ميخواهد را درك كند و شناخت كافي از روش عمل سيستم داشته باشد. درواقع پوسته سيستم بخشي است كه به كامپيوتر ميگويد چهكار بايد انجام دهد. برنامه لازم براي حل مسئله توسط خود سيستم توليد خواهد شد.
تلاشهايي كه براي اجرايي كردن سيستمهاي خبره به كار گرفته شدهاند، با مشكلات مشتركي مواجه بودهاند. با افزايش سطح پيچيدگي سيستمها، منابع كامپيوتري مورد نياز سيستم به شدت افزايش مييابند و سيستم با كندي بيش از حد روبرو ميشود. در حقيقت تجربه نشان داده است كه در وضعيت فعلي، سيستمهاي خبره تنها ميتوانند در مواقعي مفيد واقع شوند كه هدف محدود و مشخصي تعيين شده باشد.
شبكههاي عصبي در مسيري گام برميدارند كه ابزارها توانايي فراگيري و برنامهريزي خود را داشته باشند. ساختارشبكههاي عصبي به گونهاي است كه قابليت حل مسئله را بدون كمك فرد متخصص و برنامهريزي خارجي داشته باشند. شبكههاي عصبي قادر به يافتن الگوهايي در اطلاعات هستند كه هيچكس، هيچگاه از وجود آنها اطلاع نداشته است.
درحاليكه سيستمهاي خبره در عمل به موفقيتهاي بسياري دست يافتهاند، شبكههاي عصبي در كاربردهايي همچون ديد مصنوعي، تشخيص و توليد پيوسته گفتار، فراگيري ماشيني و نظاير آن با مشكلاتي روبرو بودهاند. در حال حاضر شبكههاي عصبي كاملاً وابسته به سرعت پردازنده سيستم اجرا كننده هستند.
منابع:
www.generation5.org/content/2000/nnintro.asp
http://cortex.snowseed.com/neuralnetworks.htm
www.cs.stir.ac.uk/lss/NNIntro/InvSlides.html
:ARTIFICIAL NEURAL NETWORKS TECHNOLOGY by
Dave Anderson and George McNeill

Life has taught me this: to have peace and comfort, I should walk along-side God today and then have faith in him for tomorrow