موزه تاریخ کامپیوتر با همکاری گوگل، کد منبع AlexNet، شبکه عصبیای که در سال 2012 رویکرد غالب امروزی به هوش مصنوعی را آغاز کرد، منتشر کرده است. کد منبع به عنوان متنباز در صفحه GitHub موزه تاریخ کامپیوتر در دسترس است.
AlexNet چیست؟
AlexNet یک شبکه عصبی مصنوعی است که برای تشخیص محتویات تصاویر عکاسی ایجاد شده است. این شبکه در سال 2012 توسط الکس کریژفسکی و ایلیا سوتسکور، دانشجویان فارغ التحصیل دانشگاه تورنتو در آن زمان، و جفری هینتون، مشاور هیئت علمی آنها، توسعه یافت.
ریشههای یادگیری عمیق
هینتون به عنوان یکی از پدران یادگیری عمیق، نوعی از هوش مصنوعی که از شبکههای عصبی استفاده میکند و اساس هوش مصنوعی اصلی امروزی است، شناخته میشود. شبکههای عصبی ساده سه لایه با تنها یک لایه وزنهای تطبیقی اولین بار در اواخر دهه 1950 ساخته شدند—که مهمترین آنها توسط فرانک روزنبلات، محقق دانشگاه کرنل بود—اما مشخص شد که محدودیتهایی دارند. [این توضیحدهنده جزئیات بیشتری در مورد نحوه کار شبکههای عصبی ارائه میدهد.] به طور خاص، محققان به شبکههایی با بیش از یک لایه وزنهای تطبیقی نیاز داشتند، اما راه خوبی برای آموزش آنها وجود نداشت. تا اوایل دهه 1970، شبکههای عصبی تا حد زیادی توسط محققان هوش مصنوعی رد شده بودند.
در دهه 1980، تحقیقات شبکه عصبی در خارج از جامعه هوش مصنوعی توسط دانشمندان علوم شناختی در دانشگاه کالیفرنیا سن دیگو، تحت نام جدید "اتصالگرایی" احیا شد. هینتون پس از اتمام دکترای خود در دانشگاه ادینبورگ در سال 1978، به عنوان فوق دکترا در UCSD شد، جایی که با دیوید روملهارت و رونالد ویلیامز همکاری کرد. این سه نفر الگوریتم پس انتشار (Backpropagation) را برای آموزش شبکههای عصبی دوباره کشف کردند و در سال 1986 دو مقاله منتشر کردند که نشان میداد این الگوریتم شبکههای عصبی را قادر میسازد تا لایههای متعددی از ویژگیها را برای وظایف زبانی و بینایی یاد بگیرند. پس انتشار، که امروزه اساس یادگیری عمیق است، از تفاوت بین خروجی فعلی و خروجی مورد نظر شبکه برای تنظیم وزنها در هر لایه، از لایه خروجی به عقب تا لایه ورودی، استفاده میکند.
در سال 1987، هینتون به دانشگاه تورنتو پیوست. دور از مراکز هوش مصنوعی سنتی، کار هینتون و دانشجویان فارغ التحصیلش تورنتو را به یک مرکز تحقیقات یادگیری عمیق در دهههای آینده تبدیل کرد. یکی از دانشجویان فوق دکترای هینتون، یان لکون (Yann LeCun) بود که اکنون دانشمند ارشد در متا (Meta) است. لکون در حالی که در تورنتو کار میکرد، نشان داد که وقتی پس انتشار در شبکههای عصبی "کانولوشنال" استفاده میشود، آنها در تشخیص اعداد دست نویس بسیار خوب میشوند.
ImageNet و پردازندههای گرافیکی (GPUs)
با وجود این پیشرفتها، شبکههای عصبی نمیتوانستند به طور مداوم از انواع دیگر الگوریتمهای یادگیری ماشین بهتر عمل کنند. آنها به دو پیشرفت از خارج از هوش مصنوعی نیاز داشتند تا راه را هموار کنند. اولین مورد ظهور مقادیر بسیار بیشتری از دادهها برای آموزش بود که از طریق وب در دسترس قرار گرفت. دومی قدرت محاسباتی کافی برای انجام این آموزش، در قالب تراشههای گرافیکی سه بعدی، معروف به پردازندههای گرافیکی (GPUs) بود. تا سال 2012، زمان برای AlexNet رسیده بود.
دادههای مورد نیاز برای آموزش AlexNet در ImageNet، پروژهای که توسط فی-فی لی، استاد استنفورد آغاز و رهبری شد، یافت شد. لی از سال 2006، و برخلاف خرد متعارف، مجموعه دادهای از تصاویر را تصور کرد که هر اسم در زبان انگلیسی را پوشش میدهد. او و دانشجویان فارغ التحصیلش شروع به جمع آوری تصاویر یافت شده در اینترنت و طبقه بندی آنها با استفاده از تاکسونومی ارائه شده توسط WordNet، پایگاه دادهای از کلمات و روابط آنها با یکدیگر، کردند. با توجه به عظمت وظیفه خود، لی و همکارانش در نهایت وظیفه برچسب گذاری تصاویر را به کارگران گیگ، با استفاده از پلت فرم Mechanical Turk آمازون، برون سپاری کردند.
ImageNet که در سال 2009 تکمیل شد، بزرگتر از هر مجموعه داده تصویر قبلی به میزان چندین مرتبه بود. لی امیدوار بود که در دسترس بودن آن باعث پیشرفتهای جدیدی شود و او در سال 2010 مسابقهای را برای تشویق تیمهای تحقیقاتی به بهبود الگوریتمهای تشخیص تصویر خود آغاز کرد. اما در طول دو سال بعد، بهترین سیستمها تنها پیشرفتهای جزئی داشتند.
شرط دوم لازم برای موفقیت شبکههای عصبی دسترسی اقتصادی به مقادیر زیادی محاسبات بود. آموزش شبکه عصبی شامل تعداد زیادی ضرب ماتریس مکرر است که ترجیحاً به صورت موازی انجام میشود، کاری که پردازندههای گرافیکی (GPUs) برای انجام آن طراحی شدهاند. NVIDIA، که توسط مدیرعامل جنسن هوانگ (Jensen Huang) تأسیس شد، در دهه 2000 راه را در عمومیتر و قابل برنامهریزیتر کردن پردازندههای گرافیکی (GPUs) برای کاربردهایی فراتر از گرافیک سه بعدی، به ویژه با سیستم برنامهنویسی CUDA که در سال 2007 منتشر شد، رهبری کرد.
هم ImageNet و هم CUDA، مانند خود شبکههای عصبی، پیشرفتهای نسبتاً خاصی بودند که منتظر شرایط مناسب برای درخشش بودند. در سال 2012، AlexNet این عناصر - شبکههای عصبی عمیق، مجموعههای داده بزرگ و پردازندههای گرافیکی (GPUs) - را برای اولین بار با نتایج پیشگامانه گرد هم آورد. هر یک از اینها به دیگری نیاز داشت.
نحوه ایجاد AlexNet
تا اواخر دهه 2000، دانشجویان فارغ التحصیل هینتون در دانشگاه تورنتو شروع به استفاده از پردازندههای گرافیکی (GPUs) برای آموزش شبکههای عصبی برای تشخیص تصویر و گفتار کردند. اولین موفقیتهای آنها در تشخیص گفتار به دست آمد، اما موفقیت در تشخیص تصویر نشان میداد که یادگیری عمیق یک راه حل عمومی ممکن برای هوش مصنوعی است. یکی از دانشجویان، ایلیا سوتسکور (Ilya Sutskever)، معتقد بود که عملکرد شبکههای عصبی با مقدار دادههای موجود مقیاس میشود و ورود ImageNet فرصت را فراهم کرد.
در سال 2011، سوتسکور (Sutskever) همکار دانشجوی فارغ التحصیل خود، الکس کریژفسکی (Alex Krizhevsky) را متقاعد کرد، که توانایی زیادی در به دست آوردن حداکثر عملکرد از پردازندههای گرافیکی (GPUs) داشت، تا یک شبکه عصبی کانولوشنال را برای ImageNet آموزش دهد، و هینتون (Hinton) به عنوان محقق اصلی خدمت میکرد.
کریژفسکی (Krizhevsky) قبلاً کد CUDA را برای یک شبکه عصبی کانولوشنال با استفاده از پردازندههای گرافیکی (GPUs) NVIDIA، به نام cuda-convnet، که بر روی مجموعه داده تصویر CIFAR-10 بسیار کوچکتر آموزش داده شده بود، نوشته بود. او cuda-convnet را با پشتیبانی از چندین پردازنده گرافیکی (GPUs) و سایر ویژگیها گسترش داد و دوباره آن را بر روی ImageNet آموزش داد. این آموزش بر روی یک کامپیوتر با دو کارت NVIDIA در اتاق خواب کریژفسکی (Krizhevsky) در خانه والدینش انجام شد. در طول سال بعد، او دائماً پارامترهای شبکه را تغییر داد و دوباره آن را آموزش داد تا زمانی که به عملکردی برتر از رقبای خود دست یافت. این شبکه در نهایت AlexNet نامیده شد، پس از کریژفسکی (Krizhevsky). جف هینتون (Geoff Hinton) پروژه AlexNet را اینگونه خلاصه کرد: "ایلیا فکر کرد که باید این کار را انجام دهیم، الکس آن را عملی کرد و من جایزه نوبل را گرفتم."
کریژفسکی (Krizhevsky)، سوتسکور (Sutskever) و هینتون (Hinton) مقالهای در مورد AlexNet نوشتند که در پاییز سال 2012 منتشر شد و توسط کریژفسکی (Krizhevsky) در کنفرانس بینایی کامپیوتر در فلورانس، ایتالیا، در ماه اکتبر ارائه شد. محققان باتجربه بینایی کامپیوتر متقاعد نشدند، اما لکون (LeCun)، که در این جلسه حضور داشت، آن را نقطه عطفی برای هوش مصنوعی اعلام کرد. او درست میگفت. قبل از AlexNet، تقریباً هیچ یک از مقالات پیشرو در زمینه بینایی کامپیوتر از شبکههای عصبی استفاده نمیکردند. پس از آن، تقریباً همه آنها استفاده میکردند.
AlexNet تازه آغاز کار بود. در دهه بعد، شبکههای عصبی پیشرفت میکنند تا صداهای انسانی باورپذیر را سنتز کنند، بازیکنان قهرمان Go را شکست دهند و آثار هنری تولید کنند، که با انتشار ChatGPT در نوامبر 2022 توسط OpenAI، شرکتی که توسط سوتسکور (Sutskever) تأسیس شد، به اوج خود رسید.
انتشار کد منبع AlexNet
در سال 2020، من با کریژفسکی (Krizhevsky) در مورد کد AlexNet تماس گرفتم تا متوجه شوم که او و هینتون (Hinton) هرگز قصد انتشار آن را نداشتهاند. در زمان این پروژه، انتشار کد به طور معمول انجام نمیشد و کریژفسکی (Krizhevsky) مشتاق تکرار تجربیات خود با پروژههای دیگر با کد خود بود. از آنجایی که در آن زمان در گوگل مشغول به کار بودم، هینتون (Hinton) پیشنهاد کرد که از کد AlexNet در گوگل استفاده کنیم، که ما هم این کار را انجام دادیم.
این وضعیت اخیراً توسط همکارم، دیوید هی (David Ha)، که مدیر تحقیقات مولد در گوگل است، دوباره مورد توجه قرار گرفت. هی به این نتیجه رسید که از آنجایی که AlexNet اهمیت تاریخی دارد، گوگل باید آن را منتشر کند تا در دسترس عموم قرار گیرد. هی دوباره با هینتون (Hinton) تماس گرفت، که اکنون نیز در گوگل کار میکند، که با این کار موافقت کرد. به نوبه خود، از من خواسته شد تا با موزه تاریخ کامپیوتر تماس بگیرم تا کد را در اختیار عموم قرار دهم. به نظر میرسد که مسائل، در بیشتر موارد، حلقهای دارند.