چگونه به ماشین‌ها یاد بدهیم تا تصاویری که مشاهده می‌‎کنند را درک کنند؟

جامعه ما به لحاظ فناوری از هر زمان دیگر پیشرفته‌تر است. ما موفق شدیم انسان‎‌‌ها را به ماه بفرستیم، تلفن‌هایی ساختیم که با ما صحبت می‎کنند…

 

چگونه به ماشین‌ها یاد بدهیم تا تصاویری که مشاهده می‌کنند را درک کنند؟

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

تا به امروز دانشمندان موفق به ساخت ماشین‌هایی شده‌اند که خودشان می‌توانند رانندگی کنند، اما بدون دید هوشمند (smart vision) نمی‌توانند فرق میان پاکت کاغذی مچاله در جاده که می‌شود از روی آن رد می‌‌شود را با یک سنگ همان اندازه که نباید از روی آن رد شوند تشخیص دهند، برای حل این مشکل دوربین‌هایی با وضوح مگاپیکسل عالی ساخته شدند که برای استفاده مؤثر از آن‌ها به نرم‌افزارهای خاصی نیاز است. هواپیماهای بدون سرنشین که بر فراز زمین‌های وسیع پرواز کنند، اما فناوری بینایی کافی برای کمک به ما در رهگیری تغییرات جنگل‎‌های بارانی ندارند. دوربین‌های امنیتی همه‌جا هست، اما وقتی یک کودک در استخر در حال غرق‌شدن است، هشدار نمی‌دهند. تصاویر و ویدئوها در حال تبدیل‌شدن به جز مهمی از زندگی جهانی هستند. تصاویر با سرعتی فراتر از آن‌چه هر انسان یا گروهی از انسان‌ها، بتواند امیدوار به دیدن آن‌ها باشد تولید می‎شوند. بااین‌وجود پیشرفته‌ترین نرم‌افزارها همچنان در فهم و مدیریت این حجم عظیم مشکل دارند و به عبارت دقیق‎تر، ماشین‌ها با وجود پیشرفت‌های انجام شده هنوز نمی‌توانند مثل انسان‌ها تمامی اشیایی که مشاهده می‌کنند را درک کنند و شناختی از آن‌ها داشته باشند.

شاید بپرسید چرا این موضوع تا این اندازه سخت است؟ دوربین‎‌ها می‎توانند تصاویری را بر مبنای تبدیل نور به آرایه دوبعدی اعداد که پیکسل نام دارند، تهیه کنند. تصاویری که فاقد روح هستند و معنی خاصی ندارند. همان‎‌گونه که می‎‌گوییم شنیدن کی بود؛ مانند دیدن، عکس‌گرفتن با دیدن یکی نیست، زیرا با دیدن باید به فهمیدن برسید. مغز انسان یا سایر موجودات در یک بازه چند میلیون‌ساله تکامل پیدا کردند تا بتوانند تصاویری که مشاهده می‎‌کنند را پردازش کنند. به بیان دقیق‌‎تر، دیدن با چشم آغاز می‎‌شود، اما در حقیقت در مغز کار اصلی را انجام می‌‎دهد.

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

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

وقتی این موضوع را متوجه شوید، در مرحله بعد به این فکر خواهید افتاد تا به جمع‎‌آوری مجموعه اطلاعاتی بپردازید که نیاز است. هرچه تصاویر بیشتری داشته باشید، کیفیت کار و خروجی الگوریتم بهتر خواهد شد. بهترین منبع در این زمینه اینترنت است که بزرگ‌‎ترین گنجینه عکس‌‎ها که انسان‌‎ها تاکنون گرفته‌‎اند را میزبانی می‎‌کند. به طور مثال، در برخی موارد کارشناسان از یک میلیارد عکس و فناوری‎هایی مثل CrowdSourcing و Amazon Mechanical Turk platform برای برچسب‌‎زنی این عکس‌‎ها استفاده می‎‌کنند. برای انجام این کار به تیم بزرگی نیاز دارید که قادر به سازمان‎دهی تصاویر، اصلاح، مرتب‎‌سازی و برچسب‎‌گذاری تصاویر باشند. جالب آنکه تمامی این کارها معادل کاری است که ذهن یک کودک در سال‌‎های اولیه تکامل خود انجام می‎‌دهد. پس از گذشت زمان و کسب تجربه ایده استفاده از حجم عظیم‌داده‌ها برای آموزش الگوریتم رایانه‎‌ها، بدیهی به نظر برسد.

به طور مثال، در یک نمونه تحقیقاتی در سال ۲۰۰۹ پروژهImageNet یک پایگاه‌داده از 15 میلیون عکس در وسعت ۲۲٫۰۰۰ کلاس از اشیا که با کلمات انگلیسی روزمره منظم شده بودند را در اختیار تیمی از پژوهشگران هوش مصنوعی قرار داد. به لحاظ کیفیت و کمیت این مقیاس بی‎سابقه بود. به‎‌عنوان مثال در مورد گربه‎‌ها بیش از ۶۲٫۰۰۰ (تصویر) گربه در انواع شکل‎ها، فرم بدن و در تمام گونه‌های اهلی و وحشی ارایه کرد.

حالا که داده‎‌ها را برای تغذیه مغز رایانه در اختیار دارید، آماده هستید تا برگردید سراغ خود الگوریتم‎ها، زیرا از طریق پروژه‎هایی مثل ImageNet دسترسی به اطلاعات طبقه‌‎بندی شده و کامل که برای آموزش الگوریتم‎های یادگیری ماشین نیاز است در اختیار دارید. درست مثل مغز که از میلیاردها نورون پیوسته تشکیل شده یک واحد عملیاتی بنیادی در یک شبکه عصبی یک گره نورون ‎مانند است. از گره‎های دیگر ورودی می‎گیرد و خروجی را به دیگر گره‎ها می‎فرستند. به‌علاوه، این صدها یا هزاران یا حتی میلیون‎ها گره در لایه‌‎هایی با سلسله‌مراتب منظم شده‌‎اند، مانند مغز. در یک شبکه عصبی نوعی، برای آموزش مدل تشخیص اشیا، 24 میلیون گره، 140 میلیون پارامتر، و 15 میلیارد اتصال وجود دارد. این یک مدل عظیم است. با استفاده از نیروی عظیم‌داده‌ها ازImageNet و پردازنده مرکزی و گرافیکی برای آموزش چنین مدل یکدستی، شبکه عصبی درهم‌تنیده ایجاد می‌شود. شبکه‌‎ای که قادر است پس از آموزش از طریق مشاهده میلیون‎ها عکس می‎تواند به شما بگوید این تصویر شامل یک گربه است و این‎که گربه کجای تصویر قرار دارد. البته پیاده‎‌سازی یک چنین شبکه‎‌های عصبی برای کاری به‌مراتب فراتر از تشخیص گربه‌‎ها استفاده می‎شوند و به طور مثال یک الگوریتم رایانه‎ای می‎تواند به شما بگوید در یک تصویر یک پسر و یک عروسک خرسی؛ یک سگ، یک آدم و بادبادک کوچک در پس‎زمینه وجود دارد یا تصویر شامل چیزهای شلوغ‎‌تر مثل یک مرد، تخته اسکیت، نرده‎ها، تیر چراغ‌برق و چیزهای دیگر است. گاهی اوقات که کامپیوترها اطمینان ندارند از چیزی که به آن نگاه می‎کنند، باید به آن‎ها کمک کنید تا به‌اندازه کافی باهوش باشند تا یک جواب مطمئن به شما بدهند، درست مثل کاری که انسان‎ها انجام می‎دهند.

به‎‌طور مثال، اگر میلیون‎ها عکس منظره خیابان‎ها در شهرهای مختلف را در اختیار الگوریتم قرار دهید و کدنویسی آن به درستی انجام شده باشد، به اطلاعات جالبی دست پیدا می‎کنید، به‎طوری که الگوریتم به شما نشان می‎دهد که قیمت خودرو وابستگی زیادی به درآمد خانوارها دارد یا این‎که، قیمت خودرو بستگی زیادی به نرخ جرایم در شهرها یا الگوی رای دادن در شهرها بر اساس کدپستی دارد.

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

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

در مجموع باید به این نکته دقت کنید که ابتدا به ماشین‌‎ها بینایی ببخشید، به آن‎ها دیدن را یاد بدهید تا آن‎ها بتوانند به شما در شناخت بهتر تصاویر کمک کنند.

 

آموزش های عصر شبکه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *