پرسش های مصاحبه یادگیری عمیق که نباید از دست دهید (بخش 1)
در این نوشتار به بررسی پرسش های مصاحبه یادگیری عمیق خواهم پرداخت. غالباً در جلسه مصاحبه شغلی «مهندسی هوش مصنوعی» این سوالات هستند که مطرح میشوند. در واقع، نیازی نیست در همه مصاحبهها از این پرسشها استفاده شود زیرا طرح پرسش به تجربه و پروژههای پیشین متقاضی یا مصاحبهشونده بستگی دارد. مجموعهای متشکل از 12 پرسش مصاحبه در حوزه یادگیری عمیق، ماحصلِ جلسههای متعدد مصاحبه، به ویژه با دانشجویان، است که در مقاله حاضر با خوانندگان به اشتراک خواهیم گذاشت. همچنین میتوانید از طریق لینک انتهای مطلب به بخش دوم مطلب دسترسی داشته باشید. خب، بیایید بدون اتلاف وقت، کار را شروع کنیم.
بررسی معنی نرمالسازی دستهای
محتملترین مورد از پرسش های مصاحبه یادگیری عمیق این است. پرسش بسیار خوبی هم هست؛ زیرا بخش عمده دانشی را دربرمیگیرد که متقاضیان باید در هنگام کار با مدلهای شبکه عصبی از آن آگاه باشند. شما میتوانید پاسخ متفاوتی به این پرسش دهید، اما باید ایدههای اصلی زیرا را به طور شفاف بیان کنید:
نرمالسازی دستهای روش موثری برای آموزش مدلهای شبکه عصبی است. هدف از بکارگیری این روش، نرمالسازی ویژگیها (خروجی هر لایه پس از اتمام فرایند فعالسازی) به وضعیت میانگین صفر با انحراف معیار 1 است. بنابراین، پدیدهی خلاف آن «میانگین غیر صفر» است. این روش چگونه بر آموزش مدل تاثیر میگذارد؟
- اولاً باید بدانید که میانگین غیرصفر به پدیدهای اطلاق میشود که در آن، دادهها حول مقدار صفر توزیع نمیشوند، اما اکثر مقادیر بزرگتر از صفر یا کمتر از صفر هستند. در کنارِ مسئلهی واریانس بالا، دادهها بسیار بزرگ یا بسیار کوچک میشوند. این مسئله عمدتاً در آموزش شبکههای عصبی با اعداد لایه عمیق پیش میآید. اگر ویژگیها در بازههای ثابت توزیع نشوند، فرایند بهینهسازی شبکه تحت تاثیر قرار خواهد گرفت.
- همه میدانیم که بهینهسازی شبکههای عصبی نیاز به محاسبه مشتق دارد. با فرض اینکه فرمول سادهی محاسبه لایه عبارتست از y = (Wx + b)، مشتق y از w به این ترتیب خواهد بود: dy = dWx. بنابراین، مقدار x به طور مستقیم بر مقدار مشتق تاثیر میگذارد (البته، مفهوم گرادیان در مدل شبکههای عصبی به این سادگی نیست، اما از دید نظری، x بر مشتق تاثیر خواهد گذاشت.) از این رو، اگر x تغییرات زیادی داشته باشد، ممکن است مشتق خیلی بزرگ یا خیلی کوچک شود. ماحصل آن، مدل یادگیری ناپایدار است. افزون بر این، در هنگام استفاده از نرمالسازی دستهای، میتوان از نرخ یادگیری بالایی در حین آموزش استفاده کرد.
- نرمالسازی دستهای میتواند از پدیدهای پیشگیری کند که طی آن، مقدار x پس از رویارویی با توابع فعالسازی غیرخطی دچار اشباع میشود. بنابراین، روش مذکور از این امر اطمینان حاصل میکند که فعالسازی خیلی بالا یا خیلی پایین نمیرود. بر این اساس، از میزان وابستگی به مقدار اولیهی پارامترها کاسته میشود.
- نرمالسازی دستهای نوعی ابزار قاعدهسازی به حساب میآید که نقش موثری در کاهش حداقلیِ بیشبرازش دارد. نرمالسازی دستهای کمک میکند تا از Dropout کمتری استفاده کنیم. این کار منطقی است زیرا در زمان کار با شبکه نیازی نیست نگران از دست دادن اطلاعات باشیم. با این حال، کماکان توصیه میشود از ترکیبی از این دو روش استفاده کنید.
ارائه مفهوم و رابطه میان سوگیری و واریانس؟
یکی از پرسش های مصاحبه یادگیری عمیق این است: سوگیری چیست؟ سوگیری تفاوت میان پیشبینی میانگین مدل فعلی و نتایج واقعی است که باید پیشبینی کنیم. مدلی با سوگیری بالا نشان میدهد که تمرکز کمتری روی آموزش داده دارد. این پدیده مدل را بسیار کوچک میکند و فاقد دقت بالا در امر آموزش و تست است. این پدیده با عنوان کمبرازش Underfitting نیز شناخته میشود.
واریانس میتواند توزیع (یا خوشهبندی) خروجیهای مدل را در نمونهها درک کند. هرقدر واریانس بزرگتر باشد، این احتمال بالا میرود که مدل توجه بالایی به دادههای آموزشی کند و در مورد دادههایی که هیچگاه با آنها مواجه نشده، اقدام به تعمیمسازی نکند. در نتیجه، مدل به نتایج بسیار خوبی در مجموعهداده آموزشی دست یافت، اما نتایج ضعیفی با مجموعهداده آزمایشی حاصل آمد. این پدیده بیشبرازش Overfitting نام دارد.
همبستگی میان دو مفهوم با شکل زیر نشان داده میشود:
در شکل فوق، مرکز دایرهای به مدلی اشاره میکند که مقادیر دقیق را پیشبینی میکند. در واقع، هیچگاه چنین مدل خوبی به دست نمیآورید. با دور شدن از مرکز دایره، پیشبینیها بدتر و بدتر میشوند. امکان تغییر مدل نیز وجود دارد. توازن بین مقادیر واریانس و سوگیری الزامی است. اگر مدل خیلی ساده باشد و پارامترهای کمتری داشته باشد، ممکن است سوگیری زیاد و واریانس کمی داشته باشد. افزون بر این، اگر تعداد پارامترهای مدل زیاد باشد، واریانس زیاد و سوگیری کمی خواهد داشت. این مبنای ما برای محاسبه سطح پیچیدگیِ مدل در زمان طراحی الگوریتم است.
فرض کنید مدل یادگیری عمیق 10 میلیون بردار چهره یافته است. چطور میتوان در سریعترین زمان چهرهای با کوئریها پیدا کرد؟
این مورد از پرسش های مصاحبه یادگیری عمیق به کاربرد عملیِ الگوریتمهای یادگیری مربوط میشود؛ روش اندیسگذاری داده، نکته کلیدی این پرسش به شمار میرود. این گام نهایی در مسئله بکارگیریِ روش یادگیری One Shot Learning برای تشخیص چهره است، اما در عین حال مهمترین گام نیز به حساب میآید زیرا بکارگیری این روش را در عمل آسانتر میکند. اساساً، با توجه به این پرسش، باید ابتدا اطلاعاتی کلی از روش تشخیص چهره با One Shot Learning ارائه کنید. این روش با تبدیل هر چهره به یک بردار به سادگی فهمیده میشود؛ تشخیص چهره جدید، بردارهایی را که نزدیکترین فاصله را با چهره ورودی دارند، پیدا میکند. معمولاً، افراد از مدل یادگیری عمیق با تابع زیان «Triplet loss» استفاده میکنند.
با این حال، با توجه به افزایش تعداد تصاویر در ابتدای مقاله، محاسبه فاصله تا 10 میلیون بردار در هر مورد شناسایی اقدام هوشمندانهای نیست. این کار به کُندتر شدن سیستم میانجامد. باید روشهای اندیسگذاری داده را در فضای بردار واقعی مد نظر قرار دهیم تا عمل پرسوجو به راحتی انجام گیرد. هدف اصلی از بکارگیری روشهای یادشده این است که داده ها به ساختارهای آسانی برای جستجوی دادههای جدید تبدیل گردد (احتمالاً شبیه به ساختار درختی). در صورتی که دادههای جدید در دسترس باشد، جستجوی ساختار درختی کمک میکند تا برداری که نزدیکترین فاصله را دارد، به سرعت یافت شود.
از روشهای متعددی برای این هدف استفاده میشود که از جمله آنها میتوان به Locality Sensitive Hashing، Annoy Indexing و Faiss اشاره کرد.
آیا شاخص دقت در مسئله طبقهبندی کاملاً قابلاطمینان است؟ از چه ابزارهایی برای ارزیابی مدل استفاده میکنید؟
این مورد از پرسش های مصاحبه یادگیری عمیق نیاز به دقت ویژه دارد. راهکارهای مختلفی برای ارزیابی مسئله کلاس وجود دارد. صحت برابر است با تعداد نقاط داده پیشبینی شده به صورت صحیح که بر کل دادهها تقسیم میشوند. این اقدام منطقی است، اما در واقعیت، این کمیت برای مسائل دادههای نامتوازن کفایت نمیکند. فرض کنید میخواهیم یک مدل پیشبینی برای حملات شبکه ایجاد کنیم (با فرض اینکه درخواست حمله حدود 100000/1 از حملهها را دربرمیگیرد). اگر مدل پیشبینی کند که همه درخواستها عادی هستند، صحت تا %9999/99 افزایش مییابد. این آمار غالباً در مدل طبقهبندی غیرقابلاطمینان است. محاسبه دقت در فوق نشان میدهد که چند درصد از دادهها به درستی پیشنهاد شده است؛ اما به طور جامع نشان میدهد که هر دسته چگونه طبقهبندی میشود. در عوض، میتوان از ماتریس درهمریختگی Confusion matrix استفاده کرد. اساساً، ماتریس درهمریختگی نشان میدهد که چه تعداد نقاط داده به دسته تعلق دارد. این ماتریس به شکل زیر ترسیم میگردد:
علاوه بر بیان تغییر اندیسهای مثبت کاذب و منفی کاذب در هر آستانه، نموداری تحت عنوان ROC داریم. بر اساس نمودار مذکور، میدانیم که مدل تاثیرگذار است یا خیر.
نمودار ایدهآل ROC این است که هر قدر خط نارنجی به گوشه بالای سمت چپ نزدیکباشد، بهتر است.
لینک مربوط به بخش دوم مطلب:
پرسشهای مصاحبه یادگیری عمیق (بخش دوم)