تقویت گرادیان (واحد اختیاری)

در مسائل رگرسیون، منطقی است که خطای امضا شده را به عنوان تفاوت بین پیش بینی و برچسب تعریف کنیم. با این حال، در انواع دیگر مشکلات، این استراتژی اغلب منجر به نتایج ضعیف می شود. یک استراتژی بهتر مورد استفاده در تقویت گرادیان این است که:

  • یک تابع ضرر مشابه توابع اتلاف مورد استفاده در شبکه های عصبی تعریف کنید. به عنوان مثال، آنتروپی (همچنین به عنوان از دست دادن گزارش نیز شناخته می شود) برای یک مشکل طبقه بندی.
  • مدل ضعیف را برای پیش بینی گرادیان از دست دادن با توجه به خروجی مدل قوی آموزش دهید.

به طور رسمی، با توجه به یک تابع ضرر $L(y,p)$ که در آن $y$ یک برچسب و $p$ یک پیش‌بینی است، پاسخ شبه $z_i$ که برای آموزش مدل ضعیف در مرحله $i$ استفاده می‌شود، است:

$$ z_i = \frac {\partial L(y, F_i)} {\partial F_i} $$

جایی که:

  • $F_i$ پیش بینی مدل قوی است.

مثال قبلی یک مشکل رگرسیونی بود: هدف پیش‌بینی یک مقدار عددی است. در مورد رگرسیون، خطای مربع یک تابع ضرر رایج است:

$$ L(y,p) = (y - p)^2 $$

در این مورد، گرادیان:

$$ z = \frac {\partial L(y, F_i)} {\partial F_i} = \frac {\partial(y-p)^2} {\partial p} = 2(y - p) = 2 \ \text{signed error} $$

در کلمات ترتیبی، گرادیان خطای علامتی از مثال ما با ضریب 2 است. توجه داشته باشید که عوامل ثابت به دلیل انقباض مهم نیستند. توجه داشته باشید که این هم ارزی فقط برای مسائل رگرسیون با از دست دادن خطای مجذور صادق است. برای سایر مشکلات یادگیری تحت نظارت (به عنوان مثال، طبقه بندی، رتبه بندی، رگرسیون با از دست دادن صدک)، هیچ معادلی بین گرادیان و یک خطای علامت وجود ندارد.

بهینه سازی برگ و ساختار با گام روش نیوتن

روش نیوتن یک روش بهینه سازی مانند نزول گرادیان است. با این حال، برخلاف شیب نزولی که فقط از گرادیان تابع برای بهینه‌سازی استفاده می‌کند، روش نیوتن هم از گرادیان (مشتق اول) و هم از مشتق دوم تابع برای بهینه‌سازی استفاده می‌کند.

یک مرحله از شیب نزول به شرح زیر است:

$$ x_{i+1} = x_i - \frac {df}{dx}(x_i) = x_i - f'(x_i) $$

و روش نیوتن به شرح زیر است:

$$ x_{i+1} = x_i - \frac {\frac {df}{dx} (x_i)} {\frac {d^2f}{d^2x} (x_i)} = x_i - \frac{f'(x_i)}{f''(x_i)}$$

به صورت اختیاری، روش نیوتن را می توان به دو روش با آموزش درختان تقویت شده با گرادیان ادغام کرد:

  1. هنگامی که یک درخت آموزش داده می شود، یک گام نیوتن روی هر برگ اعمال می شود و ارزش آن را نادیده می گیرد. ساختار درختی دست نخورده است. فقط مقادیر برگ تغییر می کند.
  2. در طول رشد یک درخت، شرایط با توجه به امتیازی انتخاب می شود که شامل یک جزء از فرمول نیوتن است. ساختار درخت تحت تاثیر قرار گرفته است.
کد YDF
در YDF:
  • YDF همیشه یک گام نیوتن را روی برگ اعمال می کند (گزینه 1).
  • می توانید گزینه 2 را با use_hessian_gain=True فعال کنید.