مقدمه
کارهای دستهبندی زیادی وجود دارد که به طور معمول توسط افراد انجام میشود. به عنوان مثال، دستهبندی اینکه آیا یک ایمیل هرزنامه است یا نه، دستهبندی بدخیم یا خوش خیم بودن یک تومور، دستهبندی اینکه آیا یک وب سایت تقلبی است یا نه، و غیره.
اینها نمونههای معمولی هستند که الگوریتم های یادگیری ماشینی میتوانند زندگی ما را بسیار آسان کنند. یک الگوریتم بسیار ساده، ابتدایی و مفید برای دستهبندی، الگوریتم رگرسیون لجستیک است. اکنون، میخواهیم نگاهی عمیقتر به رگرسیون لجستیک بیندازیم.
تابع سیگموید (رگرسیون لجستیک)
الگوریتم رگرسیون لجستیک نیز از یک معادله خطی با پیش بینی کنندههای مستقل برای پیش بینی یک مقدار استفاده میکند. مقدار پیش بینی شده میتواند بین منفی بی نهایت تا مثبت بی نهایت باشد. ما نیاز داریم که خروجی الگوریتم متغیر کلاس باشد، یعنی ۱ برای کلاس yes و ۰ برای کلاس no. بنابراین، ما خروجی معادله خطی را در محدوده [۰،۱] انتقال میدهیم. برای انتقال مقدار پیش بینی شده بین ۰ و ۱، از تابع سیگموئید استفاده میکنیم.
خروجی (z) معادله خطی را میگیریم و به تابع g(x) میدهیم که مقدار انتقال، h را برمیگرداند، مقدار h در محدوده ۰ تا ۱ قرار میگیرد.
همانطور که از نمودار میبینید، تابع سیگموئید برای مقادیر مثبت x به y=1 مجانبی میشود و برای مقادیر منفی x تبدیل به y=0 مجانبی میشود.
تابع هزینه
از آنجایی که ما در تلاش برای پیشبینی مقادیر کلاس هستیم، نمیتوانیم از همان تابع هزینه استفاده شده در الگوریتم رگرسیون خطی استفاده کنیم. بنابراین، ما از یک تابع ضرر لگاریتمی برای محاسبه هزینه دستهبندی نادرست استفاده میکنیم.
تابع هزینه فوق را میتوان به صورت زیر بازنویسی کرد زیرا محاسبه گرادیانها از معادله بالا دشوار است.
محاسبه گرادیان
ما مشتقات جزئی تابع هزینه را با توجه به هر پارامتر (theta_0، theta_1، …) میگیریم تا گرادیانها را بدست آوریم. با کمک این گرادیانها، میتوانیم مقادیر theta_0، theta_1، … را به روز کنیم. برای درک معادلات زیر به مقداری حساب دیفرانسیل و انتگرال نیاز دارید.