به نظر شما چرا به دانش ریاضی در علم داده و یادگیری ماشین نیاز داریم؟ چرا اهمیت ریاضیات در علم داده اینقدر زیاد است؟ قبل از اینکه جواب ما را ببینید، خودتان را به چالش بکشید و کمی در مورد این سوال فکر کنید. در این مطلب می خواهیم دلایل منطقی یادگیری ریاضیات برای علم داده و یادگیری ماشین را با هم بررسی کنیم و از نیاز به یادگیری ریاضیات برای مقابله با چالشهای دنیای واقعی بهعنوان یک متخصص یادگیری ماشین ابهام زدایی کنیم.
ریاضیات علم داده و یادگیری ماشین تنها درباره جمع و تفریق اعداد نیست؛ بلکه از آن استفاده میکنیم تا ببینیم که:
- چه اتفاقی میافتد؟
- چرا اتفاق میافتد؟
- چگونه میتوانیم موارد مختلف را دستکاری کنیم تا به نتایجی که میخواهیم برسیم؟
تصورات نادرستی که درباره یادگیری دانش ریاضی در علم داده وجود داشت، با استفاده از دورهها، ویدیوها و پستهای وبلاگها با عناوینی مانند “علم داده بدون ریاضیات”، “علم داده برای توسعهدهندگان”، “یادگیری ماشین بدون ریاضیات” و… تقویت شده است. چنین پستها و ویدئوهایی وجود دارند، چون که سؤالاتی مانند سؤالات زیر وجود دارند:
✅ چرا من به مطالعه ریاضیات نیاز دارم درحالیکه میتوانم بهسادگی با فراخوانی ()fit. مدلم را آموزش داده و با فراخوانی ()predict. آن را آزمایش کنم؟
✅ یادگیری ماشین تنها نیازمند تسلط بر کتابخانههایی مانند Scikit learn و Tensorflow است. چرا باید وقت خود را برای درک ریاضیات آن تلف کنم؟
✅ برای تسلط بر علوم داده چه مقدار باید به ریاضیات تسلط داشته باشم؟
✅ من از ریاضیات میترسم، آیا میتوانم وارد حوزه علوم داده شوم؟
این سؤالات معمولاً پاسخ درست و واحدی ندارند؛ چرا که علم داده دارای بخشهای مختلفی است و هریک از بخشهای آن دارای نیاز به دانش ریاضی مخصوص به خود هستند. بخشی از دلیل عدم وجود پاسخ واحد به این سؤالات، مربوط به ماهیت گسترده اصطلاح علم داده است که امروزه بسیاری از اساتید از آن استفاده میکنند.
اگر بیشتر به مباحث مهندسی داده (طراحی پایپ لاینهای ETL، ایجاد و مدیریت زیرساختهای داده و…) علاقهمند هستید ممکن است نیازی به درک ریاضیات این علم نداشته باشید. اما برای آن دسته از افرادی که قصد دارند به یادگیری ماشین و بهخصوص یادگیری عمیق (Deep Learning) تسلط داشته باشند، درک حداقلی از مفاهیم ریاضی مانند جبر خطی، حساب برداری و نظریه احتمال، لازم و ضروری است.
در این مطلب به این سؤال پاسخ خواهیم داد که چرا برای متخصصشدن در علم داده برای موقعیتهای مبتنی بر یادگیری ماشین، یادگیری ریاضیات ضروری است. ما درباره سناریوهای دنیای واقعی صحبت خواهیم کرد که ممکن است در آنها نیازمند درک عمیقی از الگوریتمها باشید. پس اجازه دهید ابتدا درباره اجزای اصلی یادگیری ماشین و سپس ارتباط مستقیم آنها با ریاضیات صحبت کنیم.
ریاضیات و هسته یادگیری ماشین
بهطورکلی سه جزء اصلی برای یادگیری ماشین وجود دارد:
1-داده
یادگیری ماشین ذاتاً دادهمحور است. دادهها در قلب یادگیری ماشین قرار دارند. هدف نهایی در یادگیری ماشین استخراج الگوهای پنهان و مفید از دادهها است. اگرچه دادهها همیشه عددی نیستند؛ اما زمانی که آنها را بهعنوان دادههای عددی در نظر میگیریم مفیدتر میشوند. ما حتی میتوانیم دادهها را بهعنوان بردار در نظر بگیریم (شیئی که به قوانین، حسابی پایبند است). این مسئله ما را به درک چگونگی عملکرد قواعد جبر خطی بر روی آرایههایی از دادهها هدایت میکند.
2-مدل
مدل، یک نمایش ریاضی از قواعد و مفروضات خاص است. چنین مدلی در وهله اول فرایند (خطی، چندجملهای و…) نحوه تولید دادههای ارائه شده را یاد میگیرد (بهصورت تقریبی) و سپس بر اساس این فرایند آموخته شده پیشبینی میکند. باتوجهبه دیدگاه کلی ریاضیات کاربردی ابتدا توابع طیف گستردهای از متغیرها را تعریف میکنیم که مفروضات خاصی را از دیدگاه احتمالی نمایش میدهند. در یک مثال رگرسیونی، مدل تابعی را تقریب میزند که ورودیها را به خروجیهای با مقدار حقیقی نگاشت میکند.
3-یادگیری
برای اینکه در یادگیری ماشین بتوانیم اصلاح خودکار را اعمال کنیم، هر مدل با یک تابع هزینه مشخص میشود که ما آن را بر اساس میزان مطابقت مفروضات ما در حین توسعه مدل با دادههای واقعیت (دادههای هنوز دیده نشده یا دادههای آزمایشی) دارند طراحی میکنیم. ما از روشهای بهینهسازی عددی (مشتقگیری جزئی و svd) برای مینیمم کردن این تابع هزینه استفاده میکنیم.
هدف اصلی از تعریف این سه مفهوم به این روش، کمک به شما در درک ریاضیاتی است که این مفاهیم بر اساس آنها تعریف شدهاند.
سناریوهای زندگی واقعی که در آن به درک مبانی ریاضیات نیاز دارید
ممکن است شما به این شکل استدلال کنید که همه این مفاهیم بهصورت انتزاعی داخل کتابخانهها قرار گرفتهاند و چرا مستقیماً روی آنها ساخته نمیشوند؟ برای پاسخدادن به این سؤال بیایید به سناریوهای دنیای واقعی نگاه کنیم که شما بهعنوان یک متخصص یادگیری ماشین یا یادگیری عمیق به طور روزانه با آن مواجه میشوید:
ایجاد سیستمهای یادگیری کارآمد
بهعنوان یک دانشمند داده شما نهتنها ملزم به دانستن الگوریتمهای یادگیری ماشین هستید، بلکه باید از دانش خود استفاده کرده و مدلهای کارآمدتری را نسبت به مدلهای فعلی بسازید. یک مثال ساده عالی برای این موضوع انتخاب معیار عملکرد برای مسئله شماست. یک معیار عملکرد به شما این ایده را میدهد که سیستم شما در زمان پیشبینی تا چه حد خطا میکند.
مثالی از یک مسئله رگرسیونی پیشبینی قیمت مسکن با مجموعه دادهای که حاوی مقادیر پرت بسیار زیادی است را در نظر بگیرید. اکثر افراد متخصص در حوزه علم داده میدانند که ریشه میانگین مربعات خطا یا همان معیار rmse، معیار عملکرد ترجیحی برای مدلهای رگرسیونی است و بهسادگی از این معیار برای مدل خود استفاده میکنند. این در حالی است که مقادیر پرت زیاد میتواند خطاهای بزرگی را به این معیار عملکرد اضافه کند.
حال معیار rmse، فاصله بین بردار پیشبینیها h(x(i)) در فرمول پایین و بردار برچسبهای هدف (y(i)) در فرمول پایین را اندازهگیری میکند. این معیار در واقع ریشه جمع مربعات این فواصل است. حال سؤال این است که چگونه این کار را روی آرایههای بزرگ دادهای انجام دهیم؟ این کار به لطف جادوی بردارها و جبر خطی امکانپذیر است.
یک معیار عملکرد کارآمدتر که در این سناریو مدل باید بر اساس آن طراحی شود، میانگین خطای مطلق است که به طور خلاصه MAE نامیده میشود. این معیار به این دلیل کارآمدتر است که در مقایسه با RMSE حساسیت کمتری نسبت به مقادیر پرت دارد که فرمول آن را در ادامه مشاهده میکنید.
مواجهشدن با چالشهایی که مربوط به دامنه دادهها هستند برای دانشمندان علم داده که در حوزه یادگیری ماشین در هر شرکت مبتنی بر محصول فعالیت دارند، نیازمند تصمیمگیریهای حیاتی با کمک تحلیل نتایج مدل است و به همین علت نیز دانشمند علم داده باید با آن حوزه کاربردی آشنا باشد.
حوزههای مالی، تجارت الکترونیک، تشخیص بیماری و البته حوزههایی که نیازمند محاسبات سنگین هستند؛ مانند امور مالی، بانکداری و… نیازمند پیشینه ریاضی قویتری هستند.
بهعنوانمثال یک تحلیلگر دادههای کمی که در یک صندوق تضمینی کار میکند و در حال توسعه مدلی برای قیمتگذاری اوراق بهادار مشتقه است باید اطلاعات کاملی درباره مقادیر لگاریتم، توزیع نرمال و انواع محاسبات در توسعه مدل خود داشته باشد.
تجزیهوتحلیل آماری سنتی هنوز هم بهشدت در پروژههای چندین میلیارددلاری از جمله پروژههای کشف دارو و… استفاده میشود و در نتیجه شما ملزم به درک مفاهیم آماری مانند میانگین انحراف استاندارد، نمونهبرداری، درجه اوج در نمودار آماری و چولگی و… میباشید.
نهتنها در این موارد بلکه بهطورکلی ریاضیات بهعنوان یک اصل پایهای برای تمامی صنایع بزرگ عمل میکند.
درک و اشکالزدایی الگوریتمهای یادگیری ماشین
اشکالزدایی و دیباگ یک نرمافزار کار سادهای است؛ زیرا شما تنها دو بعد دارید که بعد اول خود الگوریتم و بعد دوم نیز نحوه پیادهسازی آن است. در چنین شرایطی داشتن یک شهود خوب کار سادهای خواهد بود؛ ولی زمانی که وارد حوزه یادگیری ماشین میشویم به دلیل اضافهشدن ابعاد جدید در قالب دادهها و مدل انتخابی روند اشکالزدایی و دیباگ سخت میشود. در چنین شرایطی ممکن است الگوریتم شما کلاً کار نکند یا اینکه بهاندازه کافی خوب نباشد.
خوشبختانه برای پیداکردن اینکه در مسائل یادگیری ماشین مشکل و باگ ما دقیقاً در کجاست شاخصهای دیگری داریم. برای افرادی که محاسبات چندمتغیره ریاضیات را بهخوبی درک میکنند ایده بهتری نسبت به محاسبه و بهینهسازی تابع هزینه گرادیان نزولی وجود دارد. با آشنایی بیشتر با دانش ریاضیات، برای اشکالزدایی و دیباگ سیستمهای (مدلهای) یادگیری خود مجهزتر خواهید شد.
انتخاب مدل بر اساس محدودیتهای ذاتی آنها
اغلب اوقات یک مدل واقعاً خوب کار میکند؛ ولی به دلیل مقیاسپذیری و پیچیدگی محاسباتی در تولید محصول واقعی استفاده نمیشود. یادگیری مفاهیمی درباره محدودیتهای ذاتی الگوریتم آموزشی به مدل به شما کمک میکند مدل مناسبی را برای مسئلههای خود انتخاب کنید حتی اگر مدلی که انتخاب کردهاید بهینه نباشد.
یک مثال خوب برای صحبت درباره این موضوع درک ما از توابع هزینه است. بهعنوانمثال تابع هزینه میانگین مربعات خطا (MSE) برای یک مدل رگرسیون خطی یک تابع محدب است. این تابع محدب در واقع یک تابع پیوسته است و شیب آن هرگز به طور ناگهانی تغییر نمیکند که ما را به سمت استفاده از گرادیان نزولی سوق دهد؛ چراکه این تابع تضمین میکند که به مقدار کمینه سراسری که هدف تابع هزینه است نزدیک شویم.
یادگیری در مورد شکل و ریاضیات پشت تابع هزینه به ما در تعریف پارامترهای مدل نیز کمک میکند. بهعنوانمثال در حین استفاده از گرادیان نزولی باید اطمینان حاصل کنیم که ویژگیهای انتخابی به دلیل همگرایی بسیار آهسته به مقدار کمینه سراسری، همانطور که در شکل زیر مشاهده میکنید، مقیاسبندی شوند:
مصاحبههای شغلی
ارسال درخواست برای یک موقعیت شغلی بهعنوان یک دانشمند علم داده فقط مستلزم آشنایی با Sci-kit learn یا Tensorflow نیست؛ بلکه شما باید بدانید که یک درخت تصمیم چگونه ناخالصی جینی (gini) را در هر گره محاسبه میکند و تابع هزینه یک مدل رگرسیون خطی دقیقاً چگونه عمل میکند؟ یا تابع تصمیمگیری برای یک طبقهبند خطی SVM چیست؟
در اینجا شرح موقعیت شغلی متخصص علم داده گوگل را برای شما آوردهایم:
تخصص در تجزیهوتحلیل دادههای آماری مانند مدلهای خطی، تحلیل چندمتغیره، مدلهای تصادفی و روشهای نمونهگیری.
مبانی ریاضی در زیرشاخههای چهارگانه یادگیری ماشین
شکل بالا یک تفکیک قطعی از مفاهیم ریاضی را نشان میدهد که در ریشههای چهارشاخه اصلی یعنی رگرسیون، طبقهبندی، کاهش بعد و تخمین چگالی قرار دارند. از منظر شغلی اگر واقعاً قصد دارید علم داده را دنبال کنید حداقل باید با موضوعاتی مانند جبر خطی که بردارها و ماتریسها را پوشش میدهد، توزیع احتمال برای تعیین کمیتهای غیرقطعی، اسکالرها و محاسبات برداری که گرادیان نزولی را تشکیل میدهند آشنا باشید.
دوره پیشنهادی دیتایاد را از دست ندهید: دوره آموزش ریاضیات برای علم داده و یادگیری ماشین
خلاصه نهایی
ما برای یادگیری علم داده و ماشین لرنینگ به یادگیری ریاضیات نیاز داریم؛ چرا که یادگیری ریاضیات برای موارد زیر مهم است:
✅ اصول اساسی یادگیری ماشین را درک کنید که ما را قادر میسازد سیستمهای یادگیری پیچیدهتر و کارآمدتری را بسازیم.
✅ ایجاد راهحلهای جدید و تخصصی یادگیری ماشین برای مقابله با پیچیدگیها و چالشهای مختلف در مسائلی که دامنه خاصی دارند.
✅ درک و اشکالزدایی (دیباگ) رویکردهای الگوریتمی موجود در حوزه یادگیری ماشین
✅ یادگیری درباره فرضیات ذاتی و محدودیتهای مدلها
اگر به دنبال تقویت مهارتهای خود در این حوزه هستید، همین حالا به دیتایاد بپیوندید و در دورههای آموزشی ما ثبتنام کنید.
خیلی مفید بود، بیشتر از این مقالات بذارید لطفا
حتما، خوشحالم که برات مفید بود دوست خوبم
سلام آقای کلاگر، ممنون از مطلب خوب تون، یه سوال داشتم
چه سرفصل هایی از ریاضیات رو برای علم داده نیاز داریم؟
ممنون میشم جواب بدین
برای متخصص علم داده (دانشمند داده) یا هوش مصنوعی به تمام سرفصل های ریاضیات نیاز داریم. پیشنهاد می کنم صفحه دوره ریاضیات برای علم داده و یادگیری ماشین رو یه نگاه بندازین.
دقیقا
اگر صرف دانستن چند کتابخانه از ما یک ML Engineer می ساخت الان میلیون ها مهندس یادگیری ماشین داشتیم.