اجرای شبکه عصبی MNIST بر روی مکینتاش ۴۱ ساله – کوانتیزاسیون در سخت‌افزار کلاسیک

8 بازدید
۱۴۰۴-۰۷-۱۳
2 دقیقه
  • نویسنده: آرویدتک
  • درباره نویسنده: www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک

به گفته hackster

یوتیوبر KenDesigns با استفاده از چند ترفند منحصربه‌فرد، موفق به اجرای یک شبکه عصبی MNIST بر روی یک مکینتاش ۵۱۲K قدیمی ۴۱ ساله شده است، تنها به خاطر اینکه ببیند امکان‌پذیر است یا خیر. این پروژه نمونه‌ای از تلاش برای فوق‌العاده‌سازی و اجرای الگوریتم‌های یادگیری ماشینی بر روی سخت‌افزارهای قدیمی است.

بازآفرینی یادگیری ماشین در سخت‌افزار کلاسیک

یوتیوبری به نام KenDesigns با به‌کارگیری چند شگرد هوشمندانه به چالش کشیدن حدود و مرزهای ممکن، یک شبکه عصبی MNIST را بر روی مکینتاش ۵۱۲K که ۴۱ سال قدمت دارد، اجرا کرد. دسته‌بندی ارقام دست‌نوشته با استفاده از یک شبکه عصبی ساده که با داده‌های آموزشی MNIST تمرین یافته، یکی از اولین پروژه‌هایی است که افراد هنگام شروع یادگیری ماشین انجام می‌دهند. معمولاً، افراد با دنبال کردن آموزش‌های گام‌به‌گامی که نشان می‌دهد چگونه این کار را روی یک کامپیوتر دسکتاپ با استفاده از چارچوب‌های معروفی مثل TensorFlow یا PyTorch انجام دهند، پیش می‌روند. الگوریتم نسبتاً ساده‌ای دارد، بنابراین نیازمند سیستم‌های فنی پیچیده‌ای نیست – بطور کلی هر ماشین مدرنی قادر به اجرای محاسبات است.

اما KenDesigns خواستار یافتن پاسخ به این سوال بود که چقدر می‌توان این حدود را کاهش داد. آیا مکینتاش ۵۱۲K قدیمی ۴۱ ساله او قادر به اجرای این نوع شبکه عصبی بود؟ شاید حتی مکینتاش اصلی ۱۲۸K؟ با استانداردهای امروزی، این سخت‌افزار بسیار محدود است، اما KenDesigns برای یافتن پاسخ، عزم خود را جزم کرد.

اجرای شبکه عصبی MNIST بر روی مکینتاش ۴۱ ساله – کوانتیزاسیون در سخت‌افزار کلاسیک

چرا به GPU نیاز داریم؟

دو مشکل اصلی در مسیر اجرای هر شبکه عصبی روی سخت‌افزار قدیمی وجود دارد. اول از همه، کل شبکه باید قبل از اجرای استنتاج، در حافظه اصلی بارگذاری شود و با تنها ۱۲۸K فضای موجود، این کار آسان نیست. دوم، این الگوریتم‌ها تعداد زیادی عملیات نقطه شناور را اجرا می‌کنند و مکینتاش اصلی تنها از پردازنده قدیمی Motorola 68000 خود برای اجرای آن‌ها استفاده می‌کند، بدون واحد پردازش ممیز شناور (FPU) برای کمک به بار.

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

برای خلق تجربه‌ای بسیار بهتر، KenDesigns از تکنیک پیچیده‌تری به‌نام کوانتیزاسیون استفاده کرد. به‌زبان ساده، کوانتیزاسیون اعداد نقطه شناور را به اعداد صحیح ۸ بیتی تبدیل می‌کند. این اعداد صحیح، تقریباً همان اطلاعاتی را که نمونه‌های نقطه شناورشان ارائه می‌دهند، منتقل می‌کنند، اما تنها یک چهارم فضای حافظه را اشغال می‌کنند. و از همه مهمتر، می‌توان به طور مستقیم بر روی آن‌ها عملیات انجام داد بدون نیاز به تبدیل، که تقریباً نیاز به کار با مقادیر نقطه شناور را از بین می‌برد.

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

اگر علاقمند به دیدن پروژه‌های بیشتری هستید که الگوریتم‌های یادگیری ماشین را در پلتفرم‌های سخت‌افزاری قدیمی گنجانده‌اند، ممکن است TensorFlow Lite برای کامودور ۶۴ یا رقیبی هوشمند در بازی Combat برای آتاری ۲۶۰۰ به شما علاقمند باشد.

اطلاعات
8
0
0
لینک و اشتراک
profile

نویسنده: آرویدتک

متخصص الکترونیک

وبسایت: http://www.arvidtek.com

www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک


مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

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

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ
سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله