پیاده سازی VLSI یك شبكه عصبی آنالوگ مناسب برای الگوریتم های ژنتیك
خلاصه
مفید بودن شبكه عصبی آنالوگ مصنوعی بصورت خیلی نزدیكی با میزان قابلیت آموزش پذیری آن محدود می شود .
این مقاله یك معماری شبكه عصبی آنالوگ جدید را معرفی می كند كه وزنهای بكار برده شده در آن توسط الگوریتم ژنتیك تعیین می شوند .
اولین پیاده سازی VLSI ارائه شده در این مقاله روی سیلیكونی با مساحت كمتر از 1mm كه شامل 4046 سیناپس و 200 گیگا اتصال در ثانیه است اجرا شده است .
از آنجائیكه آموزش می تواند در سرعت كامل شبكه انجام شود بنابراین چندین صد حالت منفرد در هر ثانیه می تواند توسط الگوریتم ژنتیك تست شود .
این باعث می شود تا پیاده سازی مسائل بسیار پیچیده كه نیاز به شبكه های چند لایه بزرگ دارند عملی بنظر برسد .
- مقدمه
شبكه های عصبی مصنوعی به صورت عمومی بعنوان یك راه حل خوب برای مسائلی از قبیل تطبیق الگو مورد پذیرش قرار گرفته اند .
علیرغم مناسب بودن آنها برای پیاده سازی موازی ، از آنها در سطح وسیعی بعنوان شبیه سازهای عددی در سیستمهای معمولی استفاده می شود .
یك دلیل برای این مسئله مشكلات موجود در تعیین وزنها برای سیناپسها در یك شبكه بر پایه مدارات آنالوگ است .
موفقترین الگوریتم آموزش ، الگوریتم Back-Propagation است .
این الگوریتم بر پایه یك سیستم متقابل است كه مقادیر صحیح را از خطای خروجی شبكه محاسبه می كند .
یك شرط لازم برای این الگوریتم دانستن مشتق اول تابع تبدیل نرون است .
در حالیكه اجرای این مسئله برای ساختارهای دیجیتال از قبیل میكروپروسسورهای معمولی و سخت افزارهای خاص آسان است ، در ساختار آنالوگ با مشكل روبرو می شویم .
دلیل این مشكل ، تغییرات قطعه و توابع تبدیل نرونها و در نتیجه تغییر مشتقات اول آنها از نرونی به نرون دیگر و از تراشه ای به تراشه دیگر است و چه چیزی می تواند بدتر از این باشد كه آنها با دما نیز تغییر كنند .
ساختن مدارات آنالوگی كه بتوانند همه این اثرات را جبران سازی كنند امكان پذیر است ولی این مدارات در مقایسه با مدارهایی كه جبران سازی نشده اند دارای حجم بزرگتر و سرعت كمتر هستند .
برای كسب موفقیت تحت فشار رقابت شدید از سوی دنیای دیجیتال ، شبكه های عصبی آنالوگ نباید سعی كنند كه مفاهیم دیجیتال را به دنیای آنالوگ انتقال دهند .
در عوض آنها باید تا حد امكان به فیزیك قطعات متكی باشند تا امكان استخراج یك موازی سازی گسترده در تكنولوژی VLSI مدرن بدست آید .
شبكه های عصبی برای چنین پیاده سازیهای آنالوگ بسیار مناسب هستند زیرا جبران سازی نوسانات غیر قابل اجتناب قطعه می تواند در وزنها لحاظ شود .
مسئله اصلی كه هنوز باید حل شود آموزش است .
حجم بزرگی از مفاهیم شبكه عصبی آنالوگ كه در این زمینه می توانند یافت شوند ، تكنولوژیهای گیت شناور را جهت ذخیره سازی وزنهای آنالوگ بكار می برند ، مثل EEPROM حافظه های Flash .
در نظر اول بنظر می رسد كه این مسئله راه حل بهینه ای باشد .
آن فقط سطح كوچكی را مصرف می كند و بنابراین حجم سیناپس تا حد امكان فشرده می شود (كاهش تا حد فقط یك ترانزیستور) .
دقت آنالوگ می تواند بیشتر از 8 بیت باشد و زمان ذخیره سازی داده (با دقت 5 بیت) تا 10 سال افزایش می یابد .
اگر قطعه بطور متناوب مورد برنامه ریزی قرار گیرد ، یك عامل منفی وجود خواهد داشت و آن زمان برنامه ریزی و طول عمر محدود ساختار گیت شناور است .
بنابراین چنین قطعاتی احتیاج به وزنهایی دارند كه از پیش تعیین شده باشند .
اما برای محاسبه وزنها یك دانش دقیق از تابع تبدیل شبكه ضروری است .
برای شكستن این چرخه پیچیده ، ذخیره سازی وزن باید زمان نوشتن كوتاهی داشته باشد .
این عامل باعث می شود كه الگوریتم ژنتیك وارد محاسبات شود .
با ارزیابی تعداد زیادی از ساختارهای تست می توان وزنها را با بكار بردن یك تراشه واقعی تعیین كرد .
همچنین این مسئله می تواند حجم عمده ای از تغییرات قطعه را جبران سلزی كند ، زیرا داده متناسب شامل خطاهایی است كه توسط این نقایص ایجاد شده اند .
- مقدمه
شبكه های عصبی مصنوعی به صورت عمومی بعنوان یك راه حل خوب برای مسائلی از قبیل تطبیق الگو مورد پذیرش قرار گرفته اند .
علیرغم مناسب بودن آنها برای پیاده سازی موازی ، از آنها در سطح وسیعی بعنوان شبیه سازهای عددی در سیستمهای معمولی استفاده می شود .
یك دلیل برای این مسئله مشكلات موجود در تعیین وزنها برای سیناپسها در یك شبكه بر پایه مدارات آنالوگ است .
موفقترین الگوریتم آموزش ، الگوریتم Back-Propagation است .
این الگوریتم بر پایه یك سیستم متقابل است كه مقادیر صحیح را از خطای خروجی شبكه محاسبه می كند .
یك شرط لازم برای این الگوریتم دانستن مشتق اول تابع تبدیل نرون است .
در حالیكه اجرای این مسئله برای ساختارهای دیجیتال از قبیل میكروپروسسورهای معمولی و سخت افزارهای خاص آسان است ، در ساختار آنالوگ با مشكل روبرو می شویم .
دلیل این مشكل ، تغییرات قطعه و توابع تبدیل نرونها و در نتیجه تغییر مشتقات اول آنها از نرونی به نرون دیگر و از تراشه ای به تراشه دیگر است و چه چیزی می تواند بدتر از این باشد كه آنها با دما نیز تغییر كنند .
ساختن مدارات آنالوگی كه بتوانند همه این اثرات را جبران سازی كنند امكان پذیر است ولی این مدارات در مقایسه با مدارهایی كه جبران سازی نشده اند دارای حجم بزرگتر و سرعت كمتر هستند .
برای كسب موفقیت تحت فشار رقابت شدید از سوی دنیای دیجیتال ، شبكه های عصبی آنالوگ نباید سعی كنند كه مفاهیم دیجیتال را به دنیای آنالوگ انتقال دهند .
در عوض آنها باید تا حد امكان به فیزیك قطعات متكی باشند تا امكان استخراج یك موازی سازی گسترده در تكنولوژی VLSI مدرن بدست آید .
شبكه های عصبی برای چنین پیاده سازیهای آنالوگ بسیار مناسب هستند زیرا جبران سازی نوسانات غیر قابل اجتناب قطعه می تواند در وزنها لحاظ شود .
مسئله اصلی كه هنوز باید حل شود آموزش است .
حجم بزرگی از مفاهیم شبكه عصبی آنالوگ كه در این زمینه می توانند یافت شوند ، تكنولوژیهای گیت شناور را جهت ذخیره سازی وزنهای آنالوگ بكار می برند ، مثل EEPROM حافظه های Flash .
در نظر اول بنظر می رسد كه این مسئله راه حل بهینه ای باشد .
آن فقط سطح كوچكی را مصرف می كند و بنابراین حجم سیناپس تا حد امكان فشرده می شود (كاهش تا حد فقط یك ترانزیستور) .
دقت آنالوگ می تواند بیشتر از 8 بیت باشد و زمان ذخیره سازی داده (با دقت 5 بیت) تا 10 سال افزایش می یابد .
اگر قطعه بطور متناوب مورد برنامه ریزی قرار گیرد ، یك عامل منفی وجود خواهد داشت و آن زمان برنامه ریزی و طول عمر محدود ساختار گیت شناور است .
بنابراین چنین قطعاتی احتیاج به وزنهایی دارند كه از پیش تعیین شده باشند .
اما برای محاسبه وزنها یك دانش دقیق از تابع تبدیل شبكه ضروری است .
برای شكستن این چرخه پیچیده ، ذخیره سازی وزن باید زمان نوشتن كوتاهی داشته باشد .
این عامل باعث می شود كه الگوریتم ژنتیك وارد محاسبات شود .
با ارزیابی تعداد زیادی از ساختارهای تست می توان وزنها را با بكار بردن یك تراشه واقعی تعیین كرد .
همچنین این مسئله می تواند حجم عمده ای از تغییرات قطعه را جبران سلزی كند ، زیرا داده متناسب شامل خطاهایی است كه توسط این نقایص ایجاد شده اند .