یادگیری ژرف (Deep Learning)

اگر به بهره گیری از الگوریتم های یادگیری ژرف (Deep Learning) علاقه مندید، باید این کتاب را بخوانید! کتابی که در حال حاضر بهترین مرجع برای کسب دانش در زمینه مبانی الگوریتم های یادگیری ژرف در تمام جهان است!

بخش های اول تا چهارم این کتاب به پس زمینه تاریخی یادگیری ژرف، مبانی جبر خطی، تئوری احتمال و الگوریتم های تکرارشونده بهینه سازی قطعی (Iterative Deterministic Optimization) می پردازد.

بخش پنجم، به سراغ معرفی ابتدایی الگوریتم های یادگیری ماشین (Machine Learning) می رود. نویسندگان موضوعاتی نظیر اهمیت داشتن مجموعه داده های آموزش و آزمایش (Training and Test Datasets)، هایپرپارامترها، برآورد بیشینه راست نمایی (Maximum Likelihood)، برآورد بیشینه پسین (Maximum a Posterior) و هم چنین الگوریتم گرادیان نزولی تصادفی را تشریح می کنند.

بخش ششم بر روی شناخت پرسپترون (Perceptron) های چندلایه رو به جلو، انواع مختلف واحدهای پنهان (Hidden Units) و هم چنین نمودهای متفاوت واحدهای خروجی (Ouput Units) مربوط به فرض های متنوع مدل های احتمالی با درنظرگیری توزیع احتمالی داده های ورودی تمرکز دارد. علاوه بر این، در این بخش مفهوم الگوریتم های تفکیک (Differentiation Algorithms) به کمک گراف های محاسباتی (Computational Graphs) نیز به بحث گذاشته شده است. روش گراف های محاسباتی ابزاری بسیار قدرتمند برای محاسبه مشتق توابع هدف (Objective Functions) در معماری های پیچیده شبکه ای است.

در بخش هفتم کتاب، مفهوم بسیار مهم تنظیم و تصحیح (Regularization) مطرح می شود. در اواسط دهه ۱۹۸۰ میلادی، فلسفه حاکم بر آن بود که مدل سازی ها از معماری های شبکه ای کوچک تر آغاز شود و به مرور این معماری توسعه یافته و بزرگ تر شود.اما در اوایل قرن ۲۱ ام، مشخص شد که برای انواع مشخصی از مسائل پیچیده راه کارآمدتر آن است که از یک معماری شبکه ای بسیار پیچیده آغاز کنیم و سپس آن معماری بدون قربانی کردن کارآیی و کیفیت پیش بینی ها، کوچک سازی شود. ایده بنیادین پشت پرده آن است که به جای پیدا کردن پارامترهای ماشین آموزش گیرنده که تنها خطای پیش بینی ماشین را کاهش می دهد، قاعده آموزش طوری طراحی شده است که مقدار یک تابع هدف کمینه شود. تابع هدفی که مقدارش هم در زمانی که خطای پیش بینی بالا باشد و هم در زمانی که ماشین آموزش گیرنده تعداد زیادی پارامتر آزاد داشته باشد، بالا خواهد بود. بنابراین، با این رویکرد، ماشین آموزش گیرنده در طول پروسه آموزش، معماری خود را نیز طراحی و اصلاح خواهد کرد! این روش به نام تنظیم و اصلاح یا Regularization مشهور است. شیوه استاندارد Regularization یعنی L1 جریمه ای را در تابع هدف برای زمانی که مجموع مقادیر مطلق پارامترها بزرگ باشد در نظر می گیرد. در شیوه استاندارد دوم (L2)، جریمه برای زمانی که مجموع مجذور مقادیر پارامترها بزرگ شود، در نظر گرفته می شود. آموزش خصمانه (Adversarial Training) نیز به عنوان یک روش Regularization در این کتاب مطرح شده است.

