مقاله پیاده سازی VLSI یک شبکه عصبی آنالوگ مناسب برای الگوریتم های ژنتیک


در حال بارگذاری
11 سپتامبر 2024
فایل ورد و پاورپوینت
2120
2 بازدید
۷۹,۷۰۰ تومان
خرید

توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد

  مقاله پیاده سازی VLSI یک شبکه عصبی آنالوگ مناسب برای الگوریتم های ژنتیک دارای ۳۴ صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است

فایل ورد مقاله پیاده سازی VLSI یک شبکه عصبی آنالوگ مناسب برای الگوریتم های ژنتیک  کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه  و مراکز دولتی می باشد.

توجه : در صورت  مشاهده  بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله پیاده سازی VLSI یک شبکه عصبی آنالوگ مناسب برای الگوریتم های ژنتیک،به هیچ وجه بهم ریختگی وجود ندارد


بخشی از متن مقاله پیاده سازی VLSI یک شبکه عصبی آنالوگ مناسب برای الگوریتم های ژنتیک :

مفید بودن شبکه عصبی آنالوگ مصنوعی بصورت خیلی نزدیکی با میزان قابلیت آموزش پذیری آن محدود می شود .
این مقاله یک معماری شبکه عصبی آنالوگ جدید را معرفی می کند که وزنهای بکار برده شده در آن توسط الگوریتم ژنتیک تعیین می شوند .
اولین پیاده سازی VLSI ارائه شده در این مقاله روی سیلیکونی با مساحت کمتر از ۱mm که شامل ۴۰۴۶ سیناپس و ۲۰۰ گیگا اتصال در ثانیه است اجرا شده است .

از آنجائیکه آموزش می تواند در سرعت کامل شبکه انجام شود بنابراین چندین صد حالت منفرد در هر ثانیه می تواند توسط الگوریتم ژنتیک تست شود .
این باعث می شود تا پیاده سازی مسائل بسیار پیچیده که نیاز به شبکه های چند لایه بزرگ دارند عملی بنظر برسد .

۱- مقدمه
شبکه های عصبی مصنوعی به صورت عمومی بعنوان یک راه حل خوب برای مسائلی از قبیل تطبیق الگو مورد پذیرش قرار گرفته اند .
علیرغم مناسب بودن آنها برای پیاده سازی موازی ، از آنها در سطح وسیعی بعنوان شبیه سازهای عددی در سیستمهای معمولی استفاده می شود .
یک دلیل برای این مسئله مشکلات موجود در تعیین وزنها برای سیناپسها در یک شبکه بر پایه مدارات آنالوگ است .
موفقترین الگوریتم آموزش ، الگوریتم Back-Propagation است .

این الگوریتم بر پایه یک سیستم متقابل است که مقادیر صحیح را از خطای خروجی شبکه محاسبه می کند .
یک شرط لازم برای این الگوریتم دانستن مشتق اول تابع تبدیل نرون است .
در حالیکه اجرای این مسئله برای ساختارهای دیجیتال از قبیل میکروپروسسورهای معمولی و سخت افزارهای خاص آسان است ، در ساختار آنالوگ با مشکل روبرو می شویم .

دلیل این مشکل ، تغییرات قطعه و توابع تبدیل نرونها و در نتیجه تغییر مشتقات اول آنها از نرونی به نرون دیگر و از تراشه ای به تراشه دیگر است و چه چیزی می تواند بدتر از این باشد که آنها با دما نیز تغییر کنند .
ساختن مدارات آنالوگی که بتوانند همه این اثرات را جبران سازی کنند امکان پذیر است ولی این مدارات در مقایسه با مدارهایی که جبران سازی نشده اند دارای حجم بزرگتر و سرعت کمتر هستند .

برای کسب موفقیت تحت فشار رقابت شدید از سوی دنیای دیجیتال ، شبکه های عصبی آنالوگ نباید سعی کنند که مفاهیم دیجیتال را به دنیای آنالوگ انتقال دهند .
در عوض آنها باید تا حد امکان به فیزیک قطعات متکی باشند تا امکان استخراج یک موازی سازی گسترده در تکنولوژی VLSI مدرن بدست آید .
شبکه های عصبی برای چنین پیاده سازیهای آنالوگ بسیار مناسب هستند زیرا جبران سازی نوسانات غیر قابل اجتناب قطعه می تواند در وزنها لحاظ شود .

