چقدر با سؤالات متداول مصاحبه یادگیری ماشین آشنایی دارید؟ در این مطلب برخی از رایج‌ترین سؤالات مصاحبه یادگیری ماشین (Machine Learning) را که ممکن است هنگام درخواست برای نقش‌های شغلی در حوزه یادگیری ماشین یا دیتا ساینس با آن مواجه شوید بیان کرده‌ایم. تمرین این سؤالات و آماده‌کردن پاسخ آن‌ها می‌تواند به شما کمک کند تا از خوب‌پیش‌رفتن مصاحبه خود اطمینان حاصل کنید؛ پس اگر قصد دارید برای ورود به یک نقش شغلی در حوزه یادگیری ماشین اقدام کنید، تا انتهای این مطلب همراه ما باشید. 

سؤالات پایه مصاحبه یادگیری ماشین

این دسته از سؤالات بیشتر به اصطلاحات، الگوریتم‌ها و روش‌ها مربوط هستند. مصاحبه‌کنندگان اغلب این سؤالات را برای ارزیابی دانش فنی داوطلب می‌پرسند. 

۱. یادگیری ماشین نیمه‌نظارت‌شده چیست؟

یادگیری نیمه‌نظارت‌شده یا نیمه‌نظارتی یا Semi-supervised Learning ترکیبی از یادگیری باناظر (Supervised Learning) و بدون ناظر (Unsupervised Learning) است. در این نوع یادگیری الگوریتم روی ترکیبی از داده‌های برچسب‌دار و بدون برچسب آموزش داده شده است. به‌طور کلی، این نوع یادگیری زمانی استفاده می‌شود که برای تسک مدنظرمان یک مجموعه داده برچسب‌دار بسیار کوچک و یک مجموعه داده بزرگ بدون برچسب داشته باشیم.

به‌عبارت ساده، در این نوع یادگیری الگوریتم برای ایجاد خوشه‌ها و از داده‌های برچسب دار موجود برای برچسب‌زدن باقی داده‌های بدون برچسب استفاده می‌کند. یادگیری نیمه‌نظارتی معمولاً برای صرفه‌جویی در هزینه به‌دست‌آوردن داده‌های برچسب‌دار استفاده می‌شود. نمونه‌هایی از کاربرد این نوع یادگیری طبقه‌بندی توالی پروتئین، تشخیص خودکار گفتار (Automatic Speech Recognition) و خودروهای خودران را دربرمی‌گیرد. 

این مطلب می‌تواند درک بهتر و کامل‌تری از یادگیری نیمه‌نظارتی ارائه کند:

یادگیری نیمه‌نظارتی (Semi-supervised Learning) چیست؟

۲. چگونه الگوریتم مناسب را برای یک مجموعه داده انتخاب می‌کنید؟

جدا از مجموعه داده (Dataset)، باید به کاربرد تجاری و به‌طور کلی تسکی هم که قرار است انجام دهید توجه کنید؛ چون روی داده‌های مشابه می‌توان الگوریتم‌های متفاوتی، هم باناظر و هم بدون ناظر، اعمال کرد؛ بااین‌حال برای اینکه بتوان الگوریتم مناسب را انتخاب کرد، این نکات می‌تواند مفید باشد:

  • الگوریتم‌های یادگیری باناظر(Supervised Learning) به داده‌های برچسب‌دار نیاز دارند.
  • الگوریتم‌های رگرسیون (Regression) خروجی‌های عددی پیوسته دارند.
  • الگوریتم‌های طبقه‌بندی (Classification) خروجی‌های چندکلاسه یا گسسته دارند.
  • الگوریتم‌های یادگیری بدون ناظر (Unsupervised Learning) به داده‌های بدون برچسب نیاز دارند.
  • یادگیری نیمه‌نظارتی مستلزم ترکیب مجموعه داده‌های برچسب‌دار و بدون برچسب است.
  • الگوریتم‌های یادگیری تقویتی (Reinforcement Learning) به داده‌های محیط (Environment)، عامل (Agent) ، حالت (State)  و پاداش(Reward)  نیاز دارند.

۳. الگوریتم K نزدیکترین همسایه (KNN) را توضیح دهید.

پرسش درباره الگوریتم K نزدیک‌ترین همسایه یکی از سؤالات متداول مصاحبه یادگیری ماشین است. K Nearest Neighbor یا به‌اختصار KNN یک طبقه‌بندی‌کننده از نوع باناظر (Supervised) است که از معیار فاصله برای طبقه‌بندی داده‌ها یا پیش‌بینی گروه‌بندی نقاط داده استفاده می‌کند. می‌توانیم از آن هم برای تسک‌های رگرسیون و هم برای طبقه‌بندی (Classification) استفاده کنیم. 

اما این الگوریتم چطور کار می‌کند؟‌ به تصویر ۱ نگاه کنید:

در اینجا قصد داریم تعیین کنیم که نقطه سفید جزو نقاط قرمز است یا سبز؛ درواقع می‌خواهیم برچسب قرمز یا سبز به آن بزنیم.

  • ما K نقطه از نزدیک‌ترین‌ همسایه‌ها به نقطه سفید را می‌یابیم. این K  می‌تواند عدد متفاوتی باشد که خود ما آن را انتخاب می‌کنیم؛ مثلاً در مثال تصویر ۱ ما k=5 را انتخاب کردیم.
  • برای یافتن پنج همسایه نزدیک فاصله اقلیدسی میان نقطه سفید و دیگر نقاط را محاسبه می‌کنیم؛ سپس ۵ تا از نزدیک ترین نقاط به نقطه سفید را انتخاب می‌کنیم.
  • از میان این ۵ نقطه همسایه سه نقطه قرمز و دو نقطه سبز وجود دارد. از آنجا که رنگ قرمز بیشتر است، به نقطه سفید برچسب قرمز اختصاص می‌دهیم.

