کامپیوتر چگونه تصاویر را تشخیص میدهد؟
در حال حاضر، ما میتوانیم سرویس تصاویر گوگل را بازکرده و عبارتی مثل ساحل را تایپ کنیم و تصاویر شخصی خودمان که را از سواحل مختلفی که طی دهه گذشته بازدید کردهایم مشاهده کنیم. البته من هرگز تصاویر خودم را در گوگل برچسبگذاری نکردهام و در عوض، گوگل سواحل مختلفی را بر اساس محتویات عکسهای خود برای من مشخص میکند. این قابلیت، مبتنی بر فناوری به نام شبکههای عصبی پیچیده عمیق (deep convolutional neural networks) است که اجازه میدهد تا نرمافزار تصاویر را با روش پیچیدهای درک کند که با تکنیکهای پیشین این موضوع امکانپذیر نبود.
شرکت مشهور تسلا که تولیدکننده خودروهای هوشمند است، در حال حاضر یک تراشه سفارشی برای سرعت بخشیدن به عملیات شبکه عصبی برای نسخههای آینده خود را در دست طراحی دارد. در شرکت مشهور و بزرگ اپل نیز تراشههای A11 و A12 در قلب آیفونهای جدید جاسازیشدهاند که شامل یک موتور عصبی برای تسریع در عملیات شبکههای عصبی هستند و به سیستم اجازه میدهد تا برنامههای تصویری و صوتی بهتری را تشخیص دهد.
در سالهای اخیر محققان دریافتند که دقت نرمافزارها هرروز، بهتر و بهتر میشود زیرا طراحان؛ شبکههای عمیقتر را ایجاد کرده و مجموعه دادههای بزرگتری را برای آموزش آنها فراهم میکنند. این امر باعث اشتیاق تقریباً ناپایدار برای قدرت محاسبهشده و باعث پیشرفت در ساخت پردازندههای گرافیکی مانند Nvidia و AMD شد. گوگل چندین سال پیش تراشه شبکه عصبی خود را توسعه داده و دیگر شرکتها به دنبال پیروی از گوگل هستند.
بهعنوانمثال در شرکت تسلا، آندرج کارپاتی (Andrej Karpathy) کارشناس آموزش عمیق مسئول پروژه اتوپایلوت است. این شرکت مشهور تولیدکننده خودروهای هوشمند، در حال حاضر یک تراشه سفارشی برای سرعت بخشیدن به عملیات شبکه عصبی برای نسخههای آینده خود را در دست طراحی دارد. در شرکت مشهور و بزرگ اپل نیز تراشههای A11 و A12 در قلب آیفونهای جدید جاسازیشدهاند که شامل یک موتور عصبی برای تسریع در عملیات شبکههای عصبی هستند و به سیستم اجازه میدهد تا برنامههای تصویری و صوتی بهتری را تشخیص دهد.
سارا گریش متخصص فناوری یادگیری ماشینی که پژوهشی تحت عنوان «ماشینهای هوشمند چگونه فکر میکنند» (How Smart Machines Think) در این رابطه میگوید: «به نظر من سال ۲۰۱۲ را میتوان یک مرحله برجسته درزمینهٔ یادگیری ماشینی دانست که پژوهش معروف آلکس کریژفسکی (Alex Krizhevsky) با نام مستعار آلکس نت (AlexNet) در قالب یک مقاله منتشر شد.»
پیش از سال ۲۰۱۲، شبکههای عصبی عمیق، بهعنوان بخشی از دنیای یادگیری ماشینی محسوب میشد اما پسازآن کریژفسکی و همکارانش در دانشگاه تورنتو یک طرح تشخیص تصویر با دقت بالا را ارائه دادند که به طرز چشمگیری دقیقتر از موارد پیشین بود. در یکچشم به هم زدن، شبکههای عصبی عمیق به تکنیکی پیشرو برای تشخیص تصویر تبدیل شدند. بهزودی محققان دیگر؛ با استفاده از این تکنیک پیشرفتهای بیشتری در افزایش دقت تشخیص تصاویر به دست آوردند.
یک مثال ساده برای نورون تکی
عبارت «شبکه عصبی» هنوز هم ممکن است کمی غیرقابل درک باشد، بنابراین اجازه دهید با یک مثال ساده شروع کنیم. فرض کنید میخواهید با یک شبکه عصبی تصمیم بگیرد که آیا ماشین بر اساس چراغ سبز، زرد و قرمز یک چراغ راه نمائی باید جلو برود یا نه؟ یک شبکه عصبی میتواند این کار را با یک نورون تکی انجام دهد. نورون هر ورودی را گرفته (۱ برای روشن، ۰ برای خاموش) و آن را با وزن مرتبط آن ضرب میکند و تمام مقادیر وزنی را به هم میافزاید. پسازآن نورون به یکطرف متمایل میشود که تعیینکننده آستانه فعال شدن نورون است.
در این مورد، اگر خروجی مثبت باشد، ما نورون را غیرفعال میدانیم و بالعکس. این نورون معادل عدمتساوی سبز – قرمز – ۰٫۵> ۰. اگر پاسخ معادله واقعی و درست باشد یعنی نور سبز روشن و نور قرمز خاموش است، بنابراین ماشین باید حرکت کند.
در شبکههای عصبی واقعی، نورونهای مصنوعی یک گام اضافی را دنبال میکنند. بعد از جمعکردن ورودیهای وزنی و اضافه کردن تمایل به یکطرف، نورون؛ یک تابع فعال غیرخطی را اعمال میکند. یک انتخاب رایج، تابع پیچیده هلالی است، یک تابع به شکل حرف انگلیسی S که همیشه یک مقدار ثابت رابین ۰ و ۱ ایجاد میکند.
یک مثال برای شبکه
روشهای مختلفی برای تقریب عملکرد وجود دارد. چه چیزی باعث میشود شبکههای عصبی خاصی باشند که ما میدانیم چگونه آنها را با استفاده از محاسبات کمی، آموزش دهیم. بهجای داشتن یک برنامهنویس انسانی بهطور مستقیم یک شبکه عصبی برای یک کار خاص طراحی کرده و میتوانیم نرمافزاری را ایجاد کنیم که با یک شبکه عصبی نسبتاً عمومی آغاز شود.
برای فهم اینکه چگونه فرایند نسخهبرداری کار میکند، میتوان نگاهی به یک شبکه عصبی ساده که توسط مایکل نیلسن (Michael Nielsen) در کتاب ارزشمند آموزش آنلاین ارائهشده است، انداخت. هدف از این شبکه گرفتن یک تصویر ۲۸ × ۲۸ پیکسل است که یک رقم دستنوشته را نشان میدهد و بهدرستی شناسایی میکند که کدام عدد نشانگر ۰، ۱، ۲ و غیره است. هر تصویر دارای ۲۸ × ۲۸ = ۷۸۴ مقدار ورودی است که هر یک عددی واقعی بین صفر و یک را نشان میدهد که مشخص میکند چگونه هر پیکسل تاریک یا روشن است. هدف از آموزش شبکه عصبی این است که ۱۱۹۳۵ پارامتر برای سیستم تنظیم شود تا حداکثر شانس برای خروجی صحیح نورونها مهیا شود. هنگامیکه تصویری از یک عدد نوشتهشده با دستنشان داده میشود، ما میتوانیم این کار را با استفاده از یک مجموعه داده شناختهشده به نام MNIST که ۶۰۰۰۰ برچسب ۲۸ × ۲۸ پیکسل را نشان میدهد، انجام دهیم.
ترجمه: احسان محمدحسینی
منبع: arstechnica
No tags for this post.