علم داده به زبان ساده – یادگیری آماری #۱
علم داده چیست؟ رابطه آن با آمار و یادگیری ماشین چیست ؟
امروزه صحبت از علم داده و ضرورت استفاده از آن در تمامی ابعاد زندگی، تکرار مکررات است. مجموعه مقالاتی از Pradeep Menon تحت عنوان «علم داده به زبان ساده» در حال انتشار است که تا این تاریخ قسمت دهم آن هم تحت عنوان «Data Science Simplified Part 10: An Introduction to Classification Models» منتشر شده است. به دلیل سادگی و شیوایی این مطالب در انتقال مفاهیم پایه علم داده، تصمیم گرفتم به تدریج با ترجمه و بازنشر آن در سایت مهندسی داده، خدمتی هر چند کوچک به علاقه مندان این حوزه انجام بدهم.
مقدمه ای بر علم داده
تنوع، حجم و سرعت داده های تولیدی امروزه علاوه بر اینکه محرک اصلی در توسعه فناوریهای کلان داده است، باعث رونق دانشی شده است که امروزه از آن به علم داده یاد می کنیم. علمی که در چند سال گذشته، جذاب ترین و بهترین شغل آمریکا به عنوان یک کشور پیشرو بوده است. سازمانها و شرکتها سعی می کنند برای کسب رضایت بیشتر مشتریان، بیش از پیش داده محور شوند و به کمک یادگیری ماشین و هوش مصنوعی، حوزه های نوینی را در خدمات خود ایجاد کنند. مطالب زیادی امروزه در این حوزه منتشر می شود که اکثر آنها تکنیکی و کمی پیچیده است. در این مجموعه مقالات، سعی خواهیم کرد با زبان ساده، مفاهیم پایه علم داده را آموزش دهم و آنرا برای همگان قابل استفاده نماییم.
علم داده یک علم میان رشته ای ایست . علمی که نقطه اشتراک بین دامنه ها و علوم زیر است :
- علم تجارت (کسب و کار ) به عنوان محرک و نیازمند به علم داده .
- یادگیری آماری یا همان یادگیری ماشین به عنوان ابزار کار
- برنامه نویسی به عنوان ابزار تولید خروجی و سفارشی سازی الگوریتم ها برای هر مشتری و نیاز خاص
در این مقالات، بیشتر به جنبه یادگیری ماشین این علم که علمی ترین و تکنیکی ترین بخش آن هم خواهد بود، خواهیم پرداخت . ابتدا با یادگیری آماری و مفاهیم پایه آن شما را مستقیم به یادگیری ماشین هدایت خواهیم کرد و بعد از آشنایی با حال و هوای آن، با بازگشتی به عقب، فرآیند اصلی پردازش داده توسط دانشمندان داده را بررسی خواهیم کرد . (نویسنده اصلی به ترتیب عکس عمل کرده است)
یادگیری آماری
اصل و اساس علم داده، یادگیری بر اساس داده های موجود است که از طریق علم یادگیری آماری صورت میگیرد. ویکی پدیا نظریه یادگیری آماری را چارچوبی برای یادگیری ماشین می داند که بر مبنای آمار و تحلیل تابعی بنا شده است. طبق این تعریف، یادگیری ماشین عبارتست از علم استفاده از تکنیکهای یادگیری آماری که توسط نرم افزارها و کتابخانه های گوناگون پیاده سازی شده است.
یادگیری ماشین اشاره به ابزار و تکنیک هایی دارد که ما را قادر به درک بهتر داده ها می کند. اما درک بهتر داده ها به چه معناست ؟ این موضوع هم نیاز به توضیح دارد. با موضوع نوع داده ها، بحث را شروع می کنیم. در حوزه یادگیری آماری ما دو نوع داده داریم :
- داده هایی که می تواند مستقیماً کنترل شود و مقدار آنها به متغیر دیگری وابسته نیست – داده های مستقل
- داده هایی که تحت کنترل مستقیم ما نیستند و مقدار آنها وابسته به مقدار سایر داده هاست – داده های وابسته
داده هایی که تحت کنترل ما نیستند و مقادیر آنها توسط مقدار سایر داده ها تعیین می شود، نیاز به پیش بینی و تخمین دارند. کاری که یادگیری آماری برای انجام آن به کمک ما می آید.
درک بهتر داده ها، در حقیقت شناخت داده های وابسته بر اساس داده های مستقل است.
بهتر است مثالی بزنیم. فرض کنید که می خواهیم میزان فروش را براساس بودجه ای که برای تبلیغات در نظر گرفته ایم، تخمین بزنیم. بودجه تبلیغات در اختیار ما است اما چیزی که نمی توانم کنترل کنم، تاثیر آن بر میزان فروش خواهد بود. بنابراین به دنبال راهی برای توصیف داده هایی هستیم که دست ما نیست (فروش) بر اساس تابعی از آنچه که در اختیار ماست (بودجه تبلیغات). در حقیقت به دنبال کشف رابطه پنهان بین این دو متغیر هستیم .
یادگیری آماری، روابط پنهان را آشکار می کند : روابط بین متغیرها و داده های مستقل و وابسته
پارامترها و مدل ها
یکی از مهم ترین مدل های تجاری در علم مدیریت اجرایی مدل ITO : Input-Transformations-Output است. ورودیها از طریق یک یا چند تبدیل، خروجی را تولید می کنند. یادگیری ماشین هم مطابق با این روال عمل میکند: مقداری داده داریم. پردازشی روی آنها انجام میدهیم یعنی آنها را تحت تغییر و تبدیلهای گوناگون قرار می دهیم و خروجی که همان پیش بینی یا تخمین یک داده است، تولید می شود.
موتور تبدیل، مدل نامیده می شود که در حقیقت مکانیزم و تابعی است که خروجی را بر اساس داده های ورودی، تولید می کند.
این عملیات تبدیل، یک عملیات ریاضی است که بر روی ورودیها اعمال می شود و برای انجام آن از عامل های عددی قابل تنظیم استفاده می کند. این عامل های قابل تنظیم که در کنار ورودیها، فرمول نهایی تبدیل را می سازند، پارامترهای مدل هستند.
مثالی می زنیم. می خواهیم درآمد یک شخص را پیش بینی کنیم. فرض کنید دو عامل اصلی تعیین کننده درآمد، تعداد سالهای تحصیل و تجربه کاری یک شخص است. مدلی که برای این پیش بینی نیاز داریم، می تواند شبیه شکل کلی زیر باشد :
income = c + β۰ * education + β۱ * experience
β۰ و β۱ پارامترهایی هستند که درآمد را به عنوان تابعی از تجربه و تحصیل ، بیان می کنند و بر اساس داده های موجود، مقدار نهایی آنها در این مدل، به دست می آید و برای پیش بینی داده های جدید، از این مقادیر بدست آمده، استفاده خواهیم کرد.
سالهای کاری و تحصیلی، متغیرهای قابل کنترل هستند که به ازای هر شخص، مقدار آنها مشخص است . به این متغیرها علاوه بر متغیرهای مستقل، ویژگی ها (Feature) هم گفته می شود.
درآمد، یک متغیر قابل کنترل توسط ما نیست و به آن، متغیر وابسته و یا متغیر هدف (Target) هم می گوییم.
آموزش و آزمایش
داده هایی که در اختیار ما هستند، معمولاً محدود بوده و تعداد مشخصی دارند. بنابراین باید با دقت با آنها کار کنیم. هم باید مدل خود را برای پیش بینی داده های جدید بر اساس آنها بسازیم و هم بتوانیم مدل ساخته شده را تا حدودی آزمایش و اعتبار سنجی کنیم. برای این منظور، باید رویه زیر را برای استفاده موثر از داده ها در پیش بگیریم :
- داده ها را به دو قسمت تقسیم کنیم.
- یک بخش را برای آموزش کنار بگذاریم. بخشی که مدل از روی داده های آن شروع به یادگیری خواهد کرد (ساخت یک فرمول اولیه و تنظیم مداوم پارامترها برای حصول فرمول نهایی). این مجموعه داده را داده های آموزش می نامیم.
- بخش دوم را برای آزمایش مدل کنار می گذاریم. یعنی مدل را در معرض داده هایی که قبلاً ندیده است، قرار میدهیم تا بتوانیم میزان دقت و صحت آنرا ارزیابی کنیم. این مجموعه داده را داده های آزمایش می نامیم.
در یک امتحان واقعی اگر به حد کافی خود را برای آن آماده کرده و مفاهیم مربوطه را به درستی فراگرفته باشیم، در جلسه امتحان هم باید با موفقیت ظاهر شویم. در یادگیری ماشین هم روال آموزش و آزمایش بر همین مبنا است : اگر مدل توانسته باشد رابطه اصلی بین متغیرها را به درستی تشخیص دهد و پارامترهای خود را بر اساس داده های آموزش، به خوبی مقداردهی کند، نتیجه آن بر روی داده های آزمایش هم مطلوب و مناسب خواهد بود که در این صورت، مدل ما آماده استفاده در محیط واقعی و کار با داده هاییست که متغیر هدف آن، برای ما مشخص نیست و باید توسط این مدل، پیش بینی شده یا تخمین زده شود.
ارزیابی یک مدل، بر اساس داده های آزمایش و میزان نزدیک بودن مقادیر پیش بینی شده و مقادیر واقعی صورت میگیرد. هر چقدر این مقادیر به هم نزدیک تر باشند، گواه، صحت بیشتر مدل ساخته شده است.
انحراف از معیار و سوگیری
جورج باکس، یک ریاضیدان معروف انگلیسی می گوید :
تمام مدل ها اشتباه هستند. تنها برخی از آنها، مفید هستند.
مدلی با دقت ۱۰۰ درصد وجود ندارد. همه مدلها حاوی خطا هستند: خطای بین داده پیش بینی شده و مقدار اصلی آن. این خطا از دو منبع، نشأت میگیرد :
- سوگیری (بایاس)
- انحراف از معیار (واریانس)
توضیح ساده اینکه گاهی ما رابطه اصلی بین داده ها را متوجه میشویم مثلا میفهمیم بین آنها یک رابطه خطی ساده وجود دارد اما فرمولی که به آن می رسیم، تمام داده ها را با یک اختلاف مشخص از داده واقعی، تخمین می زند به عبارت دیگر همه خروجی های مدل با یک الگوی مشخص از داده های واقعی فاصله دارند. در این حالت می گوییم مدل ما به یک سمت، سوگیری گرده است و نیاز به تنظیم پارامترها برای رفع این سوگیری داریم .
از طرفی ممکن است رابطه بین متغیرهای ورودی و متغیر خروجی را به درستی نتوانیم تعیین کنیم یا به دلیل کم بودن تعداد ورودی ها یا کم بودن ویزگی ها یا مرتبط نبودن ورودی ها با خروجی و مسائلی از این قبیل، که باعث می شود خروجی مدل ما نسبت به مقدار واقعی متفاوت باشد و الگوی مشخصی هم بر این اختلاف حاکم نیست. به این اختلاف، انحراف از معیار می گوییم که هدف ما در ارزیابی مدل هم کاستن از هر دو نوع این خطاست.
با زدن یک مثال سعی می کنیم این دو مفهوم اساسی را کمی ملموس تر نشان دهیم. فرض کنید کامران و پرهام، که هر دو هفت ساله هستند ضرب اعداد در یک و در دو را یاد گرفته اند. از آنها خواسته ایم، جدول ضرب اعداد در سه را حدس بزنند. کامران این اعداد را تولید کرده است :
- ۳ x 1 = 4
- 3 x 2 = 7
- 3 x 3 = 10
- 3 x 4 = 13
- 3 x 5 = 16
پرهام نیز با حدس و گمان و بر اساس ضرب های قبلی که یادگرفته است، این اعداد را به ما داده است :
- ۳ x 1 = 5
- 3 x 2 = 9
- 3 x 3 = 18
- 3 x 4 = 24
- 3 x 5 = 30
با دید یادگیری ماشین اگر به این دو جدول ضرب نگاه کنیم، مطالب زیر قابل مشاهده خواهند بود :
- کامران، یک فرض ناصحیح کرده (سوگیری) است. او هر عدد را بعد از ضرب در سه با یک جمع کرده است. این فرض باعث شده است که تمام نتایج او، با یک الگوی مشخص از مقدار اصلی فاصله بگیرند. داده های او دارای خطای بایاس یا سوگیری هستند. البته همیشه سوگیری ها به این راحتی قابل مشاهده نیستند . این مثال یک سوگیری پایین دارد. (Low Bias)
- از طرفی فرض کامران در افزودن یک به خروجی ها، باعث شده است که همه نتایج اختلاف کمی با مقدار اصلی داشته باشند. یعنی مدل او دارای انحراف از معیار پایینی (Low Variance) است. اگر او فرض را بر جمع نتایج با ۱۰ می گذاشت، انحراف از معیار ما مقدار زیادی میشد.
- مدل تولیدی پرهام، الگوی مشخصی ندارد و داده ها از مقدار اصلی بسیار پراکنده اند. این مدل هم سوگیری بالایی (یعنی همه خروجی ها از مقدار اصلی اختلاف زیادی دارند و همه هم یک اختلاف مثبت با آن دارند که این الگو، خود یک سوگیری در تولید نتایج است) دارد و هم واریانس بالایی .
به طور خلاصه می توانیم این دو تعریف را برای انحراف از معیار و سوگیری داشته باشیم :
- سوگیری تمایل یک مدل به یادگیری اشتباه به صورت مداوم و برای همه داده هاست.
- انحراف از معیار گرایش یک مدل در به کارگیری مقادیر تصادفی و غیریکنواخت در تولید خروجی است که منجر به فاصله خروجی تولیدی از مقادیر واقعی می شود.
برای درک بهتر این دو موضوع اساسی در یادگیری ماشین می توانید به این مقاله مراجعه کنید.
مصالحه سوگیری / انحراف از معیار (واریانس / بایاس)
دوستی دارم که حفظیاتش قوی بود و از همین نفطه قوتش هم برای دروس ریاضی استفاده می کرد یعنی مسأله ها و تمرین ها را حفظ می کرد و سرجلسه امتحان حاضر می شد. اما اشکال کار اینجا بود که معمولاً سر جلسه امتحان، مسائل با کمی تغییر ظاهر میشد و اشک رفیق ما را در می آورد.
مسائل یادگیری ماشین هم از این الگو تبعیت می کنند. اگر یک مدل خود را با داده های آموزشی کاملاً تطبیق دهد و خطای خود را به حداقل برساند، در مواجهه با داده های واقعی با خطای زیادی مواجه خواهد شد و نتیجه مطلوب را تولید نخواهد کرد. تطبیق بیش از حد با مجموعه داده آموزشی را بیش برازش (Overfitting)می نامیم. مدلی که بیش از حد، تطبیق و برازش شده باشد، برای داده های واقعی کاربست پذیر نخواهد بود.
از طرف دیگر، اگر داده های کمی داشته باشیم و یا تطبیق کمی با داده های آموزشی ایجاد کنیم و فرآیند آموزش مدل را با وجود خطاهای زیاد، متوقف کنیم، با پدیده کم برازش (Underfitting) مواجه خواهیم شد و مدلی خواهیم داشت که حتی برای داده های آزمایش ما، نتایج مطلوب را تولید نخواهد نمود.
انیشتن این موضوع را به خوبی بیان کرده است. او میگوید :
هر چیزی باید تا حد امکان ساده شود، اما نه ساده تر از آنچه که لازم است.
یک مساله همیشگی در یادگیری ماشین هم همین مساله برقراری تعادل بین تطبیق بیش از حد مدل با داده های آموزشی و تطبیق نادقیق و سرسری آن است. این که مدلی تولید کنیم که نه خیلی پیچیده و مطابق با داده های آموزشی باشد و نه خیلی ساده. یک مدل عمومی که علیرغم دقت نه چندان بالایش، در عمل کاربردی باشد.
- مدلی که بیش از حد برازش شده باشد، پیچیده است و فقط برای داده های آموزشی مناسب عمل خواهد کرد و در عمل، حاوی خطاهای زیادی خواهد بود. البته خطاهای آن در عمل، با گذشت زمان مشاهده خواهد شد بنابراین نمی توان در همان ابتدا تعیین کرد که یک مدل، چقدر بیش برازش شده است.
- مدلی که خیلی برازش نشده و تطبیق کمی با داده ها داشته باشد، خیلی ساده است و حتی برای داده های آزمایشی ما مناسب عمل نخواهد کرد و خطای زیادی تولید می کند.
- یک مدل خوب، نه خیلی پیچیده و نه خیلی ساده است و می تواند به خوبی به داده های واقعی تعمیم داده شود. مدلیست ساده اما نه ساده تر از آنچه که باید ….
این تعادل، مصالحه بین انحراف از معیار / سوگیری (Bias Variance Dilemma) هم نامیده می شود. شکل زیر تا حدودی می تواند این موضوع را به شما به صورت بصری نشان دهد :
سخن پایانی
امیدواریم که با زبانی ساده مطالب پایه ای یادگیری آماری که همان پایه و اساس یادگیری ماشین هم هست را به شما منتقل کرده باشیم. آنچه تاکنون آموخته ایم از قرار زیر است :
- یادگیری آماری، علم یافتن رابطه های پنهانی بین داده هاست. بین داده های وابسته و داده های مستقل .
- مدل یک موتور تبدیل است ؛ موتوری که ورودی ها را به خروجی مورد نظر ما که متغیر وابسته ماست، تبدیل می کند. پارامترها هم متغیرهایی هستند که عملیات تبدیل را ممکن می سازند.
- مدل از داده های آموزشی برای یادگیری روابط استفاده می کند. مدل از داده های آزمایش برای تست و ارزیابی نتایج بهره می برد.
- تمام مدل ها اشتباه هستند و دقت صد در صد ندارند . برخی از آنها مفید و قابل استفاده اند.
- تعادل بین انحراف معیار و سوگیری را باید با دقت لحاظ کنیم. نه خیلی مدل را با داده های آموزشی تطبیق دهیم تا خطاهای آن در مواجهه با داده های آزمایش به حداقل برسد و نه به قدری، تطبیق را ساده انجام دهیم که حتی با داده های آزمایش هم نتایج مطلوبی، تولید نکند.
در مقالات آتی به سایر جنبه ها و مفاهیم پایه ای علم داده و یادگیری ماشین خواهی پرداخت .
قسمت دوم : تعاریف، مفاهیم پایه و فرآیند کار
سلام وقتتون بخیر
مطالبتون فوق العاده عالی بود
فقط من نمیتونم منبع اصلی رو پیدا کنم میشه لطف بفرمایید برام ارسالش کنید ممنون میشم.
وقت بخیر .
لینک مطالب در پاراگراف اول ذکر شده است که آنرا مجددا در این قسمت هم کپی میکنم :
Data Science Simplified Part 1: Principles and Process – Data Scientia
ممنون عالی بود