مسئله اصلی که هنوز باید حل شود آموزش است .
حجم بزرگی از مفاهیم شبکه عصبی آنالوگ که در این زمینه می توانند یافت شوند ، تکنولوژیهای گیت شناور را جهت ذخیره سازی وزنهای آنالوگ بکار می برند ، مثل EEPROM حافظه های Flash .

در نظر اول بنظر می رسد که این مسئله راه حل بهینه ای باشد .
آن فقط سطح کوچکی را مصرف می کند و بنابراین حجم سیناپس تا حد امکان فشرده می شود (کاهش تا حد فقط یک ترانزیستور) .
دقت آنالوگ می تواند بیشتر از ۸ بیت باشد و زمان ذخیره سازی داده (با دقت ۵ بیت) تا ۱۰ سال افزایش می یابد .
اگر قطعه بطور متناوب مورد برنامه ریزی قرار گیرد ، یک عامل منفی وجود خواهد داشت و آن زمان برنامه ریزی و طول عمر محدود ساختار گیت شناور است .
بنابراین چنین قطعاتی احتیاج به وزنهایی دارند که از پیش تعیین شده باشند .

اما برای محاسبه وزنها یک دانش دقیق از تابع تبدیل شبکه ضروری است .
برای شکستن این چرخه پیچیده ، ذخیره سازی وزن باید زمان نوشتن کوتاهی داشته باشد .
این عامل باعث می شود که الگوریتم ژنتیک وارد محاسبات شود .

با ارزیابی تعداد زیادی از ساختارهای تست می توان وزنها را با بکار بردن یک تراشه واقعی تعیین کرد .
همچنین این مسئله می تواند حجم عمده ای از تغییرات قطعه را جبران سلزی کند ، زیرا داده متناسب شامل خطاهایی است که توسط این نقایص ایجاد شده اند .

این مقاله یک معماری شبکه عصبی آنالوگ را توصیف می کند که برای الگوریتم های ژنتیک بهینه شده اند .
سیناپس ها کوچک ۱۰X10m و سریع هستند .

فرکانس اندازه گیری شده شبکه تا ۵۰MHz افزایش می یابد که در نتیجه بیش از ۲۰۰ گیگا اتصال در ثانیه برای آرایه کاملی از ۴۰۹۶ سیناپس بدست می آید .
برای ساختن شبکه های بزرگتر باید امکان ترکیب چندین شبکه کوچکتر روی یک سطح یا روی تراشه های مختلف وجود داشته باشد که با محدود کردن عملکرد آنالوگ به سیناپس ها و ورودیهای نرون بدست می آید .

ورودیهای شبکه و خروجیهای نرون بصورت دیجیتالی کدینگ می شود .
در نتیجه عملکرد سیناپس از ضرب به جمع کاهش می یابد .
این مسئله باعث می شود که حجم سیناپس کوچکتر شود و عدم تطبیق پذیری قطعه بطورکامل جبران سازی شود .
چونکه هر سیناپس یک صفر یا وزن اختصاصی اش را اضافه می کند که می تواند شامل هر تصحیح ضروری باشد .
سیگنالهای آنالوگ بین لایه های شبکه آنالوگ ، بوسیله اتصالات چند بیتی اختیاری بیان می شوند .

شبکه ارائه شده در این مقاله برای یک جریان عددی real-time‌ در محدوده فرکانسی ۱ – ۱۰۰MHz و پهنای ۶۴ بیت بهینه شده است .
قصد داریم که آن را برای کاربردهای انتقال داده مثل DSL‌ سرعت بالا ، پردازش تصویر بر اساس داده دیجیتالی لبه تولید شده توسط تصاویر دوربین بوسیله تراشه پیش پردازش آنالوگی و ارزیابی تناسبی آرایه ترانزیستور قابل برنامه ریزی که در گروه ما توسعه داده شده است بکار ببریم .

۲- تحقق شبکه عصبی

۲-۱- اصول عملکرد
شکل۱ یک بیان سمبولیک از شبکه عصبی دور زننده را نشان می دهد .
هر نرون ورودی (دایره کوچک) بوسیله یک سیناپس (پیکان) به هر نرون خروجی متصل شده است .
نرونهای خروجی توسط مجموعه دومی از نرون های ورودی به داخل شبکه فیدبک شده اند .
نرون های ورودی فقط بجای تقویت کننده ها بکار گرفته می شوند در صورتیکه پردازش در نرون های خروجی انجام می شود .

این معماری شبکه های چند لایه مجازی را با انتخاب وزنهای مناسب ارائه می دهد .
یک مثال برای ساختار ۲ لایه در سمت راست شکل ۱ نشان داده شده است .
وزنهای سیناپس هایی که در حالت صفر تنظیم شده اند با پیکانهای خط چین نشان داده شده اند .
یک شبکه فیدبک آموزش داده شده توسط الگوریتم ژنتیک معمولا تعداد ثابتی از لایه ها ندارد .
البته الگوریتم می تواند به تعداد ثابتی از لایه ها محدود شود ، همانطوریکه در شکل۱ نشان داده شده است .

اما بنظر می رسد که معمولا بهتر است اجازه داده شود تا الگوریتم ژنتیک بهترین تعداد لایه ها را انتخاب کند .
همچنین بین لایه های مجازی مرز دقیقی وجود ندارد .
برای جلوگیری از تلف شدن سیناپس در صورتیکه همه مسیرهای فیدبک استفاده نشده باشند ، شبکه ارائه شده نرون های ورودی را بین نرون های خروجی و خروجی های فیدبک تقسیم (share) می کند .

شکل ۲ اصول عملکرد یک تک نرون را نشان می دهد .

وزنهای سیناپسی تحت عنوان بار روی خازن ذخیره می شوند (خازن ذخیره ساز) .
عملکرد نرون به دو فاز تقسیم می شود : پیش شارژ (Precharge) و ارزشیابی (Evaluate)
در فاز پیش شارژ همه کلیدهای موجود در سیناپس ها به سمت بافر تنظیم می شوند و سیگنال پیش شارژ در نرون فعال است .
در هر سیناپس ، خازن خروجی از طریق بافر وزن به همان مقدار ولتاژی که روی خازن ذخیره قرار دارد شارژ می شود .
نرون از یک مقایسه کننده ( Comparator ) و یک Latch تشکیل می شود .
سیگنال پیش شارژ کلید مابین دو ورودی مقایسه کننده را می بندد .
و در نتیجه سیگنال Post-Synaptic با ولتاژ مرجعی پیش شارژ می شود که سطح صفر شبکه را تعیین می کند .

در فاز ارزشیابی ، حاصل جمع همه سیناپس ها با این ولتاژ پیش شارژ مقایسه می شود .
اگر در سیگنال سیناپس افزایشی روی دهد نرون فعال می شود .

این حالت نرون در فلیپ فلاپ ذخیره می شود وقتی که فاز از حالت ارزشیابی به حالت پیش شارژ تغییر کند .
در فاز ارزشیابی به شرط فعال بودن سیگنال Pre-Synaptic کلید سیناپس خازن خروجی را با سیگنال Post-Synaptic متصل می کند .
سیگنال های Pre-Synaptic بسته به ورودی شبکه و اطلاعات فیدبک توسط نرون های ورودی تولید می شوند .

این چرخه می تواند به دفعات ثابتی تکرار شود تا شبکه را به تعداد لایه ماکزیمم محدود کند و همچنین زمان پردازش را برای یک الگوی ورودی محدود کند .
همچنین وقتی که داده ورودی از چرخه ای به چرخه دیگر تغییر می کند شبکه می تواند بصورت پیوسته اجرا شود .
این برای کاربردهای پردازش سیگنال مفید است .

شکل ۳ بلوک دیاگرام نمونه نخستین شبکه عصبی توسعه یافته را نشان می دهد .

عنصر مرکزی یک آرایه سیناپسی ۶۴X64 است .
خطوط Post-Synaptic متعلق به ۶۴ نرون خروجی بطور افقی از طریق سیناپس ها اجرا می شوند در حالیکه سیگنالهای سیناپتیک از نرونهای ورودی که در پایین و بالا قرار گرفته اند بداخل آرایه تغذیه می شوند .

هر نرون ورودی می تواند طوری ترکیب بندی شود تا برای ورودییش ، داده خارجی و یا داده را از شبکه خودش قبول کند .
این داده داخلی بطور متناوب از دو منبع می آید .
نرونهای ورودی فرد یک سیگنال فیدبک را از یک نرون خروجی دریافت می کنند در صورتیکه نمونه زوج خروجی معکوس را از همسایه فردش می گیرد .
اگر نرون زوج به همتای فردش وصل شود آنها با هم یک ورودی تفاضلی را تشکیل می دهند ، از آنجاییکه سیگنال باینری به یک جفت ورودی متناوب تبدیل می شود .

این مسئله برای دو هدف مفید است .
اگر داده کد شده باینری بکار برده شود ، تعداد نرونهای ورودی فعال همواره یکسان باقی می ماند .
دلیل دوم به روش محاسبه ولتاژ Post-Synaptic مربوط می شود .
Qi باری است که روی خازن خروجی سیناپس ذخیره شده است .
Ii سیگنال pre-synaptic است .

