2014-10-01 12 views
5

Niedawno zacząłem myśleć o wprowadzeniu algorytmu Levenberga-Marquardta do nauki Sztucznej Sieci Neuronowej (SSN). Kluczem do wdrożenia jest obliczenie macierzy jakobianowskiej. Spędziłem kilka godzin na badaniu tematu, ale nie potrafię dokładnie obliczyć, jak to dokładnie obliczyć.Jakobianowe obliczenia macierzy dla sztucznych sieci neuronowych

Załóżmy, że mam prostą sieć przesyłu z 3 wejściami, 4 neurony w ukrytej warstwie i 2 wyjścia. Warstwy są w pełni połączone. Posiadam również 5-rzędowy zestaw do nauki.

  1. Co dokładnie powinno być wielkością matrycy jakobianów?
  2. Co dokładnie powinienem wprowadzić w miejsce instrumentów pochodnych? (Przykłady wzorów na lewym górnym rogu i prawym dolnym rogach wzdłuż z jakimś wyjaśnieniem byłby idealny)

To naprawdę nie pomaga:

enter image description here

Jakie są F i x w kategoriach sieci neuronowej?

Odpowiedz

0

więc z doświadczenia pracy z Ann wstecznej propagacji błędów

  1. jakobian matrycy organizuje wszystkie pochodne cząstkowe się z M x N matrycy gdzie m jest numerem wyjścia, a n jest liczbą wejściowych. Więc w twoim przypadku powinno być 2x3

  2. Więc powiedzmy, że istnieje zbiór między 1 a k liczba wyjścia (F na zdjęciu) i nie jest 1 i numer wejścia (x na zdjęciu) więc formuła powinna być tak

     Fk 
    Jki = ---- 
         xi 
    

Niestety nie wiem jak napisać wzór formatu tutaj, ale mam nadzieję, że moja odpowiedź jest wystarczająco jasne.
Jeśli masz jakieś pytanie dotyczące mojej odpowiedzi, poproś o komentarz!

+0

Jak powinna wyglądać funkcja F?Również Abhinash w swojej odpowiedzi zasugerował, że rozmiar matrycy jest inny niż proponowany (jeśli dobrze go rozumiem). Może gdy zobaczę funkcję F, będzie to bardziej jasne. – gisek

7

Jacobian jest matrycą wszystkich pochodnych cząstkowych pierwszego rzutu funkcji o wartości wektorowej. W przypadku sieci neuronowej jest to matryca N-by-W, gdzie N to liczba wpisów w naszym zbiorze treningowym, a W to całkowita liczba parametrów (wagi + odchylenia) naszej sieci. Może on być utworzony poprzez częściowe pochodne każdego pola w odniesieniu do każdego ciężaru i ma postać:

enter image description here

gdzie F (xi, W) jest funkcja sieci oceniano dla i-tego wejściowego wektor zestawu treningowego wykorzystującego wektor wagowy w i wj jest j-tym elementem wektora wagowego w sieci. W tradycyjnych implementacjach Levenberg-Marquardt, jakobian jest przybliżony za pomocą skończonych różnic. Jednak w przypadku sieci neuronowych można ją bardzo skutecznie obliczyć, stosując łańcuchową zasadę rachunku różniczkowego i pierwszych pochodnych funkcji aktywacyjnych.

+0

Tak więc w przykładzie z mojego pytania liczba kolumn matrycy = 3 * 4 + 4 * 2 = 20 (zapomnijmy na chwilę o błędach), a liczba rzędów macierzy jest taka sama jak liczba wierszy w danych zestaw (5)? Jak powinna wyglądać funkcja F? – gisek

+0

@abhinash Czy gradient i Jakobian są takie same? Ponieważ nawet macierz gradientu miałaby rozmiar NxW, ponieważ podłączymy ją do równania gradientowego –

Powiązane problemy