Гессиан логистической функции


15

Мне трудно вывести гессиан целевой функции l(θ) в логистической регрессии, где l(θ) равно:

l(θ)=i=1m[yilog(hθ(xi))+(1yi)log(1hθ(xi))]

hθ(x) - логистическая функция. ГессианXTDX . Я пытался вывести его путем расчета2l(θ)θiθj , но тогда это не было очевидно для менякак добраться до матричном из2l(θ)θiθj .

Кто-нибудь знает какой-нибудь простой и понятный способ получения XTDX ?


3
что вы получите для ? 2lθiθj
Glen_b

1
Вот хороший набор слайдов, которые показывают точный расчет, который вы ищете: sites.stat.psu.edu/~jiali/course/stat597e/notes2/logit.pdf

Я нашел замечательное видео, которое вычисляет гессенский шаг за шагом. Логистическая регрессия (двоичная) - вычисление гессиана
Наоми

Ответы:


20

Здесь я вывожу все необходимые свойства и тождества для того, чтобы решение было автономным, но кроме этого этот вывод является чистым и легким. Давайте формализуем наши обозначения и напишем функцию потерь немного более компактно. Рассмотрим m образцы {xi,yi} такое , что xiRd и yiR . Напомним, что в бинарной логистической регрессии мы обычно имеем функцию гипотезы hθ которая является логистической функцией. Формально

hθ(xi)=σ(ωTxi)=σ(zi)=11+ezi,

где ωRd и zi=ωTxi . Функция потерь (которая, как я считаю, у ОП отсутствует знак минус) определяется следующим образом:

l(ω)=i=1m(yilogσ(zi)+(1yi)log(1σ(zi)))

Есть два важных свойства логистической функции, которые я выведу здесь для дальнейшего использования. Во-первых, обратите внимание, что 1σ(z)=11/(1+ez)=ez/(1+ez)=1/(1+ez)=σ(z) .

Также обратите внимание, что

zσ(z)=z(1+ez)1=ez(1+ez)2=11+ezez1+ez=σ(z)(1σ(z))

Instead of taking derivatives with respect to components, here we will work directly with vectors (you can review derivatives with vectors here). The Hessian of the loss function l(ω) is given by 2l(ω), but first recall that zω=xTωω=xT and zωT=ωTxωT=x.

Let li(ω)=yilogσ(zi)(1yi)log(1σ(zi)). Using the properties we derived above and the chain rule

logσ(zi)ωT=1σ(zi)σ(zi)ωT=1σ(zi)σ(zi)ziziωT=(1σ(zi))xilog(1σ(zi))ωT=11σ(zi)(1σ(zi))ωT=σ(zi)xi

It's now trivial to show that

li(ω)=li(ω)ωT=yixi(1σ(zi))+(1yi)xiσ(zi)=xi(σ(zi)yi)

whew!

Our last step is to compute the Hessian

2li(ω)=li(ω)ωωT=xixiTσ(zi)(1σ(zi))

For m samples we have 2l(ω)=i=1mxixiTσ(zi)(1σ(zi)). This is equivalent to concatenating column vectors xiRd into a matrix X of size d×m such that i=1mxixiT=XXT. The scalar terms are combined in a diagonal matrix D such that Dii=σ(zi)(1σ(zi)). Finally, we conclude that

H(ω)=2l(ω)=XDXT

A faster approach can be derived by considering all samples at once from the beginning and instead work with matrix derivatives. As an extra note, with this formulation it's trivial to show that l(ω) is convex. Let δ be any vector such that δRd. Then

δTH(ω)δ=δT2l(ω)δ=δTXDXTδ=δTXD(δTX)T=δTDX20

since D>0 and δTX0. This implies H is positive-semidefinite and therefore l is convex (but not strongly convex).


2
In the last equation, shouldn't it be ||δD1/2X|| since XDX = XD1/2(XD1/2)?
appletree

1
Shouldn't it be XTDX?
Chintan Shah
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.