آشنايي مقدماتي با شبكه هاي عصبي مصنوعي
دانشكده مهندسي برق، دانشگاه صنعتي شريف
شبكه هاي عصبي نوعي مدلسازي سادهانگارانه از سيستمهاي عصبي واقعي هستند كه كاربرد فراواني در حل مسائل مختلف در علوم دارند. حوزه كاربرد اين شبكهها آنچنان گسترده است كه از كاربردهاي طبقهبندي گرفته تا كاربردهايي نظير درون يابي، تخمين، آشكارسازي و … را شامل مي شود. شايد مهمترين مزيت اين شبكه ها، توانايي وافر آنها در كنار سهولت استفاده از آن ها باشد.
به موازات گسترش كاربردهاي شبكه عصبي، نياز به فراگيري آن و آشنايي با تواناييها و قابليتهاي آن رخ مي نمايد. در اين راستا، تأليفات زيادي وجود دارد كه مي توان به آن ها استناد نمود اما در اكثر قريب به اتفاق اين خودآموزها، مباني اين شبكهها با تفاصيل و جزئيات بسيار بيان شده است و مسلماً به عنوان قدم اول براي آشنايي، حجيم و وقت گير به نظر مي رسد. لذا بر آن شديم تا با درنظر گرفتن نياز دانشجويان، به ويژه در كاربردهاي پروژه اي در مقطع كارشناسي، مقدماتي را جهت آشنايي با اين شبكهها تدوين كنيم به نحوي كه به عنوان يك خودآموز، در پيمودن قدمهاي اوليه براي آشنايي و سپس تسلط بر مفاهيم مقدماتي آن ها، راهگشا باشد. بنابراين در اين جزوه سعي كرده ايم مباني مدل سازي و تحليل يك سيستم با استفاده از شبكه هاي عصبي بيان شده و شبكه چندلايه پرسپترون، به عنوان يكي از پركاربردترين شبكه ها مرور گردد. همچنين رويكرد در پيش رو بر اين است كه در كنار بيان اجمالي روابط رياضي مورد نياز، به نكات پياده سازي و تكنيكهاي عملي استفاده از آن ها اشاره خواهيم كرد.
با توجه به گستردگي مطالب، در اين نوشتار سعي بر آن شده است كه از پرداختن به جزئيات غيرضروري پرهيز شود. لذا در اين نسخه، تنها به مفاهيم مقدماتي و ضروري شبكه هاي عصبي مصنوعي خواهيم پرداخت، به اين اميد كه دانشجويان عزيز بتوانند با فراگيري اين نكات، مسير فراگيري و به كار گيري اين شبكهها را سادهتر بپيمايند. در اين راستا، رئوس
مطالبي كه به آنها خواهيم پرداخت عبارتند از:
• مفهوم شبكه
• مدل رياضي شبكه عصبي مصنوعي
• پرسپترون چند لايه
• آموزش شبكه به روش پسانتشار خطا
• روند شبيه سازي مسائل
مفهوم شبكه
يكي از روش هاي كارآمد در حل مسائل پيچيده، شكستن آن به زيرمسأله هاي ساده تر است كه هر كدام از اين زيربخشها به نحو سادهتري قابل درك و توصيف باشند. در حقيقت يك شبكه، مجموعه اي از اين ساختارهاي ساده است كه در كنار يكديگر سيستم پيچيده نهايي را توصيف مي كنند. شبكه ها انواع مختلفي دارند اما همگي آنها از دو مؤلفه تشكيل مي شوند:
1. مجموعهاي از گرهها؛ هر گره در حقيقت واحد محاسباتي شبكه است كه ورودي ها را گرفته و برروي آن پردازش انجام ميدهد تا خروجي بدست آيد. پردازش انجام شده توسط گره مي تواند از ساده ترين نوع پردازش ها نظير جمع كردن ورودي ها تا پيچيده ترين محاسبات را شامل شود. در حالت خاص، يك گره ميتواند خود، شامل يك شبكه ديگر باشد.
2. اتصالات بين گرهها؛ اين اتصالات نحوه گذر اطلاعات بين گره ها را مشخص مي كند. در حالت كلي اتصالات .باشند (Bidirectional) يا دوسويه (Unidirectional) مي توانند تك سويه تعامل بين گره ها از طريق اين اتصالات سبب بروز يك رفتار كلي از سوي شبكه مي گردد كه چنين رفتاري به تنهايي در هيچ يك از المانهاي شبكه ديده نميشود. جامع بودن اين رفتار كلي بر عملكرد موجود در هر گره سبب تبديل شبكه به يك ابزار توانمند ميشود. به عبارت ديگر، مجموعه سادهاي از المانها وقتي در قالب يك شبكه باشند مي توانند رفتاري از خود بروز دهند كه هيچ يك از آن المان ها به تنهايي قادر به بروز چنين مشخصه اي نبود.
مدل رياضي شبكه عصبي مصنوعي
به هنگام مدل كردن اعصاب، از پيچيدگي هاي آن ها صرف نظر مي شود و تنها به مفاهيم پايه اي بها داده مي شود، چرا كه در غير اين صورت رويكرد مدلسازي بسيار دشوار خواهد شد. در يك نگاه ساده، مدل يك عصب بايد شامل وروديهايي باشد كه در نقش سيناپس انجام وظيفه كنند. اين ورودي ها در و زنهايي ضرب مي شوند تا قدرت سيگنال را تعيين كنند. نهايتاً يك عملگر رياضي تصميم گيري مي كند كه آيا نرون فعال شود يا خير و اگر جواب مثبت باشد، ميزان خروجي را مشخص مي سازد.
پرسپترون چند لايه
هرچند نحوه مدل كردن نرون جزء اساسيترين نكات كليدي در كارآيي شبكه عصبي ميباشد اما نحوه برقراري اتصالات و چيدمان (توپولوژي) شبكه نيز فاكتور بسيار مهم و اثرگذاري است. بايد توجه داشت كه توپولوژي مغز انسان آنقدر پيچيده است كه نميتوان از آن به عنوان مدلي براي اعمال به شبكه عصبي استفاده نمود، چرا كه مدلي كه ما استفاده مي كنيم، يك مدل ساده شده است در حالي كه چيدمان مغز از المانهاي بسيار زيادي استفاده مي كند.
به منظور آموزش شبكه و اصلاح وزنها تا رسيدن به يك خطاي معنادار، روش هاي بسيار زيادي وجود دارد. يكي از مشهورترين اين روش ها، الگوريتم پس انتشار خطا (Error back propagation algorithm) است كه در ادامه توضيح داده ميشود.
الگوريتم پس انتشار خطا:
اين الگوريتم كه در سال 1986 توسط روملهارت و مككليلاند پيشنهاد گرديد، در شبكههاي عصبي پيشسو (Feed forward) مورد استفاده قرار مي گيرد. پيش سو بودن به اين معناست كه نرون هاي مصنوعي در لايه هاي متوالي قرار گرفته اند و خروجي (سيگنال) خود را رو به جلو مي فرستند. واژه پس انتشار نيز به معناي اين است كه خطاها به سمت عقب در شبكه تغذيه مي شوند تا وزنها را اصلاح كنند و پس از آن، مجدداً ورودي مسير پيشسوي خود تا خروجي را تكرار كند. روش پس انتشار خطا از روش هاي باسرپرست است به اين مفهوم كه نمونه هاي ورودي برچسب خوردهاند و خروجي مورد انتظار هر يك از آنها از پيش دانسته است. لذا خروجي شبكه با اين خروجي هاي ايده آل مقايسه شده و خطاي شبكه محاسبه ميگردد. در اين الگوريتم ابتدا فرض بر اين است كه وزنهاي شبكه به طور تصادفي انتخاب شده اند. در هر گام خروجي شبكه محاسبه شده و بر حسب ميزان اختلاف آن با خروجي مطلوب، وزن ها تصحيح مي گردند تا در نهايت اين خطا، مي نيمم شود. در الگوريتم پس انتشار خطا، تابع تحريك هر عصب به صورت جمع وزندار ورودي هاي مربوط به آن عصب درنظر گرفته مي شود.