قبل از شروع به مطالعه قسمت آخر تاریخچه شبکه عصبی به اطلاع میرسانم که آموزش یادگیری ماشین از صفر در همرویش منتشر شد. علاقمندان به این حوزه فیلم معرفی این آموزش را در پایین مشاهده کنید:
برای دریافت بسته کامل این آموزش کلیک کنید(+).
تامین مالی برای لایههای بیشتر
با ترقی ماشینهای بردار پشتیبان (Support Vecror Machine) و شکست الگوریتم پسانتشار یا انتشار رو به عقب (backpropagation)، اوایل دهه 2000، دورهای تاریک برای تحقیقات شبکه عصبی به حساب میآمد. لکان (LeCun) و هینتون (Hinton) به طور متفاوتی اشاره میکنند. که چگونه در این دوره، به طور معمول، از انتشار مقالات آنها یا مقالات دانشجویان آنها به دلیل پرداختن به موضوع شبکههای عصبی خودداری میشد.
مطمئنا تحقیقات در زمینه یادگیری ماشین و هوش مصنوعی هنوز بسیار فعال بود و افراد دیگر نیز هنوز با شبکههای عصبی کار میکردند. اما شمارش تعداد نقل قولها از آن زمان نشان میدهد که هیجان به حداقل رسیده بود، اگر نگوییم کاملاً از بین رفته بود. هنوز هم، هینتون، بنجیو (Bengio)، و به ویژه لکان، معتقد بودند که شبکههای عصبی، شایسته تحقیق هستند.
و در ادامه، آنها یک متحد قوی خارج از حوزه تحقیق پیدا کردند: دولت کانادا. کمک مالی از سوی موسسه تحقیقات پیشرفته کانادا (CIFAR)، که تحقیقات بنیادی بدون کاربرد مستقیم را تشویق میکند، انگیزهای بود تا هینتون در سال 1987 به کانادا برود و پس از آن بودجه کار خود را تأمین کند.
اما این بودجه در اواسط دهه 90 به پایان رسید. درست زمانی که احساسات نسبت به شبکههای عصبی دوباره منفی شده بود. هینتون، به جای تسلیم شدن و تغییر تمرکز، برای ادامه کار بر روی شبکههای عصبی مبارزه کرد و موفق شد بودجه بیشتری از CIFAR به دست آورد، آنچنان که در این بخش بیان شده است:
“اما در سال 2004، هینتون درخواست کرد که برنامه جدیدی را در زمینه محاسبات عصبی هدایت کند. جامعه اصلی یادگیری ماشین نمیتوانست علاقه کمتری به شبکههای عصبی داشته باشد.
بنجیو، استاد دانشگاه مونترال و مدیر برنامه CIFAR از زمان تمدید آن در سال گذشته، میگوید: “این بدترین زمان ممکن بود. بقیه کار متفاوتی انجام میدادند. به نوعی، جف (Geoff) آنها را متقاعد کرد. ”
“ما باید اعتبار زیادی برای CIFAR برای انجام این قمار قائل شویم. ”
لکان، دیگر مدیر برنامه CIFAR، اضافه میکند:
“CIFAR” تأثیر بسزایی در شکل گیری جامعهای در زمینه یادگیری عمیق داشت. ما در جامعه وسیعتر یادگیری ماشین کمی رانده شدیم: نمیتوانستیم مقالات خود را منتشر کنیم. این موسسه، جایی در اختیار ما قرار داد که بتوانیم ایدهها را تبادل کنیم. ”
این بودجه اگرچه اندک، اما کافی بود تا گروه کوچکی از محققان بتوانند بر روی این موضوع کار کنند. همانطور که هینتون میگوید، آنها یک توطئه کردند: “تغییر نام تجاری” شبکههای عصبی به نام “یادگیری عمیق“.
سپس، آنچه که هر محقق باید رویای آن را داشته باشد واقعا اتفاق افتاد:
هینتون، سایمون اوسیندرو (Simon Osindero) و یی-وای ته (Yee-Whye Teh)، مقالهای را در سال 2006 منتشر کردند که به عنوان یک پیشرفت بزرگ تلقی میشد.
یک پیشرفت قابل توجه که برای احیای علاقه به شبکههای عصبی کافی بود:
یک الگوریتم سریع یادگیری برای شبکههای باور عمیق (A fast learning algorithm for deep belief nets).
اگرچه، همانطور که خواهیم دید، رویکردهای مورد استفاده در این مقاله با کارهای جدید برتری یافتهاند، اما میتوان گفت جنبش “یادگیری عمیق” دقیقاً با این مقاله آغاز شده است. اما، مهمتر از نام آن، این ایده بود که شبکههای عصبی با لایههای متعدد واقعا میتوانند به خوبی آموزش ببینند، اگر وزنها به شیوهای هوشمندانه و نه به طور تصادفی تنظیم شوند. هینتون یک بار نیاز به چنین پیشرفتی را در آن زمان ابراز کرد:
” از نظر تاریخی، این امر در غلبه بر این باور که این شبکههای عصبی عمیق خوب نیستند و هرگز قابل آموزش نیستند بسیار مهم و این یک باور بسیار قوی بود.
یکی از دوستان من مدتی قبل مقالهای به ICML [کنفرانس بین المللی یادگیری ماشین] ارسال کرد و داور گفت که ICML آن را قبول نمیکند، زیرا در مورد شبکههای عصبی بود و برای ICML مناسب نبود.
در حقیقت اگر سال گذشته به ICML نگاه کنید، هیچ مقالهای با واژه “عصبی” در عنوان آن، قبول نشده است، بنابراین ICML نباید مقالاتی در مورد شبکههای عصبی بپذیرد. این فقط چند سال پیش بود. و یکی از مجلات IEEE در واقع سیاست رسمی [عدم پذیرش مقالات شما] را داشت. بنابراین، این یک باور قوی بود. ”
بنابراین راه هوشمندانه تعیین وزنها چه بود؟ ایده اصلی این است که هر لایه را یک به یک به صورت بدون نظارت آموزش دهیم، که وزنها را بسیار بهتر از دادن مقادیر تصادفی به آنها شروع میکند. و سپس با یک دور یادگیری تحت نظارت، درست همانطور که برای شبکههای عصبی طبیعی انجام میشود، آموزش را به پایان میرسانیم.
هر لایه به عنوان یک ماشین بولتزمن محدود (RBM) شروع به کار میکند، که همانطور که در بالا نشان داده شده است، صرفا یک ماشین بولتزمن بدون اتصالات بین واحدهای پنهان و واحدهای قابل مشاهده است. و یک مدل مولد داده به شیوهای بدون نظارت آموزش داده میشود.
به نظر میرسد که این شکل از ماشین بولتزمن را میتوان به شیوهای کارآمد آموزش داد که توسط هینتون در سال 2002 با عنوان “محصولات آموزش متخصصان با به حداقل رساندن واگرایی متضاد” (Training Products of Experts by Minimizing Contrastive Divergence) معرفی شد.
این الگوریتم، اساسا چیزی غیر از احتمال واحدهای مولد دادههای آموزشی را بیشینه میکند، که امکان تقریبی خوب را فراهم کرده و به نظر میرسد هنوز به خوبی کار میکند. بنابراین، با استفاده از این روش، الگوریتم به شرح زیر است:
- با استفاده از واگرایی متضاد، یک RBM را بر روی دادههای آموزشی آموزش دهید. این اولین لایه شبکه باور است.
- مقادیر پنهان RBM آموزش دیده را برای دادهها تولید کنید و یک RBM دیگر را با استفاده از این مقادیر پنهان آموزش دهید. این لایه دوم است؛ آن را روی لایه اول قرار دهید و وزنها را فقط در یک جهت نگه دارید تا یک شبکه باور ایجاد شود.
- مرحله 2 را برای هر تعداد لایه که برای شبکه باور در نظر دارید، ادامه دهید.
- اگر در نظر دارید دستهبندی انجام دهید، یک مجموعه کوچک از واحدهای مخفی را که مطابق با برچسبهای دستهبندی هستند، اضافه کنید و برای تنظیم دقیق وزنها، در الگوریتم خواب و بیداری (wake-sleep) تغییراتی ایجاد کنید. چنین ترکیبی از یادگیری بدون نظارت و تحت نظارت، اغلب یادگیری نیمه نظارتی (semi-supervised) نامیده میشود.
این مقاله با نشان دادن این مطلب که شبکههای باور عمیق (DBNs)، دارای عملکردی فوق العاده بر روی مجموعه دادههای استاندارد تشخیص کاراکتر MNIST بودند، به طور قابل توجهی از شبکههای عصبی معمولی که تنها چند لایه داشتند، عملکرد بهتری داشت.
یوشوا بنجیو و همکارانش، این کار را در سال 2007 با عنوان “آموزش حریصانه شبکههای عمیق بصورت لایه ای” (Greedy Layer-Wise Training of Deep Networks) دنبال کردند، که در آن، یک استدلال قوی ارائه میدهند که بیان میکند روشهای یادگیری عمیق ماشین (یعنی روشهایی با مراحل پردازش زیاد، یا بطور معادل، روشهایی با بازنمایی سلسله مراتبی ویژگی داده ها) برای مسائل دشوارتر، بسیار کارآمدتر از روشهای کم عمق هستند (که شبکههای عصبی دو لایه یا ماشینهای بردار پشتیبان، نمونههایی از آن هستند).
آنها همچنین دلایلی را برای بیان این مطلب که چرا اضافه شدن پیش آموزش بدون نظارت، واقعا کار میکند، ارائه میدهند و نتیجه میگیرند که این امر نه تنها وزنها را به شیوهای بهینهتر تنظیم میکند، بلکه شاید مهمتر این است که به یک بازنمایی تعلیم داده شده مفیدتر از دادهها منجر میشود.
در واقع، استفاده از RBMها چندان مهم نیست؛ بلکه ثابت شد پیش آموزش بدون نظارت لایههای شبکههای عصبی معمولی با استفاده از انتشار رو به عقب، با لایههای ساده خودرمزنگارها نیز به خوبی کار میکند. به همین ترتیب، در همان زمان رویکرد دیگری به نام کدگذاری پراکنده (Sparse Coding) نیز نشان داد که یادگیری ویژگی بدون نظارت، یک رویکرد قدرتمند برای بهبود عملکرد یادگیری تحت نظارت است.
بنابراین کلید اصلی، داشتن لایههای زیادی از واحدهای محاسباتی بود تا بتوان بازنمایی خوب و سطح بالایی از دادهها را یاد گرفت؛ در مخالفت کامل با رویکرد سنتی که برخی مراحل استخراج ویژگی را بصورت دستی طراحی میکرد و فرایند یادگیری با استفاده از آن ویژگیها، تنها پس از انجام این مرحله صورت میگرفت.
کارهای هینتون و بنجیو به طور تجربی این واقعیت را نشان داده بودند، اما مهمتر از آن، این فرض را نشان میداد که شبکههای عصبی عمیق نمیتوانند به خوبی آموزش داده شوند تا غلط باشند. با اینکه لکان قبلا این مطلب را در طول دهه 90 با CNNها نشان داده بود، اما شبکههای عصبی هنوز از شکل مطلوب خارج بودند. بنجیو، با همکاری یان لکان، این موضوع را روی “الگوریتمهای مقیاس دهی در جهت هوش مصنوعی” (Scaling Algorithms Towards AI) تکرار کرد:
“تا همین اواخر، بسیاری معتقد بودند که آموزش معماریهای عمیق، یک مسئله بهینهسازی بسیار دشوار است. با این حال، حداقل دو رویکرد متفاوت در آموزش چنین معماریهایی به خوبی کار کرده است: گرادیان کاهشی ساده که به شبکههای کانولوشنی اعمال شد [لکان و همکاران، 1989، لکان و همکاران، 1998] (برای سیگنالها و تصاویر)، و اخیرا، یادگیری لایه به لایه بدون نظارت به همراه گرادیان کاهشی [هینتن و همکاران، 2006، بنجیو و همکاران، 2007، رانزاتو و همکاران، 2006].
تحقیقات درباره معماریهای عمیق در ابتدای راه است و هنوز الگوریتمهای یادگیری بهتری برای معماریهای عمیق، نیاز به کشف شدن دارند. در نظر گرفتن دیدگاه وسیع تری در مورد هدف کشف اصول یادگیری که میتواند منجر به هوش مصنوعی شود، یک دیدگاه راهنما برای این کار بوده است. امیدواریم الهامبخش دیگران باشیم تا به دنبال راه حلی برای مسئله مقیاس دهی یادگیری ماشین به سمت هوش مصنوعی باشند. “
و آنها واقعا الهامبخش بودند؛ یا حداقل، شروع به این کار کردند. اگرچه یادگیری عمیق هنوز به شكل سونامی امروزی نرسیده بود، اما این موج، بیتردید آغاز شده بود. اما هنوز، نتایج در آن موقع چندان چشمگیر نبود؛ بیشتر عملکرد نشان داده شده در مقالات تا آن موقع، مربوط به مجموعه داده MNIST بود، یک کار کلاسیک برای یادگیری ماشین که معیار استاندارد الگوریتمها برای حدود یک دهه به شمار میآمد.
نشریه هینتون در سال 2006 میزان خطای جالب توجهی فقط در حد 1.25٪ را بر روی مجموعه آزمایشی نشان داد، اما ماشینهای بردار پشتیبان، قبلاً دارای خطای 1.4٪ بودهاند و حتی الگوریتمهای ساده میتوانستند خطایی در یک رقم پایین دریافت کنند. و همانطور که در آن مقاله اشاره شد، یان لکان قبلا میزان خطای 0.95% را با استفاده از CNNها در مقاله “یادگیری مبتنی بر گرادیان برای تشخیص اسناد” (Gradient-based learning applied to document recognition) در سال 1998 نشان داده بود.
بنابراین، عملکرد خوب بر روی مجموعه داده MNIST، لزوما یک دستاورد بزرگ نبود. هینتون و دو تن از دانشجویان فارغ التحصیلش، عبدالرحمان محمد (Abdel-rahman Mohamed) و جورج دال (George Dahl)، با آگاهی از این امر و اطمینان از اینکه زمان آموزش عمیق فرا رسیده است، کارآمدی خود را در یک موضوع بسیار چالش برانگیز هوش مصنوعی نشان دادند: تشخیص گفتار (Speech Recognition).
این دو دانشجو به همراه هینتون، موفق شدند با استفاده از DBNها، رکورد عملکرد ده ساله بر روی یک مجموعه داده استاندارد تشخیص گفتار را بهبود بخشند. این یک دستاورد چشمگیر بود، اما به نظر میرسد تنها اشارهای است به آنچه در آینده قرار است اتفاق بیفتد؛ به طور خلاصه، شکستن بسیاری رکوردهای دیگر.
پیش از این در همرویش فیلم شبکه عصبی کانولوشنی به زبان ساده منتشر شد. برای دیدن فیلم معرفی این آموزش بر روی این لینک (+) و یا پخش کننده پایین کلیک کنید:
برای دریافت بسته کامل این آموزش بر روی لینک زیر کلیک کنید:
شبکه عصبی کانولوشن به زبان ساده
توسعه کلان دادهها (دادههای بزرگ)
بنابراین، پیشرفتهای الگوریتمی مطمئناً رخ داده و منجر به افزایش هیجان در مورد شبکههای عصبی شده بود. اما، این موضوع، به تنهایی بر محدودیتهای شبکههای عصبی که در دهه 90 مشاهده شده بود، غلبه نکرد.
به هر حال، برای آموزش شبکه عصبی، شما فقط به الگوریتم بهینهسازی نیاز ندارید، بلکه به یک عنصر مهم دیگر نیز نیاز دارید: دادهها.
همانطور که قبلتر در ابتدای شروع این مقاله توضیح دادیم، شبکههای عصبی اغلب از طریق آموزش تحت نظارت توسط نمونههای برچسبدار آموزش میبینند. بنابراین برای اعمال آنها به هر مسئلهای، به این دادهها نیاز داریم.
اما، برای انجام کارهای دشواری که شبکههای عصبی به حجم زیادی از این دادهها نیاز دارند، بدست آوردن مجموعه دادههای بزرگ را نباید سرسری گرفت. اگرچه ممکن است این کار از نظر مفهومی، به اندازه ارائه الگوریتمهای هوشمندانه دشوار به نظر نرسد، اما هنوز کار زیادی دارد و داشتن بینش برای تصمیم گیری در مورد ورودیها و خروجیهای مناسب برای فعال کردن تحقیقات جدید نیز بسیار مهم است. بنابراین، بسیار مهم است که از این موضوع غافل نشوید یا آن را مسلم تلقی نکنید.
ما قبلاً به پایگاه داده ارقام دست نویس با نام MNIST (The MNIST database of handwritten digits) -“یک کار کلاسیک یادگیری ماشین که معیار استاندارد الگوریتمها برای حدود یک دهه بود”- اشاره کردیم، که با اصلاح دادهها، برای اولین بار توسط موسسه ملی استاندارد و فناوری (National Institute of Standards and Technology) در سال 1995 ایجاد شده بود. در ادامه، مجموعه دادههایی را که در دهه 2000 ظاهر شدند و برای توسعه یادگیری عمیق بسیار مهم بودند، بررسی میکنیم.
اما با مجموعه دادهای از ارقام دست نویس، کارهای زیادی نمیتوانید انجام دهید. هدف بینایی رایانه (Computer Vision) این است که ماشینها بتوانند تصاویر را به شیوهای مشابه انسانها درک کنند، که البته شامل تشخیص اشیاء موجود در یک تصویر معین نیز میشود.
بنابراین، در دهه 2000 میلادی، محققان تصمیم گرفتند مجموعه دادههایی ایجاد کنند که بتواند برای حل این مسئله استفاده شود. از سال 2005، چالش دستههای شی بصری پاسکال (The PASCAL Visual Object Classes (VOC) Challenge) بصورت سالانه برگزار شد. سپس مجموعه دادههای Caltech 101 و Caltech 256 نیز وجود داشتند که برای تحقیقات بینایی رایانه نیز تأثیرگذار بودند. اما برای موضوع یادگیری عمیق، بدون شک مهمترین پیشرفتی که باید روی آن تمرکز شود، این است: ImageNet.
همانطور که در مقاله کوارتز (Quartz) با عنوان “دادههایی که تحقیقات هوش مصنوعی– و احتمالاً جهان – را متحول کرد” (The data that transformed AI research — and possibly the world)، بررسی شده است، ایده پروفسور فی فی لی (Fei-Fei Li) در ایجاد یک مجموعه داده حاوی تصاویری برای بسیاری از مفاهیم موجود در پایگاه داده عظیم WordNet (که مانند یک فرهنگ لغت بزرگ انگلیسی است که کلمات به همراه معانی آنها گروهبندی شده اند) نیاز به ایجاد یک مجموعه داده با اندازهای بیسابقه داشت.
خوشبختانه، بلافاصله پس از ایجاد این ایده، گزینه جمعآوری منابع (تقسیم کار برچسب گذاری دادهها برای بسیاری از افراد از طریق اینترنت) نیز انجام شد و این پروژه توانست پیش برود. با این وجود، سالها طول کشید تا لی و دانشجویان و همکارانش، مجموعه دادهها و مقاله خود را در سال 2009 منتشر کردند.
تا آن زمان، این مجموعه داده، شامل 3.2 میلیون تصویر برای 5247 مفهوم مختلف بود، که هنوز فاصله زیادی با هدف نهایی 50 میلیون تصویر دارد، اما همچنان، در مقیاس با مجموعه دادههای قبلی، بسیار بزرگتر است.
با این حال، بلافاصله برای جامعه بینایی رایانه آشکار نشده بود که این مجموعه داده، در واقع پیشرفتهای مهمی را ممکن میسازد. از این گذشته، یادگیری طبقهبندی انواع مختلف اشیا، متشکل از مجموعهای بزرگ از تصاویر، هنوز به عنوان الگوریتمهای آن روز انجام نشده بود.
حتی زمانی که مجموعه دادهها برای چالش تشخیص بصری ImageSet Large Scale (که فقط 1000 نوع شی و فقط 150.000 تصویر داشت) درنظر گرفته شد، شرکت کننده برنده سال اول نتوانست دسته مناسب را با 5 حدس برای 30 درصد از مجموعه داده آزمایشی انتخاب کند.
بنابراین، این یک مسئله سخت و همچنین، یک چالش خوب برای نشان دادن پتانسیل شبکههای عصبی بود. اما، چندین سال دیگر برای رسیدن به آخرین قطعه از پازل یادگیری عمیق طول میکشد …
اهمیت فراگیری (brute force)
پیشرفتهای الگوریتمی و مجموعه دادههای جدید که در بالا توضیح داده شد، بدون شک برای ظهور یادگیری عمیق مهم بودند، اما یک مؤلفه اساسی دیگر نیز وجود داشت که از دهه 1990 ظاهر شده بود: قدرت محاسباتی محض.
با پیروی از قانون مور، رایانهها نسبت به روزهای کند دهه 90، دهها برابر سریعتر شدند و یادگیری با مجموعه دادههای بزرگ و لایههای زیاد را بسیار راحتتر کردند. اما حتی این هم کافی نبود؛ CPUها به طرز دیوانهواری در حال رشد بودند و قدرت کامپیوترها، عمدتا از طریق محاسبات ضعیف موازی با چندین CPU شروع به افزایش کرد.
برای یادگیری میلیونها وزن در مدلهای عمیق، محدودیتهای موازیسازی ضعیف CPU باید کنار گذاشته میشد و با قدرت عظیم محاسبات موازی GPUها جایگزین میگشت. در نظر گرفتن این موارد نشان میدهد که چگونه عبدالرحمان محمد، جورج دال و جف هینتون، رکورد خود را در زمینه عملکرد تشخیص گفتار شکستند:
“با الهام از یکی از سخنرانیهای هینتون در مورد شبکههای عصبی عمیق، محمد شروع به استفاده از آنها در گفتار کرد؛ اما شبکههای عصبی عمیق برای رایانههای معمولی به قدرت محاسباتی زیادی نیاز داشت. بنابراین هینتون و محمد، جورج دال را وارد کار کردند.
دال، دانشجوی آزمایشگاه هینتون، نحوه آموزش و شبیهسازی کارآمد شبکههای عصبی را با استفاده از همان کارتهای گرافیکی سطح بالایی که امکان انجام بازیهای رایانهای را در رایانههای شخصی فراهم میکند، کشف کرده است.
هینتون گفت: “آنها از همین روش برای مسئله تشخیص قطعات واج در پنجرههای بسیار کوتاه گفتار استفاده کردند. آنها به طور قابل توجهی نتایج بهتری نسبت به روشهای قبلی در معیار استاندارد سه ساعته به دست آوردند. “
بیان این که استفاده از پردازندههای گرافیکی یا GPUها بجای CPUها در این مورد، چقدر کار را سریعتر کرده است، دشوار است، اما مقاله “یادگیری عمیق بدون نظارت در مقیاس بزرگ با استفاده از پردازندههای گرافیکی” (Large-scale Deep Unsupervised Learning using Graphics Processors) در همان سال، یک عدد را پیشنهاد میکند: 70 برابر سریعتر بله، 70 برابر! یعنی کاهش طول کار از چندین هفته به چند روز، حتی یک روز.
نویسندگانی که قبلاً کدگذاری پراکنده (Sparse coding) را توسعه داده بودند، از جمله اندرو ان جی (Andrew Ng)، محقق پرکار حوزه یادگیری ماشین، به طور فزایندهای متوجه شدند که استفاده از بسیاری از دادههای آموزشی و محاسبات سریع، توسط محققان و به نفع تغییرات گام به گام در الگوریتمهای یادگیری، کم ارزش شده است.
این ایده توسط مقالهای در سال 2010 با عنوان “شبکههای عصبی ساده عمیق بزرگ در تشخیص رقم دست نویس برتر هستند” (Deep Big Simple Neural Nets Excel on Handwritten Digit Recognition) – که به طور مشترک توسط اشمیدهوبر (Schmidhuber)، یکی از مخترعان شبکههای LSTM بازگشتی نوشته شده است – که درصد خطای فوق العاده 0.35٪ را نشان میداد، به شدت پشتیبانی شد. این درصد خطا، بر روی مجموعه داده MNIST فقط با استفاده از شبکههای عصبی واقعاً بزرگ، تغییرات زیادی در ورودی و پیادهسازی کارآمد انتشار رو به عقب به کمک GPU بدست آمد.
این ایدهها برای چندین دهه وجود داشته است. بنابراین اگرچه نمیتوان گفت پیشرفتهای الگوریتمی اهمیتی نداشتند، اما این نتیجه، این مطلب را با قوت تایید میکند که این رویکرد فراگیر (brute force) در مجموعههای آموزشی بزرگ و محاسبات موازی سریع نیز بسیار مهم بودند.
هم رویش منتشر کرده است:
آموزش شبکه عصبی مصنوعی -- از صفر به زبان ساده
استفاده دال و محمد از GPU برای به دست آوردن این نتایج رکوردشکن، یک موفقیت اولیه و نسبتاً معمولی به حساب میآمد، اما برای تحریک هیجان و دعوت این دو نفر برای کارآموزی در تحقیقات مایکروسافت کافی بود. در اینجا، آنها از گرایش دیگری در محاسبات که تا آن زمان بوجود آمده بود، بهره میبردند: دادههای بزرگ یا کلان دادهها. سادهترین اصطلاحات، که در زمینه یادگیری ماشین به راحتی قابل فهم است: دادههای آموزشی زیاد.
و زیاد بودن دادههای آموزشی مهم است، زیرا بدون آن هنوز شبکههای عصبی عملکرد خوبی ندارند و دچار بیش برازش (overfitting) میشوند (بر روی دادههای آموزشی، عالی کار میکنند، اما به دادههای آزمایشی جدید قابل تعمیم نیستند). این امر منطقی است؛ پیچیدگی آنچه که شبکههای عصبی بزرگ میتوانند محاسبه کنند به گونهای است که دادههای زیادی برای جلوگیری از یادگیری همه جنبههای کوچک و غیر مهم مجموعه آموزشی لازم است. اما همین امر در گذشته چالشی بزرگ برای محققان بود.
بنابراین در حال حاضر، قدرت محاسبات و جمعآوری اطلاعات شرکتهای بزرگ بسیار ارزشمند است. این دو دانشجو، قدرت یادگیری عمیق را در سه ماه کارآموزی خود، بصورت دستی به اثبات رساندند و از آن زمان، تحقیقات مایکروسافت در تشخیص گفتار یادگیری عمیق، پیشتاز بوده است.
مایکروسافت تنها شرکت بزرگی نبود که قدرت یادگیری عمیق را تشخیص داد (اگرچه به صورت دستی اولین شرکت بود). ناودیپ جیتلی (Navdeep Jaitly)، یکی دیگر از دانشجویان هینتون، در سال 2011 برای کارآموزی تابستانی به شرکت گوگل رفت. در آنجا، او بر روی تشخیص گفتار گوگل کار کرد و نشان داد که با ترکیب یادگیری عمیق، تنظیمات موجود آنها میتواند بسیار بهبود یابد. این رویکرد تجدید نظر شده، خیلی زود قدرت تشخیص گفتار اندروید را افزایش داد و جایگزین بسیاری از راه حلهای طراحی شده قبلی گوگل شد.
در کنار تأثیرات چشمگیر کارآموزان متواضع دکتری بر محصولات این شرکتهای غول پیکر، آنچه در اینجا قابل توجه است این است که هر دو شرکت از ایدههای یکسانی استفاده میکردند؛ ایدههایی که در معرض دید عموم قرار داشت تا با آنها کار کنند.
در واقع، کار مایکروسافت و گوگل، و همچنین IBM و آزمایشگاه هینتون، در سال 2012، در مقالهای با عنوان “شبکههای عصبی عمیق برای مدلسازی آکوستیک در تشخیص گفتار: دیدگاههای اشتراکی چهار گروه تحقیقاتی” (Deep Neural Networks for Acoustic Modeling in Speech Recognition: The Shared Views of Four Research Groups) نتیجه گیری شد.
چهار گروه تحقیقاتی – که سه گروه از آن، شرکتهایی بودند که مطمئناً میتوانستند از یک کیف پر از حق ثبت اختراع و امتیاز به سبب ظهور فناوری شگفت انگیز یادگیری عمیق منفعت کنند، و یک گروه تحقیقاتی دانشگاهی که این فناوری را منتشر کرد – با یکدیگر همکاری کردند و نتایج خود را برای جامعه تحقیقاتی گستردهتر منتشر کردند. اگر یک مورد سناریوی ایده آل برای استفاده از ایدههای تحقیقاتی توسط صنعت وجود داشته باشد، به نظر میرسد همین مورد باشد.
ناگفته نماند که شرکتها این کار را برای امور خیریه انجام میدادند. این آغاز کار همه آنها در کشف نحوه تجاریسازی این فناوری بود، و بیشتر از همه گوگل. اما شاید نه هینتون، بلکه اندرو ان جی (Andrew Ng) بود که شرکت را برانگیخت تا به احتمال زیاد، بزرگترین پذیرنده تجاری و طرفدار این فناوری در جهان شود.
در سال 2011، ان جی به طور اتفاقی هنگام بازدید از شرکت، با عضو افسانهای گوگل، جف دین (Jeff Dean) ملاقات کرد و در مورد تلاشهای خود برای آموزش شبکههای عصبی با منابع محاسباتی فوق العاده گوگل صحبت کرد. این موضوع، دین را جذب کرد و به همراه ان جی، گوگل برین (Google Brain) را تشکیل دادند؛ تلاشی برای ساختن شبکههای عصبی واقعاً غول پیکر و کشف آنچه میتوانند انجام دهند.
این کار منجر به یادگیری بدون نظارت شبکههای عصبی در مقیاسی بیسابقه شد؛ 16000 هسته CPU که قدرت یادگیری فوق العاده 1 میلیارد وزن را تامین میکرد (برای مقایسه، کار موفقیت آمیز هینتون در سال 2006 با DBN، حدود 1 میلیون وزن داشت).
این شبکه عصبی، روی ویدئوهای یوتیوب (Youtube)، کاملاً بدون برچسب، آموزش داده شد و یاد گرفت که متداولترین اشیاء موجود در آن ویدیوها را تشخیص دهد؛ که البته باعث خوشحالی جمعی اینترنت به سبب کشف گربهها توسط این شبکه شد:
این کار همانقدر که زیبا بود، مفید هم بود. همانطور که در مقالهای که به طور مرتب منتشر میشد، گزارش شده است، ویژگیهای آموخته شده توسط این مدل، میتوانست برای ضبط عملکرد در یک معیار استاندارد بینایی رایانه مورد استفاده قرار گیرد.
با این کار، ابزارهای داخلی گوگل برای آموزش شبکههای عصبی عظیم متولد شدند و از آن زمان به بعد تکامل خود را ادامه دادهاند. موج تحقیقات یادگیری عمیق که در سال 2006 آغاز شده بود، اکنون بدون شک به صنعت راه پیدا کرده بود.
معادله یادگیری عمیق
در حالی که یادگیری عمیق در حال ورود به صنعت بود، جامعه تحقیقاتی به سختی ساکن میماند. کشف این که استفاده کارآمد از پردازندههای گرافیکی و قدرت محاسباتی بطور کلی بسیار مهم است، مردم را بر آن داشت تا مفروضات دیرینه را بررسی کرده و سوالاتی را مطرح کنند که شاید مدتها پیش باید پرسیده میشد؛ به عنوان مثال، دقیقا چرا انتشار رو به عقب، به خوبی کار نمیکند؟
بینش پرسیدن اینکه چرا رویکردهای قدیمی کار نمیکردند، برخلاف روشهای جدید که کار میکردند، خاویر گلورت (Xavier Glort) و یوشوا بنجیو را به نوشتن مقالهای با عنوان “درک دشواری آموزش شبکههای عصبی عمیق پیشخور” (Understanding the difficulty of training deep feedforward neural networks) در سال 2010 واداشت. در آن مقاله، آنها دو یافته بسیار معنی دار را مورد بحث قرار دادند:
- تابع فعالسازی غیر خطی خاصی که برای نورونها در یک شبکه عصبی انتخاب شده است تأثیر زیادی بر عملکرد دارد و تابعی که اغلب به طور پیش فرض استفاده میشود، انتخاب خوبی نیست.
- انتخاب وزنها بصورت تصادفی، چندان مشکل ساز نبود. چیزی که بیشتر مشکل ساز بود، انتخاب تصادفی وزنها بدون در نظر گرفتن این مطلب بود که وزنها برای کدام لایه هستند. مشکل قدیمی گرادیان محو شونده، اساساً به این دلیل رخ میدهد که انتشار رو به عقب، شامل دنبالهای از ضربها است که به طور تغییرناپذیری منجر به مشتقات کوچکتر برای لایههای قبلی میشود. مگر اینکه وزنها با مقیاسهای مختلف با توجه به لایهای که در آن قرار دارند انتخاب شوند. این تغییر ساده منجر به پیشرفتهای قابل توجهی میشود.
نکته دوم کاملاً واضح است، اما مورد اول، این سوال را ایجاد میکند: “بنابراین، بهترین تابع فعالسازی چیست”؟
سه گروه مختلف این سوال را مورد بررسی قرار دادند – یک گروه با لکان، در مقالهای با عنوان “بهترین معماری چند مرحلهای برای تشخیص اشیا چیست؟ ” (What is the best multi-stage architecture for object recognition?)، گروهی با هینتون، در مقالهای با عنوان “توابع پله خطی یکسوسازی شده، ماشینهای محدود شده بولتزمن را بهبود میبخشند” (Rectified linear units improve restricted boltzmann machines)، و نهایتا گروهی با بنجیو، در مقالهای با عنوان “شبکههای عصبی یکسوساز پراکنده عمیق” (Deep Sparse Rectifier Neural Networks) – و همه آنها یک پاسخ شگفت انگیز پیدا کردند: تابع مشتق ناپذیر و بسیار ساده f(x) = max(0,x) بهترین انتخاب است.
این پاسخ شگفت آور است، زیرا این تابع به نوعی عجیب است؛ کاملاً مشتق پذیر نیست، یا بهتر است بگوییم دقیقاً در صفر مشتق پذیر نیست، بنابراین روی کاغذ، تا جایی که به ریاضیات مربوط میشود، بسیار زشت به نظر میرسد. اما صفر، به وضوح یک ایهام بسیار کوچک ریاضیاتی است؛ یک سوال بزرگتر این است که چرا چنین تابع سادهای، با مشتقات ثابت در هر دو طرف عدد صفر، بسیار خوب است. پاسخ دقیقاً مشخص نیست، اما به نظر میرسد چند ایده کاملاً تثبیت شده است:
- تابع فعالسازی یکسوسازی شده منجر به نمایشهای پراکنده (sparse) میشود، بدین معنا که بسیاری از نورونها در واقع نیازی به خروجی مقادیر غیر صفر برای هر ورودی معین ندارند. در سالهای منتهی به این نقطه، پراکندگی بنظر برای یادگیری عمیق مفید بود، هم به این دلیل که اطلاعات را به شکل مقاومتری نشان میدهد و هم اینکه به کارآیی محاسباتی قابل توجهی منجر میشود (اگر اکثر نورونهای شما خروجی صفر داشته باشند، در واقع میتوانید اکثر آنها را نادیده بگیرید و خیلی سریعتر چیزها را محاسبه کنید). اتفاقا، محققان علوم اعصاب محاسباتی، اهمیت محاسبات پراکنده را در زمینه سیستم بینایی مغز، یک دهه قبل از آنکه در زمینه یادگیری ماشین مورد بررسی قرار گیرد، معرفی کرده بودند.
- سادگی تابع و مشتقات آن، کار با آن را بسیار سریعتر از تابع سیگموئید نمایی یا tanh مثلثاتی میکند. همانند استفاده از پردازندههای گرافیکی، این موضوع نیز فقط یک پیشرفت کوچک نیست، بلکه واقعاً مهم است تا بتوانیم شبکههای عصبی را تا جایی که در مسائل چالش برانگیز عملکرد خوبی ارائه دهند، مقیاس کنیم.
- در ادامه، یک تحلیل دیگر با عنوان “غیرخطیگریهای یکسوساز، مدلهای آکوستیک شبکه عصبی را بهبود میبخشند” (Rectifier Nonlinearities Improve Neural Network Acoustic Models) که توسط اندرو ان جی نوشته شده است نیز نشان داد که مشتق ثابت 0 و 1 در ReLU برای یادگیری چندان مضر نیست. در واقع، این تابع، جلوی مشکل گرادیان محوشونده را میگیرد؛ مشکلی که از عوارض انتشار رو به عقب بود. علاوه بر این، در کنار تولید بازنماییهای پراکنده، این تابع بازنماییهای توزیع شده بیشتری نیز تولید میکند؛ یعنی از ترکیب مقادیر متعدد نورونهای مختلف بدست میآید، نه اینکه در نورونهای جداگانه بصورت محلی قرار گیرد.
هم رویش منتشر کرده است:
آموزش ساخت شبکه عصبی با پایتون (و دیگر زبانها) از صفر
در این مرحله، با تمام این اکتشافات از سال 2006، مشخص شد که پیش آموزش بدون نظارت برای یادگیری عمیق ضروری نیست. البته انجام آن مفید است، شکی در این نیست، اما همچنین نشان داده شد که در برخی موارد که به خوبی انجام شدهاند، آموزش کاملا تحت نظارت (با مقیاسهای وزنی آغازین و تابع فعالسازی صحیح) میتواند از آموزشهایی که شامل مرحله بدون نظارت بودهاند، بهتر عمل کند.
بنابراین، واقعا چرا یادگیری کاملا تحت نظارت، با انتشار رو به عقب، در گذشته خوب کار نمیکرد؟ جفری هینتون یافتههای تا به امروز را در این چهار نکته خلاصه کرده است:
- مجموعه دادههای برچسب گذاری شده ما، هزاران بار کوچکتر بودند.
- رایانههای ما میلیونها بار آهستهتر بودند.
- ما وزنها را به صورت احمقانهای تنظیم میکردیم.
- ما از نوع اشتباهی از غیر خطیگری استفاده کردیم.
بنابراین ما اینجا هستیم. یادگیری عمیق. اوج دههها تحقیق، همگی منجر به این شد:
یادگیری عمیق = دادههای آموزشی زیاد + محاسبات موازی + الگوریتمهای مقیاس پذیر و هوشمند
نباید بگوییم همه چیزهایی که باید فهمیده میشد تا این مرحله مشخص شده بود. این کاملا اشتباه است. آنچه به دست آمده بود دقیقاً برعکس بود: شهود مردم اغلب اشتباه بود و به ویژه تصمیمات و فرضیات بدون تردید، اغلب بسیار بیاساس بودند.
پرسیدن سوالات ساده، امتحان کردن چیزهای ساده؛ اینها قدرت بهبود تکنیکهای پیشرفته را داشتند. و دقیقاً این اتفاق افتاده است، از آن زمان ایدهها و رویکردهای بیشتری در یادگیری عمیق مورد بررسی قرار گرفته و به اشتراک گذاشته شده است.
یک مثال:
مقاله “بهبود شبکههای عصبی با جلوگیری از تطبیق همزمان آشکارسازهای ویژگی” (Improving neural networks by preventing co-adaptation of feature detectors) نوشته شده توسط هینتون و همکارانش. این ایده بسیار ساده است:
برای جلوگیری از بیش برازش، وانمود کنید که برخی از نورونها بطور تصادفی در حین آموزش وجود ندارند. این ایده سرراست – به نام دراپ اوت (Dropout) – یک ابزار بسیار کارآمد برای پیادهسازی رویکرد بسیار قدرتمند یادگیری جمعی (ensemble learning) است، که به معنای یادگیری از دادههای آموزشی به روشهای مختلف است.
جنگلهای تصادفی، یک تکنیک غالب در یادگیری ماشین تا به امروز، عمدتا به این دلیل که نوعی یادگیری جمعی به حساب میآید، مؤثر است. آموزش چندین شبکه عصبی مختلف ممکن است اما از نظر محاسباتی بسیار هزینهبر است، ولی این ایده ساده، در اصل به همان نتیجه میرسد و در واقع عملکرد را به میزان قابل توجهی بهبود میبخشد.
با این وجود، این همه اکتشافات تحقیقاتی از سال 2006، چیزی نبود که باعث شود بینایی رایانه یا سایر جوامع تحقیقاتی دوباره به شبکههای عصبی احترام بگزارند. چیزی که موجب این احترام شد، تا حدودی نانجیبانه بود: از بین بردن کامل روشهای یادگیری غیر عمیق بر اساس یک معیار رقابتی مدرن.
جفری هینتون، دو نویسنده همکار خود در دراپ اوت (Dropout)، الکس کریشفسکی (Alex Krizhevsky) و ایلیا سوتسکور (Ilya Sutskever) را به خدمت گرفت تا ایدههای کشف شده را برای ساخت یک شرکت کننده در مسابقه بینایی رایانه ImageNet Large Scale Visual Recognition (ILSVRC) در سال 2012 به کار گیرد.
برای من، این بسیار جالب است که اکنون میفهمم کار آنها، که در مقالهای با عنوان “دستهبندی ImageNet با شبکههای عصبی کانولوشنی عمیق” (ImageNet Classification with deep convolutional neural networks) توصیف شده، ترکیبی از مفاهیم بسیار قدیمی (یک شبکه کانولوشنی با لایههای کانولوشنی و پولینگ، با تغییراتی در دادههای ورودی) با چندین بینش کلیدی جدید (پیادهسازی پردازنده گرافیکی بسیار کارآمد، نورونهای ReLU، dropout) است، و این دقیقا همان یادگیری عمیق مدرن است.
بنابراین، آنها چگونه عمل کردند؟ بسیار، بسیار بهتر از نزدیکترین شرکت کننده بعدی: میزان خطای آنها 15.3٪ بود، در حالی که دومین خطای نزدیک 26.2٪ بود. این، اولین و تنها استفاده از شبکه عصبی کانولوشنی به عنوان شرکت کننده در آن مسابقه، نشانهای بیچون و چرا بود که CNNها و به طور کلی یادگیری عمیق، باید برای بینایی رایانه جدی گرفته شود.
در حال حاضر، تقریباً همه شرکت کنندگان در این مسابقه، CNNها هستند؛ یک مدل شبکه عصبی که یان لکان از سال 1989 با آن کار میکرد. شبکههای عصبی بازگشتی LSTM، که در دهه 90 توسط سپ هوخریتر (Sepp Hochreiter) و یورگن اشمیدهوبر برای حل مشکل انتشار روبه عقب طراحی شده بود را به یاد میآورید؟ اینها نیز در حال حاضر، تکنولوژیهای بروز برای کارهای دارای توالی مانند پردازش گفتار هستند.
این نقطه عطف بود. موج فزایندهای از هیجان در مورد پیشرفت احتمالی به دستاوردهای غیرقابل انکاری رسیده بود که بسیار فراتر از سایر تکنیکهای شناخته شده بود. استعاره سونامی که در قسمت 1 با آن شروع کردیم، همین جا شروع شد، و تا به امروز در حال رشد و تشدید است. یادگیری عمیق اینجاست، و هیچ زمستانی به چشم نمیخورد.
در فیلم زیر یک گذشته نگری خوب در یک سخنرانی TED که توسط فی فی لی ارائه شد، نشان داده شده است. برای دیدن فیلم کلیک کنید:
برای تماشای این فیلم تاریخی در YouTube کلیک کنید (+)
سخن پایانی: دهه یادگیری عمیق
اگر این یک فیلم بود، مسابقه ImageNet در سال 2012، به احتمال زیاد نقطه اوج آن بود و اکنون ما پیشرفت آنها را در ادامه این مقاله بیان می کنیم که “آنها اکنون کجا هستند”:
یان لکان در فیس بوک است. جفری هینتون در گوگل. اندرو ان جی در کورسرا، بایدو، گوگل و موارد دیگر. بنجیو، اشمیدوبر و لی، در واقع هنوز در دانشگاه هستند، اما در صنایع وابسته خود نیز حضور دارند، و احتمالاً با استنادات و/یا دانشجویان تحصیل کرده بیشتر (و بسیاری دیگر که به ظهور یادگیری عمیق کمک کردند).
اگرچه این ایدهها و دستاوردهای یادگیری عمیق قطعاً هیجان انگیز هستند، اما هنگام نوشتن این مقاله، ناگزیر تحت تاثیر قرار گرفتم که این افراد، که دهها سال در این زمینه کار کردهاند (با اینکه خیلیها رهایش کردند)، اکنون ثروتمند، موفق و مهمتر از همه، در وضعیتی بهتر برای انجام تحقیقات بیش از هر زمان دیگری هستند.
ایدههای این افراد هنوز بسیار در معرض دید عموم است و در واقع، اساسا همه این شرکتها، چارچوبهای یادگیری عمیق خود را به صورت متن باز انجام میدهند، مانند نوعی دیدگاه آرمان شهری درباره تحقیقات به رهبری صنعت. عجب داستانی!
منصفانه است که بگوییم از سال 2012، یادگیری عمیق انقلابی در هوش مصنوعی به عنوان یک زمینه ایجاد کرده است. همانطور که در قسمت اول این مقاله خواندیم، “به نظر میرسد 2015 سالی است که نیروی کامل سونامی به کنفرانسهای اصلی پردازش زبان طبیعی (NLP) برسد.” و همین مطلب در مورد بینایی رایانه، رباتیک، پردازش صدا، هوش مصنوعی در پزشکی و موارد دیگر نیز صادق بود.
بیان خلاصه همه تحولات اساسی در این دوره، تاریخچه فرعی طولانی خود را میطلبد، و قبلاً در پست وبلاگ با عنوان “دهه یادگیری عمیق” (The Decade of Deep Learning) به خوبی انجام شده است. برای امروز همین قدر کافیست که بدانیم پیشرفت از سال 2012 سریع و مداوم بود و همه کاربردهای شبکههای عصبی را که تا کنون مشاهده کردهایم (برای یادگیری تقویتی، مدلسازی زبان، دستهبندی تصویر، و موارد دیگر) به منظور استفاده از یادگیری عمیق گسترش یافته و منجر به پیشرفتهای اساسی شده است.
این پیشرفت، با هیجان زیادی همراه شد و حوزه هوش مصنوعی به سرعت رشد کرد:
و اکنون در سال 2020 هستیم. هوش مصنوعی به عنوان یک حوزه، بسیار بزرگ است و هنوز هم به سرعت در حال حرکت است، اما بسیاری از میوههای کم ارتفاع در ارتباط با مسائل هوش مصنوعی با یادگیری عمیق چیده شدهاند، و ما با سرعتی فزاینده در حال حرکت به سمت کاربردهای متنوع شبکههای عصبی و یادگیری عمیق هستیم.
و به دلایل خوب:
یادگیری عمیق هنوز تنها زمانی بهترین عملکرد را دارد که مجموعه داده عظیمی از نمونههای ورودی-خروجی برای یادگیری وجود داشته باشد، که برای بسیاری از مسائل در هوش مصنوعی صادق نیست و محدودیتهای عمده دیگری نیز دارد (تفسیرپذیری، راستی آزمایی و موارد دیگر).
اگرچه این یک تاریخچه مختصر بود، اما تاریخچه شبکههای عصبی هنوز در حال نوشته شدن است و تا مدتی ادامه خواهد داشت. بیایید امیدوار باشیم این فناوری قدرتمند همچنان به شکوفایی ادامه دهد و در درجه اول، برای رفاه بیشتر بشر و پیشرفت در آینده مورد استفاده قرار گیرد.
برای مطالعه قسمت های بعدی این مقاله و مقاله های پیرامون موضوع شبکه های عصبی، کلیک کنید:
تاریخچه شبکه عصبی و یادگیری عمیق ___ (قسمت اول)
تاریخچه یادگیری عمیق و شبکه عصبی ___ (قسمت دوم)
شبکه های عصبی چیست __ تاریخچه شبکه عصبی و یادگیری ماشین (قسمت سوم)
شبکه عصبی بازگشتی چیست ؟ آشنایی با شبکههای عصبی بازگشتی (RNN) و (LSTM)
شبکه عصبی کانولوشن یا Convolutional چیست ؟ __ راهنمای جامع به روش ELI5
شبکه عصبی چیست ؟ ___ آشنایی با شبکه های عصبی مصنوعی
کلید واژگان
شبکه های عصبی عمیق – شبکه های عصبی عمیق چیست – مقاله شبکه های عصبی عمیق – مقاله شبکه های عصبی یادگیری عمیق – تاریخچه شبکه عصبی – تاریخچه شبکه های عصبی کانولوشن – تاریخچه شبکه های عصبی – شبکه عصبی عمیق – تاریخچه یادگیری عمیق – تاریخچه یادگیری ماشین – تاریخچه هوش مصنوعی – اهمیت یادگیری عمیق – شبکه عصبی عمیق – تاریخچه یادگیری ماشینی – یادگیری ماشین – یادگیری ماشینی – مبانی یادگیری ماشین – شبکه عصبی – شبکه های عصبی – شبکه عصبی چیست – شبکه های عصبی چیست – شبکه عصبی به زبان ساده
منبع
دوره های آموزشی مرتبط
- آموزش نامپای NumPy --- دانشمند داده شوید! ۹۲,۰۰۰ تومان
- آموزش تشخیص اشیای اختصاصی با YOLO ۷۵,۰۰۰ تومان