Page 45 - Control Engineering Polska I kw. 2023
P. 45
cji – ogranicznik2. Najpopularniejszym ogranicznikiem jest funkcja sigmoidalna S(x), ponieważ można ją stosunkowo prosto zróżniczkować:
S(x) = 1 / (1 + e-x)
Podobne węzły wykorzystywane są w warstwie wyjścio- wej, tyle że ich sygnały wejściowe pochodzą z węzłów warstwy ukrytej.
Prawidłowe wartości współczynników wagi decydują o sile przewidywań, tj. precyzji, z jaką zbiór wejściowy zostanie przekształcony w zbiór wyjściowy. Na rysunku 2 przedstawio- no typowe mapowanie zbiorów: wejściowy → wyjściowy (po lewej stronie) oraz sposób, w jaki sieć ANN może przybliżyć takie mapowanie za pomocą funkcji liniowej y = W x + b (po prawej stronie). Odpowiednie mapowanie można znaleźć nawet bez zastosowania biasu (przesunięcia, o setu), jednak ogólnie dodanie tego przesunięcia powinno dać lepsze przy- bliżenie. Dodanie większej liczby warstw ukrytych umożliwia nawet mapowanie nieliniowe.
Proces dokładnego dostrajania3 współczynników wagi z węzłów warstwy wejściowej i ukrytej jest nazywany treno- waniem sieci neuronowej. Każda iteracja procesu trenowania składa się z następujących kroków:
• Obliczenie przewidywanego wyjścia ŷ, proces określany jako „feedforward” (sprzężenie wyprzedzające).
• Aktualizacja współczynników wagowych, proces okre- ślany jako „backpropagation” (propagacja wsteczna). Wyjście ŷ dla prostej 2-warstwowej sieci neuronowej ob-
licza się jako:
ŷ = β(W2β(W1x + b1) + b2)
Przewidywane wyjście ŷ będzie naturalnie różnić się od pożądanego wyjścia y, przynajmniej na początku procesu treningu. Jak duża jest ta różnica, mówi nam funkcja straty. Istnieje wiele dostępnych funkcji straty, jednak prosta suma kwadratów błędów, gdzie y jest pożądanym wyjściem, będzie dobrą taką funkcją.
Naszym celem trenowania sieci neuronowej jest znale- zienie najlepszego zbioru wag, który minimalizuje funkcję
1 arti cial neural networks; ANN
2 ang. limiter
3 ang. ne-tuning
Rys. 2: Mapowanie wejścia-wyjścia sieci neuronowej. Źródło: Peter Galan, emerytowany inżynier oprogramowania systemów sterowania
straty. Matematycznie rzecz biorąc, musimy znaleźć ekstre- mum funkcji straty (w naszym przypadku minimum). Taka funkcja straty nie zależy tylko od jednej zmiennej (x). Może to być funkcja wielowymiarowa, której wykres posiada złożony kształt z wieloma lokalnymi minimami. Naszym celem jest znalezienie globalnego minimum funkcji straty.
Znajdźmy pierwszą pochodną funkcji sumy kwadratów błędów, ∂Loss(y,ŷ)/∂W. Niestety, nasza funkcja straty nie za- leży bezpośrednio od współczynników wagi, musimy więc zastosować następującą regułę łańcuchową do obliczenia jej pochodnej:
gdzie U = (Wx + b)
Obliczenie pierwszej pochodnej cząstkowej daje wynik: 2(y-ŷ)
Obliczenie drugiej pochodnej cząstkowej daje wynik: β' A ostatnia pochodna cząstkowa to po prostu: x
Na końcu otrzymamy: ∂Loss(y,ŷ)/∂W = 2(y - ŷ)* β' * x
i to właśnie będziemy musieli zaimplementować, jako proces propagacji wstecznej. Zaletą użycia funkcji sigmoidalnej jest prosta implementacja jej pochodnej, β’:
β'(u) = β(u)(1 - β(u))
Powyższy wzór opisuje sposób postępowania:
Uruchamiamy proces propagacji wstecznej od wyjścia sie- ci neuronowej do warstwy ukrytej, która leży przed warstwą wyjściową i która jest połączona z warstwą wyjściową poprzez wagi W2. Ten sam proces musi być zastosowany ponownie od warstwy ukrytej do warstwy wejściowej, która jest połączona z warstwą ukrytą za pomocą wag W1. Pierwszy człon łańcucha w pochodnej funkcji straty w warstwie ukrytej, ∂Loss(h,ĥ)/∂ĥ będzie musiał być obliczony inaczej, ponieważ nie znamy jed- noznacznie pożądanych wartości warstwy ukrytej h. Będzie- my musieli obliczyć je z wartości wyjściowych.
Peter Galan jest emerytowanym inżynierem oprogramowania systemów sterowania.
CONTROL ENGINEERING POLSKA – www.controlengineering.pl
I kwartał 2023 43