نمايش پست تنها
قديمي ۰۷-۱۹-۱۳۸۸, ۰۱:۲۱ بعد از ظهر   #3 (لینک دائم)
Astaraki Female
Administrator
 
آواتار Astaraki
 
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: تهران-کرج!
پست ها: 3,465
تشكرها: 754
16,337 تشكر در 3,127 پست
My Mood: Mehrabon
ارسال پيغام Yahoo به Astaraki
Smile عمليات شبكه‌هاي عصبي - Neural Networks (قسمت دوم)

اشاره :
عمليات شبكه‌هاي عصبي

تا اينجا تمام توجه ما معطوف ساختار دروني يك نرون مصنوعي يا المان پردازشي بود. اما بخش مهم ديگري در مراحل طراحي يك شبكه عصبي نيز وجود دارد. در واقع هنر يك طراح شبكه‌هاي عصبي مي‌تواند در چگونگي تركيب نرون‌ها در يك شبكه (neuran Clustering)، متجلي شود. علوم بيولوژي نشان داده‌اند كه كلاسترينگ نرون‌ها در


شكل 1

شبكه عصبي مغز ما به‌گونه‌اي است كه ما را قادر مي‌سازد تا اطلاعات را به‌ صورتي پويا، تعاملي و خودسامان (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 محسوب مي‌شوند (توپولوژي نام شاخه‌اي از رياضيات است كه در آن نگاشت از يك فضا به فضاي ديگر بدون تغيير مشخصه‌هاي هندسي، مورد بررسي قرار مي‌گيرد). گروه‌بندي‌هاي سه‌بعدي كه در ساختار مغز پستانداران يافت شده است، نمونه‌اي از مرتب‌سازي توپولوژيك محسوب مي‌شوند. كوهنن معتقد است كه فقدان ملاحظات توپولوژيك در مدل‌هاي عصبي امروزي، باعث مي‌شود كه شبكه‌هاي عصبي امروزي، مدل‌هاي ساده شده‌اي از شبكه‌هاي عصبي واقعي موجود در مغز محسوب شوند. در هر صورت اين حوزه از مبحث شبكه‌هاي عصبي، هنوز در مرحله تحقيقات آزمايشگاهي قرارداد و كاربرد واقعي نيافته است.
Astaraki آفلاين است   پاسخ با نقل قول
از Astaraki تشكر كرده است:
shide (۰۱-۲۳-۱۳۹۰)