اگر علاقه‌مندید درباره‌ی الگوریتم KNN یا K  نزدیک‌ترین همسایه بیشتر بخوانید، به این لینک سر بزنید:

سؤالات فنی یادگیری ماشین در مصاحبه

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

۱. آیا وقتی فیچرها مقدارهای متفاوتی دارند، باید آن‌ها مقیاس‌بندی کنیم؟

بله. اکثر الگوریتم‌ها از فاصله اقلیدسی میان نقاط داده استفاده می‌کنند و اگر مقدار فیچرها بسیار متفاوت باشد، نتیجه‌ها کاملاً متفاوت خواهد بود. در بیشتر موارد، نقطه‌های پرت یا اوت‌لایرها (Outliers) باعث می‌شوند که مدل‌های یادگیری ماشین در مجموعه داده آزمایشی عملکرد بدی داشته باشند؛ همچنین زمانی که فیچرها نرمال نباشند، زمان بیشتری طول می‌کشد تا گرادیان نزولی (Gradient Descent) به مینیمم‌ محلی (Local minimum) برسد؛ بنابراین از مقیاس‌بندی فیچرها یا همان Feature Scaling برای کاهش زمان همگرایی مدل می‌توان استفاده کرد.

Gradient without and with scaling

۲. مدلی که آموزش داده‌اید بایاس کم و واریانس بالایی دارد. چگونه با آن برخورد می‌کنید؟

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

برای رفع این مشکلات از الگوریتم‌های بگینگ (Bagging) استفاده می‌کنیم که دیتاست را با استفاده از نمونه‌گیری تصادفی (randomized samples) به زیرمجموعه‌های کوچک‌تری تقسیم می‌کند؛ سپس مجموعه‌ای از مدل‌ها را با استفاده از این نمونه‌ها با یک الگوریتم واحد تولید می‌کنیم. پس از آن پیش‌بینی (خروجی) این مدل‌ها را با استفاده از طبقه‌بندی رأی (voting classification) یا میانگین‌گیری ترکیب می‌کنیم.

برای واریانس بالا می‌توانیم از تکنیک‌های Regularization استفاده کنیم که ضرایب  (coefficients)بالای مدل را برای کاهش پیچیدگی مدل جریمه می‌کند؛ علاوه‌براین می‌توانیم فیچرهای برتر را با استفاده از گراف اهمیت فیچر (Feature importance graph) انتخاب کنیم و مدل را آموزش دهیم.

Low bias and high variance

۳. کدام تکنیک اعتبارسنجی متقابل (Cross-validation)را برای دیتاست سری زمانی پیشنهاد می‌کنید و چرا؟

اعتبارسنجی متقابل (Cross-validation) برای ارزیابی عملکرد مدل و جلوگیری از بیش‌برازش یا همان overfitting استفاده می‌شود. به‌طور کلی، تکنیک‌های اعتبارسنجی متقابل به‌طور تصادفی نمونه‌هایی را از داده انتخاب می‌کنند و آن‌ها را به مجموعه داده‌های آموزشی و آزمایشی تقسیم می‌کنند. تعداد تقسیم‌ها براساس مقدار K است.

برای مثال، اگر K = 5 باشد، یعنی کل دیتاست به ۵ دسته تقسیم می‌شود و هر بار یک دسته به‌عنوان داده تست و ۴ دسته دیگر به‌عنوان داده آموزشی در نظر گرفته می‌شوند. این موضوع ۵ بار تکرار می‌شود. 

ما نمی‌توانیم این کار را با دیتاست سری زمانی انجام دهیم؛ زیرا استفاده از مقدار آینده برای پیش‌بینی ارزش گذشته منطقی نیست. یک وابستگی زمانی میان مشاهده‌ها وجود دارد و ما فقط می‌توانیم داده‌ها را در یک جهت تقسیم کنیم تا مقدارهای داده تست بعد از داده آموزشی باشد.

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

Time series cross validation

خلاصه مطالب درمورد سؤالات متداول مصاحبه یادگیری ماشین 

در این مطلب چند مورد از سؤالات مهمی را بررسی کردیم که در مصاحبه شغلی در حوزه یادگیری ماشین و دیتا ساینس معمولاً از افراد پرسیده می‌شود. به‌طورکلی، بررسی سؤالات مصاحبه و آمادگی برای آن‌ها می‌تواند کمک بزرگی باشد و نتیجه‌ی مصاحبه را به‌نفع شما تغییر دهد.

برای آشنایی با پرسش‌های متداول مصاحبه شغلی در حوزه‌های خاص ماشین لرنینگ این مطلب را مطالعه کنید:

سؤالات پرتکرار مصاحبه شغلی یادگیری ماشین چیست؟

با کافه‌تدریس برای مصاحبه شغلی آماده شوید!

اگر دوست برای ورود به بازار کار جذاب دیتا ساینس آماده می‌شوید، کافه‌تدریس در کنار شماست. ما به شما کمک می‌کنیم تا به‌بهترین شکل ممکن برای مصاحبه شغلی و رسیدن به موقعیتی که دوست دارید آماده شوید.

برای رسیدن به آمادگی کامل در مصاحبه شغلی پیشنهاد می‌کنیم همین امروز وبینار رایگان را تماشا کنید:

ورود به بازارکار علم داده؛ از ساخت رزومه تا روز مصاحبه