2016-06-13 21 views

Odpowiedz

13

Pochodna sumy jest sumą pochodnych, tj:

d(f1 + f2 + f3 + f4)/dx = df1/dx + df2/dx + df3/dx + df4/dx 

do uzyskania pochodnych p_j względem o_i zaczynamy:

d_i(p_j) = d_i(exp(o_j)/Sum_k(exp(o_k))) 

postanowiłem wykorzystać d_i dla pochodnej w odniesieniu do o_i, aby ułatwić czytanie. Stosując regułę produktów otrzymujemy:

 d_i(exp(o_j))/Sum_k(exp(o_k)) + exp(o_j) * d_i(1/Sum_k(exp(o_k))) 

Patrząc na pierwszą kadencję, pochodna będzie 0 jeśli i != j, może być reprezentowany z delta function które wezwę D_ij. Daje to (w pierwszym okresie):

= D_ij * exp(o_j)/Sum_k(exp(o_k)) 

który jest po prostu nasza pierwotna funkcja mnoży się przez D_ij

= D_ij * p_j 

na drugą kadencję, gdy czerpiemy każdy element sumy indywidualnie, tylko non -ZERO termin będzie, gdy , to daje nam (nie zapominając o zasadę zasilania, ponieważ suma jest w mianowniku)

= -exp(o_j) * Sum_k(d_i(exp(o_k))/Sum_k(exp(o_k))^2 
    = -exp(o_j) * exp(o_i)/Sum_k(exp(o_k))^2 
    = -(exp(o_j)/Sum_k(exp(o_k))) * (exp(o_j)/Sum_k(exp(o_k))) 
    = -p_j * p_i 

Umieszczenie dwóch t ogether otrzymamy zaskakująco prosty wzór:

D_ij * p_j - p_j * p_i 

Jeśli naprawdę chcesz, możemy podzielić ją na i = j i i != j przypadkach:

i = j: D_ii * p_i - p_i * p_i = p_i - p_i * p_i = p_i * (1 - p_i) 

    i != j: D_ij * p_i - p_i * p_j = -p_i * p_j 

Który jest naszą odpowiedzią.

+0

Dziękuję bardzo! To jest takie jasne. Nie mogłem prosić o lepsze wyjaśnienie! :) Cieszę się, że rozumiem teraz wyprowadzenie. Zamierzam to odnieść do osoby, która nie otrzymała odpowiedzi w sprawie wymiany math.stack! – Roshini

+0

@SirGuy nie powinno być twoim trzecim wyrażeniem: 'd_i (exp (o_j))/Sum_k (exp (o_k)) + exp (o_j) * d_i (1/Sum_k (exp (o_k)))'? Brakujące exp przed ostatnim "o_k" –

+0

@BenjaminCrouzier Dzięki, naprawiono to – SirGuy

3

Za to, co jest warte, oto moje pochodzenie oparte na odpowiedzi SirGuy: (Zapraszam do wskazywania błędów, jeśli znajdziesz jakieś).

enter image description here

+0

dzięki bardzo za to! Mam tylko jedną wątpliwość: dlaczego 'Σ_k ((d e^{o_k})/do_i) ocenia na' e^{o_i} 'z kroku 4 do 5? Byłbym bardzo wdzięczny za wszelkie spostrzeżenia, jakie możesz wnieść na to pytanie. – duhaime

+1

@duhaime Dobre pytanie. Pomyśl o wszystkich warunkach tej sumy jeden po drugim i zobacz, co dzieje się z każdym terminem. Widzisz, że masz dwa przypadki: Kiedy i = k, terminem jest 'd/do_i e^o_i', który jest' e^o_i'. Kiedy i! = K, dostajesz garść zer. –

+0

Fantastyczny, bardzo dziękuję! – duhaime

Powiązane problemy