Sieci neuronowe: struktura

Aby przekonać się, jak sieci neuronowe mogą pomóc w rozwiązaniu problemów nieliniowych, zacznijmy przedstawiając model liniowy w postaci wykresu:

Trzy niebieskie okręgi w rzędzie połączone strzałkami z zielonym okręgiem nad nimi

Rysunek 3. Model liniowy w postaci wykresu.

Każde niebieskie kółko reprezentuje obiekt wejściowy, a zielone kółko – ważoną sumę danych wejściowych.

Jak możemy zmienić ten model, aby poprawić jego zdolność do obsługi reklam nieliniowych problemy?

Ukryte warstwy

W modelu reprezentowanym przez poniższy wykres dodaliśmy „warstwę ukrytą”, wartości pośrednich. Każdy żółty węzeł w ukrytej warstwie to ważona suma niebieskich wartości węzłów wejściowych. Wynikiem jest ważona suma wartości żółtych węzłów.

3 niebieskie okręgi w wierszu z etykietami

Rysunek 4. Wykres modelu dwuwarstwowego.

Czy to jest model liniowy? Tak – wynik jest nadal liniową kombinacją i danych wejściowych.

W modelu reprezentowanym na poniższym wykresie dodaliśmy drugi ukryty element sumy ważonych.

3 niebieskie okręgi w wierszu z etykietami

Rysunek 5. Wykres trójwarstwowy.

Czy to nadal model liniowy? Tak. Gdy wyrazisz dane wyjściowe w formie funkcji danych wejściowych i uprość, otrzymasz tylko kolejną ważoną sumę dane wejściowe. Ta suma nie pozwoli skutecznie modelować problemu nieliniowego na rys. 2.

Funkcje aktywujące

Aby modelować problem nieliniowy, możemy bezpośrednio wprowadzić model nieliniowy. Możemy umieść pionową kreskę każdego węzła ukrytej warstwy przez funkcję nieliniową.

W modelu reprezentowanym na wykresie poniżej wartość każdego węzła w Ukryta warstwa 1 jest przekształcana przez funkcję nieliniową przed przekazaniem ważone sumy następnej warstwy. Ta funkcja nieliniowa to funkcja funkcji aktywacji.

Taki sam jak poprzedni rysunek, z tym że wiersz różowych okręgów o nazwie „Warstwa przekształcenia nieliniowego” między 2 ukrytymi warstwami została dodana.

Rysunek 6. Wykres trójwarstwowy z funkcją aktywacji.

Po dodaniu funkcji aktywacji dodawanie warstw ma większy wpływ na skuteczność. Nakładanie warstw nieliniowych pozwala nam tworzyć bardzo złożone modele zależności między danymi wejściowymi a prognozowanymi danymi wyjściowymi. Krótko mówiąc, każdy warstwa efektywnie „uczy się” bardziej złożonej funkcji wyższego poziomu nieprzetworzonych danych wejściowych. Jeśli chcesz dowiedzieć się więcej o tym, jak to działa, zobacz Świetny post Chrisa Olaha

Typowe funkcje aktywujące

Poniższa funkcja aktywacji sigmoidalnej konwertuje sumę ważoną na wartość od 0 do 1.

$$F(x)=\frac{1} {1+e^{-x}}$$

Oto fabuła:

Funkcja sigmoid

Rysunek 7. Funkcja aktywacji sigmoid.

Poniższa funkcja aktywująca wyprostowaną jednostkę liniową (lub ReLU w przypadku krótka) często działa trochę lepiej niż funkcja gładka, taka jak sigmoida, a jednocześnie jest znacznie łatwiejszy do obliczenia.

$$F(x)=max(0,x)$$

Wyższość ReLU opiera się na empirycznych ustaleniach, prawdopodobnie napędzanych przez ReLU ma bardziej przydatny zakres reagowania. Reakcja sigmoida spada stosunkowo szybko z obu stron.

Funkcja aktywacji ReLU

Rysunek 8. Funkcja aktywacji ReLU.

W rzeczywistości każda funkcja matematyczna może służyć jako funkcja aktywująca. Załóżmy, że \(\sigma\) reprezentuje naszą funkcję aktywacji (Relu, Sigmoid itp.). W związku z tym wartość węzła w sieci jest określana w następujący sposób wzór:

$$\sigma(\boldsymbol w \cdot \boldsymbol x+b)$$

Podsumowanie

Nasz model zawiera teraz wszystkie standardowe komponenty tego, co ludzie zwykle w kontekście „sieci neuronowej”:

  • Zbiór węzłów analogicznych do neuronów i ułożonych w warstwy.
  • Zbiór wag reprezentujących połączenia między każdą siecią neuronowa i warstwy pod nią. Warstwa poniżej może być warstwa sieci neuronowej czy inny rodzaj warstwy.
  • Zbiór odchylenia, po jednym dla każdego węzła.
  • Funkcja aktywacji, która przekształca dane wyjściowe każdego węzła w warstwie. Różne warstwy mogą mieć różne funkcje aktywacji.

Uwaga: sieci neuronowe nie zawsze są lepsze od ale sieci neuronowe oferują elastyczną alternatywę, dobrze w wielu przypadkach.