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