wykresy komputerowe

ogłoszenia

Backpropagation jest zaimplementowany w frameworkach deep learning takich jak TensorFlow, Torch, Theano itp., za pomocą wykresów obliczeniowych. Co ważniejsze, zrozumienie propagacji wstecznej na wykresach obliczeniowych łączy kilka różnych algorytmów i ich odmian, takich jak backprop przez czas i backprop ze wspólnymi wagami. Gdy wszystko jest konwertowane na wykres obliczeniowy, są one nadal ten sam algorytm – tylko z powrotem propagacji na wykresach obliczeniowych.

Co to jest Graf obliczeniowy

Graf obliczeniowy jest zdefiniowany jako Graf kierowany, w którym węzły odpowiadają operacjom matematycznym. Wykresy obliczeniowe są sposobem wyrażania i oceny wyrażenia matematycznego.

na przykład, oto proste równanie matematyczne −

$$p = x+y$$

możemy narysować wykres obliczeniowy powyższego równania w następujący sposób.

równość wykresu Obliczeniowego1

powyższy wykres obliczeniowy ma dodatkowy węzeł (węzeł ze znakiem”+”) z dwiema wejściowymi zmiennymi x i y oraz jedną wyjściową q.

weźmy inny przykład, nieco bardziej złożony. Mamy następujące równanie.

$ $ g = \ left (x+y \right ) \ast z $$

powyższe równanie jest reprezentowane przez następujący wykres obliczeniowy.

równość Wykresów Obliczeniowych2

wykresy obliczeniowe i Backpropagacja

wykresy obliczeniowe i backpropagacja, oba są ważnymi podstawowymi pojęciami w głębokim uczeniu do szkolenia sieci neuronowych.

Forward Pass

Forward pass to procedura oceny wartości wyrażenia matematycznego reprezentowanego przez wykresy obliczeniowe. Wykonanie forward pass oznacza, że przekazujemy wartość ze zmiennych w kierunku do przodu od lewej (wejście) do prawej, gdzie jest wyjście.

rozważmy przykład podając pewną wartość wszystkim wejściom. Załóżmy, że następujące wartości są podane dla wszystkich wejść.

$$x=1, y=3, z=-3$$

podając te wartości wejściom, możemy wykonać forward pass i uzyskać następujące wartości dla wyjść na każdym węźle.

najpierw używamy wartości x = 1 i y = 3, aby uzyskać p = 4.

Forward Pass

następnie używamy p = 4 i z = -3, aby uzyskać g = -12. Idziemy od lewej do prawej, do przodu.

równanie przejścia do przodu

cele przejścia do tyłu

w przejściu do tyłu naszym zamiarem jest obliczenie gradientów dla każdego wejścia w odniesieniu do końcowego wyjścia. Te gradienty są niezbędne do szkolenia sieci neuronowej z wykorzystaniem gradientu zniżania.

na przykład pragniemy następujących gradientów.

pożądane gradienty

$$\frac{\partial x}{\partial f}, \frac{\partial y}{\partial f}, \frac{\partial z}{\partial f}$$

Backward pass (backpropagation)

rozpoczynamy backward pass od znalezienia pochodnej końcowego wyniku względem końcowego wyniku (samego!). W ten sposób spowoduje to wyprowadzenie tożsamości, a wartość jest równa 1.

$$ \ frac {\partial g} {\partial g} = 1$$

nasz wykres obliczeniowy wygląda teraz tak, jak pokazano poniżej –

 Backward Pass

następnie wykonamy backward pass poprzez operację”*”. Obliczymy gradienty w p i z. Ponieważ g = p*z, wiemy, że−

$$\frac {\partial g} {\partial z} = p$$

$$\frac {\partial g} {\partial p} = z$$

znamy już wartości z I p z przejścia do przodu. Stąd otrzymujemy−

$$\frac {\partial g} {\partial z} = p = 4$$

i

$$ \ frac {\partial g} {\partial p} = z = -3$$

chcemy obliczyć gradienty w X i y−

$$\frac {\partial g} {\partial x},\frac {\partial g} {\partial y}$$

jednak chcemy to zrobić efektywnie (chociaż x i g są tylko dwa skoki od siebie na tym wykresie, wyobraź sobie, że są naprawdę daleko od siebie). Aby efektywnie obliczyć te wartości, użyjemy łańcuchowej reguły różnicowania. Z reguły łańcuchowej mamy−

$$\frac {\partial g} {\partial x}= \ frac {\partial g} {\partial P} \ ast \frac {\partial p} {\partial x}$$

$$\frac {\partial g} {\partial y}=\frac{\partial g} {\partial p} \ast\frac{\partial p} {\partial y}$$

ale wiemy już, że dg / dp = -3, dp / dx i dp / dy są łatwe, ponieważ p zależy bezpośrednio od x i y. Mamy –

$$p = x + y\Rightarrow \frac {\partial x} {\partial p} = 1, \frac {\partial y} {\partial p} = 1$$

stąd otrzymujemy−

$$\frac {\partial g} {\partial f} = \ frac {\partial g} {\partial P} \ ast \frac {\partial p} {\partial x} = \ left (-3 \right).1 = -3$$

dodatkowo dla wejścia y−

$$\frac {\partial g} {\partial y} = \ frac {\partial g} {\partial P} \ ast \frac {\partial p} {\partial y} = \ left (-3 \right).1 = -3$$

głównym powodem zrobienia tego wstecz jest to, że kiedy musieliśmy obliczyć gradient w X, użyliśmy tylko już obliczonych wartości i dq / dx (pochodna wyjścia węzła w odniesieniu do tego samego wejścia węzła). Użyliśmy lokalnych informacji do obliczenia globalnej wartości.

kroki treningu sieci neuronowej

wykonaj następujące kroki, aby trenować sieć neuronową−

  • dla punktu danych x w zbiorze danych wykonujemy przekazanie do przodu Z X jako wejściem i obliczamy koszt c jako wyjście.

  • przechodzimy wstecz zaczynając od c i obliczamy gradienty dla wszystkich węzłów na wykresie. Obejmuje to węzły, które reprezentują wagi sieci neuronowej.

  • następnie aktualizujemy wagi, wykonując gradienty W = w-learning rate *.

  • powtarzamy ten proces aż do spełnienia kryteriów stop.

ogłoszenia

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.