تابع ضرر/هزینه چیست؟ «از دست دادن» در یادگیری ماشینی به ما کمک میکند تفاوت بین ارزش پیشبینیشده و ارزش واقعی را درک کنیم. تابعی که برای تعیین کمیت این اتلاف در مرحله آموزش به شکل یک عدد واقعی استفاده می شود، به عنوان "تابع ضرر" شناخته می شود. اینها در آن دسته از الگوریتم های یادگیری تحت نظارت که از تکنیک های بهینهسازی استفاده می کنند استفاده می شود. نمونههای قابلتوجهی از این الگوریتمها رگرسیون ، رگرسیون لجستیک و غیره است. اصطلاحات تابع هزینه و تابع ضرر مشابه هستند.
تابع Loss: زمانی استفاده می شود که برای یک مثال آموزشی به خطا اشاره کنیم.
تابع هزینه (Cost): برای اشاره به میانگین توابع ضرر در کل مجموعه داده آموزشی استفاده می شود.
چرا به یک تابع هزینه نیاز داریم؟ سناریویی را در نظر بگیرید که در آن می خواهیم داده ها را طبقهبندی کنیم. فرض کنید جزئیات قد و وزن برخی از گربه ها و سگ ها را داریم. اجازه دهید از این 2 ویژگی برای طبقهبندی صحیح آنها استفاده کنیم. اگر این رکوردها را رسم کنیم، نمودار پراکندگی زیر را دریافت می کنیم:
نقاط آبی گربه و نقاط قرمز سگ هستند. در زیر چند راه حل برای مشکل طبقهبندی بالا آورده شده است.
اساساً هر سه طبقهبندیکننده دقت بسیار بالایی دارند، اما راهحل سوم بهترین است زیرا هیچ نقطهای را اشتباه طبقهبندی نمیکند. دلیل اینکه همه نقاط را کاملاً طبقهبندی می کند این است که خط تقریباً دقیقاً در بین دو گروه قرار دارد و به هیچ یک از گروه ها نزدیکتر نیست. اینجاست که مفهوم تابع هزینه مطرح می شود. تابع هزینه به ما کمک می کند به راه حل بهینه برسیم. تابع هزینه، تکنیک ارزیابی «عملکرد الگوریتم/مدل ما» است.
هم خروجی های پیش بینی شده توسط مدل و هم خروجی های واقعی را می گیرد و محاسبه می کند که مدل چقدر در پیش بینی خود اشتباه بوده است. اگر پیشبینیهای ما با مقادیر واقعی تفاوت زیادی داشته باشد، عدد بالاتری به دست میدهد. همانطور که مدل خود را برای بهبود پیشبینیها تنظیم میکنیم، تابع هزینه به عنوان شاخصی از بهبود مدل عمل میکند. این در اصل یک مشکل بهینهسازی است. هدف استراتژی های بهینهسازی همیشه "به حداقل رساندن تابع هزینه" است.
توابع هزینه زیادی در یادگیری ماشین وجود دارد و هر کدام بسته به اینکه مشکل رگرسیونی یا طبقهبندی باشد، موارد استفاده خود را دارد.
مدلهای رگرسیون با پیشبینی یک مقدار پیوسته مانند حقوق یک کارمند، قیمت خودرو، پیشبینی وام و غیره سروکار دارند. آنها بر اساس خطای فاصله به صورت زیر محاسبه می شوند:
خطا = y-y'
جایی که،
Y - ورودی واقعیY' – خروجی پیش بینی شده
بیشترین استفاده از توابع هزینه رگرسیون در زیر آمده است:
1.1 میانگین خطا (ME)
1.2 میانگین مربعات خطا (MSE)
MSE = (مجموع مجذور خطاها)/n
1.3 میانگین خطای مطلق (MAE)
MAE = (مجموع خطاهای مطلق)/n
توابع هزینه مورد استفاده در مسائل طبقهبندی با آنچه ما در مسئله رگرسیون استفاده می کنیم متفاوت است. یک تابع زیان که معمولاً برای طبقهبندی استفاده می شود، از دست دادن متقابل آنتروپی است. اجازه دهید آنتروپی متقاطع را با یک مثال کوچک درک کنیم. در نظر بگیرید که ما یک مشکل طبقهبندی 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 داده)/N
2.2 تابع هزینه آنتروپی متقاطع باینری
آنتروپی متقاطع باینری یک مورد خاص از آنتروپی متقاطع طبقهای است که تنها یک خروجی وجود دارد که فقط مقدار دودویی 0 یا 1 را برای نشان دادن کلاس منفی و مثبت فرض میکند. به عنوان مثال - طبقهبندی بین گربه و سگ.
انتقادات و پیشنهاد خود را در پایین همین مقاله با ما در میان بگذارید!
ممنون که این مطلب رو خوندید ، اگه سوالی درمورد برنامه نویسی داشتید میتونید در شبکه های اجتمایی من بپرسید.
وبسایت : mahdimashayekhi.ir
گیت هاب: MahdiMashayekhi-AI
لینکدین: MahdiMashayekhi
توییتر: Mashayekhi_AI
یوتیوب: MahdiMashayekhi
اینستاگرام: MahdiMashayekhi.ai