بخش هشتم کتاب، روش های بهینه سازی (Optimization) را در آموزش معماری های شبکه ای یادگیری ژرف تشریح می کند. روش هایی نظیر Batch، ‌Minibatch، گرادیان تصادفی نزولی (SGD)، ایده استفاده از Momentum برای تسریع همگرایی روش های گرادیان نزولی، استراتژی های مقداردهی اولیه پارامترها (Parameter Initialization)، روش های تسریع همگرایی RMSprop و ADAM و شکل های مختلف آن ها، الگوریتم های حافظه محدود BFGS، به روزرسانی گروه های پارامترها به طور هم زمان (نزول هماهنگ بلوکی یا Block Coordinate Descent)، میانگین گیری آخرین پارامترها در الگوریتم های آموزش سازگارشونده برخط (Online Adaptive Algorithms) با هدف بهبود برآوردها (Polyak Averaging)، پیش آموزش نظارت شده، روش های پیوستگی (Continuation Methods) و یادگیری طبق برنامه (Curriculum Learning) از مهم ترین عناوین بحث شده در این بخش هستند. هر کسی که در حال به کارگیری یه الگوریتم یادگیری ژرف است باید با همه این شیوه های آشنا باشد. هم چنین باید زمان و موقعیت به کارگیری هر یک را بداند چرا که این تکنیک ها عموماً به طور خاص برای رفع مشکلات همه گیر در کاربردهای خاص یادگیری ژرف توسعه پیدا کرده اند.

بخش نهم کتاب بر شبکه های عصبی پیچشی (در هم تنیده یا Convolutional Neural Networks) تمرکز دارد. درست همانند عملگر پیچش (Convolution) در دامنه زمان، در یک شبکه عصبی پیچشی، عملگر پیچش در دامنه مکانی اعمال می شود. ایده پایه ای CNN ها که مجموعه ای از عملگرهای پیچشی مکانی که دارای پارامترهای آزاد هستند بر روی تصویر اعمال می شود که به پردازش نواحی کوچکی از تصویر منجر می شود. خروجی این اتفاق، الگوی ورودی برای لایه های بعدی عملگرهای پیچشی مکانی را تولید می نماید. به این شیوه اجزاء و عناصر تصویر ابتدا در سطوح کوچک (نظیر لبه ها) شناسایی شده و بعد با ترکیب این اجزاء، لایه های بعدی به شناسایی عناصر و ویژگی های بزرگ تر تصویر می پردازند.

بخش دهم موضوع شبکه های عصبی بازگشتی (Recurrent Neural Networks یا ‌RNN) را مورد بحث قرار داده و روش استخراج روش های آموزش برای آن ها به کمک گراف های محاسباتی را تشریح می کند. بخش یازدهم، نوعی راهنما برای طراحی یک متدولوژی عملیاتی در استفاده از روش های یادگیری ژرف است. بخش دوازدهم کتاب به کاربردهای مختلف یادگیری ژرف در حوزه های دید کامپیوتری (Computer Vision)، تشخیص گفتار (Speech Recognition)، پردازش زبان طبیعی (Natural Language Processing)، ترجمه ماشینی و یا سامانه های توصیه گر (Recommender Systems) اشاره می کند.

یک سوم پایانی کتاب شامل مباحثی پیرامون زمینه های پژوهشی حال حاضر عرصه یادگیری ژرف در محیط های علمی و دانشگاهی می باشد.

مخاطب هدف:

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

نویسندگان کتاب:

دکتر یان گودفلو (Ian Goodfellow)، دکترای خود را در زمینه یادگیری ماشین در سال ۲۰۱۴ از دانشگاه مونترآل دریافت کرد. او با تئوری مدل های مولد خصمانه (GANs)، کمک شایانی به توسعه یادگیری ژرف نموده است.

پروفسور جاشوآ بنجیو (Yoshua Benjio)‌ و دکتر آئرون کورویل (Aaron Courville)‌ نیز از پیشروهای عرصه یادگیری ژرف بوده و تحقیقات و آموزش در این زمینه را در دانشگاه مونترآل پیگیری می کنند.