ADALINE - zasada uczenia LMS

Przestrzenie wektorowe, bazy, liniowa niezależność, macierze.... Formy kwadratowe, twierdzenia o klasyfikacji...
Bones
Użytkownik
Użytkownik
Posty: 18
Rejestracja: 17 paź 2008, o 23:40
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 1 raz

ADALINE - zasada uczenia LMS

Post autor: Bones »

Cześć!

W książce "Neural Networks - Algorithms Appplications Programming" autorstwa Jamesa A. Freeman i Davida M. Skapura (strona 57, paragraf 2.2.1 The LMS Learning Rule) pojawia się następujące wyprowadzenie:

Mamy zbiór wektorów wejściowych \(\displaystyle{ X=\left\{ \vec{x_1}, \vec{x_2},..., \vec{x_L}\right\}}\) i każdy z nich posiada pewną odpowiadającą mu wartość wyjścia \(\displaystyle{ d_k}\), gdzie \(\displaystyle{ k=1,...,L}\). Wyjście \(\displaystyle{ k}\) obliczamy jako iloczyn wektora wejść i wektora odpowiadających im wag (\(\displaystyle{ t}\) od transpozycji):

\(\displaystyle{ y_k=\vec{w^t} * \vec{x_k}}\)

Błąd pomiędzy wartością wyliczoną a pożądaną to: \(\displaystyle{ \epsilon_k = d_k - y_k}\), zaś średni błąd kwadratowy to:

\(\displaystyle{ \left\langle \epsilon_k^2 \right\rangle = \frac{1}{L} \sum_{k=1}^{L} \epsilon_k^2}\)

gdzie \(\displaystyle{ L}\) to liczba wektorów zbioru uczącego.

\(\displaystyle{ \left\langle \epsilon_k^2 \right\rangle = \left\langle (d_k - \vec{w^t}*\vec{x_k})^2 \right\rangle = \left\langle d_k^2 \right\rangle + \vec{w^t} \left\langle \vec{x_k}\vec{x_k^t} \right\rangle \vec{w} - 2 * \left\langle d_k\vec{x_k^t} \right \rangle}\)

Jeśli \(\displaystyle{ R=\left\langle \vec{x_k}\vec{x_k^t} \right\rangle}\), a \(\displaystyle{ p=\left\langle d_k\vec{x_k} \right\rangle}\) oraz \(\displaystyle{ \xi = \left\langle \epsilon_k^2 \right\rangle}\) to:

\(\displaystyle{ \xi = \left\langle d_k^2 \right\rangle + \vec{w^t}R\vec{w} -2\vec{p^t}\vec{w}}\)

I szukając ekstremum funkcji błędu i wynajdując najbardziej optymalne wagi \(\displaystyle{ \vec{w^*}}\):

\(\displaystyle{ \frac{\partial \xi(\vec{w})}{ \partial \vec{w}} = 2R\vec{w} - 2\vec{p} = 0}\)

\(\displaystyle{ \vec{w^*} = R^{-1}\vec{p}}\)

I teraz z czym mam kłopot - nie potrafię udowodnić, że:

\(\displaystyle{ \xi_{min} = \left\langle d_k^2 \right\rangle - \vec{p^t}*\vec{w^*}}\)

Czy ktoś jest mi w stanie wyjaśnić skąd to wyprowadzenie? Podstawiałem \(\displaystyle{ \vec{w^*}}\) w ten sposób:

\(\displaystyle{ \xi_{min} = \left\langle d_k^2 \right\rangle + \vec{w^{*t}}R\vec{w^*} -2\vec{p^t}\vec{w^*}}\)

\(\displaystyle{ \xi_{min} = \left\langle d_k^2 \right\rangle + (R^{-1}\vec{p})^tR(R^{-1}\vec{p}) -2\vec{p^t}R^{-1}\vec{p}}\)

I jako, że za bardzo nie znam rachunku macierzowego, więc nie wiem co w tym równaniu mogę, a czego nie... Moje rozwiązanie doprowadziło mnie do stwierdzenia, że:

\(\displaystyle{ (R^{-1})^t = R^{-1}}\)

Co nie jest prawdą... No, ale jak już pisałem, rachunek macierzowy u mnie kuleje, dlatego bardzo prosiłbym o wytłumaczenie dlaczego, co i jak.
Z góry bardzo dziękuję i pozdrawiam,
Bones.
ODPOWIEDZ