بعنوان یک مقدار باینری مقدار آن صفر یا یک است .
اگر Vpostsyn > Vprecharge باشد ، نرون فعال می شود .
نه تنها صورت کسر ، بلکه مخرج کسر نیز به همه سیگنالهای ورودی بستگی دارد .
این مسئله این مشکل را دارد که اگر یک سیگنال ورودی تغییر کند ، تاثیر وزنهای دیگر روی Vpostsyn همچنین تغییر می کند .
با وجود اینکه در مدل ساده معادله ۱ نشان داده شده است که پاسخ شبکه همان مقدار باقی می ماند ولی اجرای شبکه واقعی ممکن است متضرر شود .
جهت اجتناب از این اثر ورودی تفاضلی به ازای هر ورودی داده یک نرون ورودی را فعال می کند .
خازن سوئیچ شونده به خط سیگنال post-synaptic از داده مستقل می شود .
بنابراین مخرج معادله ۱ برای هر نوع تغییرات ورودی تفاضلی یکسان باقی می ماند .
ضرر حاصله کاهش تعداد ورودی مستقل است چرا که هر ورودی تفاضلی یک نرون ورودی فرد را با یک نرون ورودی زوج ترکیب می کند .

۲-۲- پیاده سازی مدارهای شبکه
یک تصویر میکرویی (micro photograph) از تراشه ساخته شده در شکل ۴ دیده می شود .

تکنولوژی بکار رفته ، فرایند CMOS-0.35m یک poly و سه لایه فلز است .
اندازه die بوسیله صفحات ورودی/خروجی (IO pads) که برای ارتباط با سیستم تست لازم هستند تعیین می شود .
آرایه سیناپس مساحتی کمتر از ۰۵mm را اشغال می کند .
در ولتاژ ۳۳ ولت عمل کرده و توانی در حدود ۵۰Mw مصرف می کند .

شکل ۵ بلوک مداری یک سیناپس را نشان می دهد .

هر دو تا از خازن ها توسط ترانزیستور MOS پیاده سازی شده اند .
بافر وزن بعنوان یک source follower توسط قطعات M1 و M2 تحقق پیدا کرده است .
افست و بهره این source follower با ولتاژ بایاس به همان خوبی دما تغییر می کند .
بنابراین تقویت کننده عملیاتی که خارج از آرایه سیناپس قرار دارد ولتاژ ورودی وزن را تصحیح می کند تا ولتاژ خروجی source follower با ولتاژ وزن مطلوب که از طریق M7‌ بصورت پسخورد تغذیه شده است برابر شود .

خطای تزریق بار ایجاد شده توسط M6 که به تطبیق نشدگی (mismatch) القایی کارخانه وابسته است می تواند توسط مقدار وزن جبران سازی شود .
M3 در فاز پیش شارژ شبکه بسته می شود تا خازن خروجی را به اندازه ولتاژ وزن شارژ کند .
M5 با شارژ کامل در مرحله اول باعث سرعت بخشیدن به این فرایند می شود .

از آنجاییکه جریان خروجی source follower برای یک جریان خارج شونده از M1 خیلی بزرگتر از مقداری است که وارد M2 می شود ، در نتیجه آن خازن را دشارژ می کند سریعتر از آنی که می تواند آن را شارژ کند .

بنابراین زمان کل برای شارژ خازن خروجی به ولتاژ دلخواه بوسیله ترکیب این دشارژ و شارژ کاهش می یابد .
در فاز ارزیابی ، M4 توسط سیگنال pre-synaptic نرون ورودی متصل به سیناپس فعال می شود .
تقسیم (sharing) بار بین همه سیناپس های فعال هر نرون خروجی در خطوط post-synaptic اتفاق می افتد .

در شکل ۶‌ قسمتی از layout‌ ترسیم شده آرایه سیناپس نشان داده شده است .

بیشتر سطح بوسیله دو خازن استفاده شده اند .
مقادیر برای خازنهای ذخیره سازی و خروجی به ترتیب در حدود ۶۰Ff و ۱۰۰fF هستند .
بار خازن های ذخیره سازی باید بخاطر جریانهای نشتی ترانزیستور بصورت متناوب refresh شوند .
در فاز آموزش وقتی که وزنها update می شوند این بصورت اتوماتیک اتفاق می افتد وگرنه عمل refresh در حدود ۲%‌ ظرفیت شبکه را اشغال می کند .

  راهنمای خرید:
  • در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.