تابع هزینه - Cost Function - مهدی مشایخی

تابع هزینه چیست؟ چه کاربردی دارد؟ مهدی مشایخیتابع هزینه در مباحث ماشین لرنینگتابع ضرر/هزینه چیست؟ «از دست دادن» در یادگیری ماشینی به ما کمک می‌کند تفاوت بین ارزش پیش‌بینی‌شده و ارزش واقعی را درک کنیم. تابعی که برای تعیین کمیت این اتلاف در مرحله آموزش به شکل یک عدد واقعی استفاده می شود، به عنوان "تابع ضرر" شناخته می شود. اینها در آن دسته از الگوریتم های یادگیری تحت نظارت که از تکنیک های بهینه‌سازی استفاده می کنند استفاده می شود. نمونه‌های قابل‌توجهی از این الگوریتم‌ها رگرسیون ، رگرسیون لجستیک و غیره است. اصطلاحات تابع هزینه و تابع ضرر مشابه هستند.تابع Loss: زمانی استفاده می شود که برای یک مثال آموزشی به خطا اشاره کنیم.تابع هزینه (Cost): برای اشاره به میانگین توابع ضرر در کل مجموعه داده آموزشی استفاده می شود.اما چرا از تابع هزینه استفاده میکنیم؟چرا به یک تابع هزینه نیاز داریم؟ سناریویی را در نظر بگیرید که در آن می خواهیم داده ها را طبقه‌بندی کنیم. فرض کنید جزئیات قد و وزن برخی از گربه ها و سگ ها را داریم. اجازه دهید از این 2 ویژگی برای طبقه‌بندی صحیح آنها استفاده کنیم. اگر این رکوردها را رسم کنیم، نمودار پراکندگی زیر را دریافت می کنیم:نمودار پراکندگی برای قد و وزن سگ ها و گربه های مختلفنقاط آبی گربه و نقاط قرمز سگ هستند. در زیر چند راه حل برای مشکل طبقه‌بندی بالا آورده شده است.راه حل های احتمالی برای مشکل طبقه‌بندی مااساساً هر سه طبقه‌بندی‌کننده دقت بسیار بالایی دارند، اما راه‌حل سوم بهترین است زیرا هیچ نقطه‌ای را اشتباه طبقه‌بندی نمی‌کند. دلیل اینکه همه نقاط را کاملاً طبقه‌بندی می کند این است که خط تقریباً دقیقاً در بین دو گروه قرار دارد و به هیچ یک از گروه ها نزدیکتر نیست. اینجاست که مفهوم تابع هزینه مطرح می شود. تابع هزینه به ما کمک می کند به راه حل بهینه برسیم. تابع هزینه، تکنیک ارزیابی «عملکرد الگوریتم/مدل ما» است.هم خروجی های پیش بینی شده توسط مدل و هم خروجی های واقعی را می گیرد و محاسبه می کند که مدل چقدر در پیش بینی خود اشتباه بوده است. اگر پیش‌بینی‌های ما با مقادیر واقعی تفاوت زیادی داشته باشد، عدد بالاتری به دست می‌دهد. همانطور که مدل خود را برای بهبود پیش‌بینی‌ها تنظیم می‌کنیم، تابع هزینه به عنوان شاخصی از بهبود مدل عمل می‌کند. این در اصل یک مشکل بهینه‌سازی است. هدف استراتژی های بهینه‌سازی همیشه "به حداقل رساندن تابع هزینه" است.انواع تابع هزینهتوابع هزینه زیادی در یادگیری ماشین وجود دارد و هر کدام بسته به اینکه مشکل رگرسیونی یا طبقه‌بندی باشد، موارد استفاده خود را دارد.تابع هزینه رگرسیونتوابع هزینه طبقه‌بندی باینریتوابع هزینه طبقه‌بندی چند طبقه1. تابع هزینه رگرسیون:مدل‌های رگرسیون با پیش‌بینی یک مقدار پیوسته مانند حقوق یک کارمند، قیمت خودرو، پیش‌بینی وام و غیره سروکار دارند. آنها بر اساس خطای فاصله به صورت زیر محاسبه می شوند:خطا = y-y'جایی که،Y - ورودی واقعیY' – خروجی پیش بینی شدهبیشترین استفاده از توابع هزینه رگرسیون در زیر آمده است:1.1 میانگین خطا (ME)در این تابع هزینه، خطای هر داده آموزشی محاسبه شده و سپس مقدار میانگین تمامی این خطاها استخراج می شود.محاسبه میانگین خطاها ساده‌ترین و شهودی ترین راه ممکن است.خطاها می توانند هم منفی و هم مثبت باشند. بنابراین آنها می توانند یکدیگر را در طول جمع خنثی کنند و میانگین خطای مدل را صفر کنند.بنابراین این یک تابع هزینه توصیه شده نیست، اما پایه و اساس دیگر توابع هزینه مدل های رگرسیون را می گذارد.1.2 میانگین مربعات خطا (MSE)این ایرادی را که در Mean Error در بالا با آن مواجه شدیم بهبود می بخشد. در اینجا یک مربع از تفاوت بین مقدار واقعی و پیش بینی شده محاسبه می شود تا از هرگونه احتمال خطای منفی جلوگیری شود.به عنوان میانگین مجموع اختلاف مجذور بین پیش بینی ها و مشاهدات واقعی اندازه گیری می شود.MSE = (مجموع مجذور خطاها)/nهمچنین به عنوان از دست دادن L2 شناخته می شود.در MSE، از آنجایی که هر خطا مربع است، به جریمه کردن انحرافات کوچک در پیش بینی در مقایسه با MAE کمک می کند. اما اگر مجموعه داده‌های ما دارای مقادیر پرت باشد که به خطاهای پیش‌بینی بزرگ‌تر کمک می‌کند، در این صورت مربع کردن بیشتر این خطا ، خطا را چندین برابر بیشتر می‌کند و همچنین منجر به خطای MSE بالاتر می‌شود.از این رو می توان گفت که نسبت به موارد پرت مقاومت کمتری دارد1.3 میانگین خطای مطلق (MAE)این تابع هزینه همچنین کمبود میانگین خطا را به طور متفاوتی برطرف می کند. در اینجا یک تفاوت مطلق بین مقدار واقعی و پیش بینی شده محاسبه می شود تا از هرگونه احتمال خطای منفی جلوگیری شود.بنابراین در این تابع هزینه، MAE به عنوان میانگین مجموع تفاوت های مطلق بین پیش بینی ها و مشاهدات واقعی اندازه گیری می شود.MAE = (مجموع خطاهای مطلق)/nهمچنین به عنوان ضرر L1 شناخته می شود.نسبت به موارد پرت مقاوم است، بنابراین حتی زمانی که مجموعه داده ما دارای نویز یا نقاط پرت باشد، نتایج بهتری به دست خواهد آورد.2. توابع هزینه برای مسائل طبقه‌بندیتوابع هزینه مورد استفاده در مسائل طبقه‌بندی با آنچه ما در مسئله رگرسیون استفاده می کنیم متفاوت است. یک تابع زیان که معمولاً برای طبقه‌بندی استفاده می شود، از دست دادن متقابل آنتروپی است. اجازه دهید آنتروپی متقاطع را با یک مثال کوچک درک کنیم. در نظر بگیرید که ما یک مشکل طبقه‌بندی 3 کلاس به شرح زیر داریم.کلاس (پرتقال، سیب، گوجه فرنگی)مدل یادگیری ماشین توزیع احتمالی از این 3 کلاس را به عنوان خروجی برای یک داده ورودی داده شده ارائه می دهد. کلاسی که بیشترین احتمال را دارد به عنوان کلاس برنده برای پیش بینی در نظر گرفته می شود.خروجی = [P (نارنجی)، P (سیب)، P (گوجه فرنگی)]توزیع احتمال واقعی برای هر کلاس در زیر نشان داده شده است.نارنجی = [1,0,0]سیب = [0،1،0]گوجه فرنگی = [0,0,1]اگر در مرحله آموزش، کلاس ورودی گوجه فرنگی باشد، توزیع احتمال پیش بینی شده باید به سمت توزیع احتمال واقعی گوجه فرنگی باشد. اگر توزیع احتمال پیش‌بینی‌شده به توزیع واقعی نزدیک‌تر نباشد، مدل باید وزن خود را تنظیم کند. اینجاست که آنتروپی متقاطع به ابزاری برای محاسبه فاصله توزیع احتمال پیش‌بینی‌شده از واقعی تبدیل می‌شود. به عبارت دیگر، آنتروپی متقاطع را می توان راهی برای اندازه گیری فاصله بین دو توزیع احتمال در نظر گرفت. تصویر زیر شهود پشت آنتروپی متقابل را نشان می دهد:این فقط یک شهود پشت آنتروپی متقابل بود. منشأ آن در نظریه اطلاعات است. اکنون با این درک از آنتروپی متقابل، اجازه دهید اکنون توابع هزینه طبقه‌بندی را ببینیم.2.1 توابع هزینه طبقه بندی چند طبقهاین تابع هزینه در مسائل طبقه بندی که در آن چندین کلاس وجود دارد و داده های ورودی فقط به یک کلاس تعلق دارد استفاده می شود. اکنون بیایید بفهمیم که آنتروپی متقاطع چگونه محاسبه می شود. فرض کنید که مدل توزیع احتمال را به صورت زیر برای کلاس های 'n' و برای یک داده ورودی خاص D ارائه می دهد.و توزیع احتمال واقعی یا هدف داده D استسپس آنتروپی متقاطع برای آن داده خاص D به صورت محاسبه می شوداز دست دادن آنتروپی متقاطع (y,p) = – y T log(p)= -(y 1 log (p 1 ) + y 2 log (p 2 ) + ……y n log (p n ) )اکنون اجازه دهید تابع هزینه را با استفاده از مثال بالا تعریف کنیم (به تصویر آنتروپی متقاطع -شکل 3 مراجعه کنید).p (گوجه فرنگی) = [0.1، 0.3، 0.6]y (گوجه فرنگی) = [0، 0، 1]متقاطع آنتروپی(y,P) = – (0*Log(0.1) + 0*Log(0.3)+1*Log(0.6)) = 0.51فرمول فوق فقط آنتروپی متقاطع را برای یک مشاهده یا داده ورودی واحد اندازه گیری می کند. خطا در طبقه‌بندی برای مدل کامل با آنتروپی متقاطع طبقه‌بندی می‌شود که چیزی جز میانگین آنتروپی متقاطع برای تمام داده‌های آموزشی N نیست.آنتروپی متقاطع = (مجموع آنتروپی متقاطع برای N داده)/N2.2 تابع هزینه آنتروپی متقاطع باینریآنتروپی متقاطع باینری یک مورد خاص از آنتروپی متقاطع طبقه‌ای است که تنها یک خروجی وجود دارد که فقط مقدار دودویی 0 یا 1 را برای نشان دادن کلاس منفی و مثبت فرض می‌کند. به عنوان مثال - طبقه‌بندی بین گربه و سگ.انتقادات و پیشنهاد خود را در پایین همین مقاله با ما در میان بگذارید!منبعممنون که این مطلب رو خوندید ، اگه سوالی درمورد برنامه نویسی داشتید میتونید در شبکه های اجتمایی من بپرسید.ارتباط با من :وبسایت : mahdimashayekhi.irگیت هاب: MahdiMashayekhi-AIلینکدین: MahdiMashayekhiتوییتر: Mashayekhi_AIیوتیوب: MahdiMashayekhiاینستاگرام: MahdiMashayekhi.ai