Градієнт для функції логістичних втрат


12

Я б задавав питання, пов’язане з цим .

Я знайшов приклад написання спеціальної функції втрати для xgboost тут :

loglossobj <- function(preds, dtrain) {
  # dtrain is the internal format of the training data
  # We extract the labels from the training data
  labels <- getinfo(dtrain, "label")
  # We compute the 1st and 2nd gradient, as grad and hess
  preds <- 1/(1 + exp(-preds))
  grad <- preds - labels
  hess <- preds * (1 - preds)
  # Return the result as a list
  return(list(grad = grad, hess = hess))
}

Логістична функція втрат є

лог(1+е-уП)

де - коефіцієнти журналу, а - мітки (0 або 1).уПу

Моє запитання: як ми можемо отримати градієнт (перша похідна) просто рівний різниці між справжніми значеннями та передбачуваними ймовірностями (обчислюється з log-коефіцієнтів як preds <- 1/(1 + exp(-preds)))?


Для цього слід використовувати втрати в квадраті. Ваше позначення є заплутаним і його слід визначити у публікації. Якщо - прогнозований ризик, то ( y - p ) 2 втрата - це те, що ви хочете. Я розгублений, тому що ми ніколи не використовуємо p для позначення коефіцієнтів журналу. p(yp)2p
АдамО

закріпився капіталом P . Це коефіцієнт журналу, і це чітко позначено у питанні. Я знаю, що градієнт для функції втрат ( y - f ( x ) ) 2 є f ( x ) - y , але це квадратна втрата, а не логістика. pП(у-f(х))2f(х)-у
Огурцов

Коли ви говорите "градієнт", який градієнт ви маєте на увазі? Градієнт втрат? Це просте математичне співвідношення: якщо похідна виразу є лінійною різницею, то вираз є квадратичною різницею або втратою помилки в квадраті.
АдамО

Так, мова йде про градієнт втрат. Це просто, коли функція втрати - це помилка в квадраті. У цьому випадку функція втрати - це логістична втрата ( en.wikipedia.org/wiki/LogitBoost ), і я не можу знайти відповідність між градієнтом цієї функції та наведеним прикладом коду.
Огурцов

Відповіді:


19

Моя відповідь на моє запитання: так, можна показати, що градієнт логістичних втрат дорівнює різниці між справжніми значеннями та прогнозованими ймовірностями. Короткий пояснення було знайдено тут .

По-перше, логістичні втрати - це лише негативна ймовірність журналу, тому ми можемо почати з вираження для лого-ймовірності ( стор. 74 - цей вираз є ймовірністю журналу, а не негативною ймовірністю журналу):

L=уiлог(pi)+(1-уi)лог(1-pi)

- логістична функція: p i = 1pipi=11+е-у^iу^i

L=уiлог(11+е-у^i)+(1-уi)лог(е-у^i1+е-у^i)

Перше похідне, отримане за допомогою Wolfram Alpha:

L'=уi-(1-уi)еу^i1+еу^i

е-у^iе-у^i

L'=уiе-у^i+уi-11+е-у^i=уi(1+е-у^i)1+е-у^i-11+е-у^i=уi-pi

Після зміни знаку ми маємо вираз для градієнта функції логістичних втрат:

pi-уi

2
у^уν1pi(1-pi)(уi-pi)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.