Model, który służy rozwiązaniu wyzwań, gdy przestrzeń wejściowa wymaga obróbki na poziomie
abstrakcji nieliniowej poprzez warstwowe układy komórek ukrytych.
Warstwy Ukryte (Hidden Layers)
W architekturze stosujemy zestaw ukrytych reprezentacji połączonych
gęsto z ujęciami badawczymi, powalając komórkom przekazywać macierze na głębsze partie i
przetwarzać je operacjami matematycznymi pod rozpoznawanie form złożonych we wzorcach.
💡 Po ludzku: Jedna linia decyzyjna często nie radzi sobie
z zawikłanymi zadaniami. Instalujemy setki linii, ułożonych za sobą jak w
labiryncie. Jedna część szuka ogólnych plam koloru na zdjęciu psa, następna składa
te plamy w nos, a ostania krzyczy "TO PIES!". To właśnie rewolucja Głębokiego
Uczenia (Deep Learning).
Wsteczna Propagacja Błędu (Backpropagation)
Metoda wykorzystująca gradientowe wędrowanie za pomocą rachunku
różniczkowego by poinformować i uregulować tysiące wewnętrznych obwodów wag sieci,
wysyłając im powrotną sygnaturę uchybienia od strony predykcyjnej.
💡 Po ludzku: Sieć głęboka podejmuje na samym końcu
decyzję, po czym orientuje się, że popełniła karygodny błąd. Fala niezadowolenia
cofa się pod prąd kablami do samego początku, strofując poszczególne obwody, karząc
im nieco skorygować wagi. Z każdym takim wybuchem wstecznego żalu sieć uczy się
idealnego zestrojenia wszystkich pętli jednocześnie.
Wejście
Wyjście
Diagram ideowy propagacji danych pomiędzy złożonym algorytmem węzłów
ukrytych w kolejnych gałęziach głębokiej sieci neuronowej.
Implementacja Modelów (TensorFlow & Keras)
Skonstruowanie zoptymalizowanych matematycznie wektorów w bazowym języku Python byłoby zbyt
obciążające zjawiskowo.
import tensorflow as tf import keras
Wydajność operacyjna: TensorFlow jest ryczącym, silnikiem
operacyjnym napisanym w C++ pod procesy liczące GPU. Posiada moduły analityczne
automatycznych pochodnych cząstkowych. Z warstwy wysokopoziomowej wywołuje się to pod
nazwą API `Keras`.
💡 Po ludzku: Podstawowy kod wyłożyłby procesor komputera
w minutę przy takiej ilości działań. Pobieramy bezkompromisowe narzędzia od Google
stworzone specjalnie dla inżynierów. Pracują one niesamowicie szybko w tle, a dla
nas zostawiają ładny i przejrzysty panel dowodzenia (Keras), abyśmy nie musieli
operować bezpośrednio skomplikowanym rynsztunkiem obliczeniowym.
⚙️
+
💠
Silnik wysokowydajnościowego oprogramowania numerycznego TensorFlow
osadzony w estetyczne narzędzia warstw konstrukcyjnych Kerasa.
Główne Dziedziczenie: Użycie funkcji super-konstrukcyjnej
powołuje obiekty monitorujące operacje gradientowe w trakcie epok zachowując modelową
powłokę klas macierzystych Kerasa.
💡 Po ludzku: Mówimy programowi, że tworzymy nowy
inteligentny twór, który po cichu dziedziczy i zyskuje wszystkie supermoce wbudowane
oryginalnie w rdzeń analityczny systemu Keras, bez konieczności redefiniowania ich
ręcznie.
Ustanowienie warstw Gęstych: Matryce łączeniowe wymuszają
zjawisko gdzie każdy obiekt wyjściowy dociera odczytami do n-neuronów instancji. Na
węzłach narzucono tu aktywator ReLU obcinający przepływ wyników o mianowniku
ujemnym drastycznie obniżając zagęszczenie szumów w wektorze sygnałowym.
💡 Po ludzku: Tworzymy ścianę 64 sztucznych komórek
decyzyjnych. Warstwa "Gęsta" oznacza, że każda jedna komórka jest podłączona kablem
z absolutnie każdą informacją podaną na samym wejściu układu. Funkcja ReLU natomiast
zachowuje się jak bezpiecznik o określonym kształcie przepuszczający dalej wyłącznie
sygnał pozytywny, odcinając zera i wartości minusowe bez litości.
Rozdzielnia Gęsta (Dense). Węzły transmitują ułamki zmiennych z wejścia do
każdego dostępnego podmiotu neuronowego szukając wzorców powiązanych.
📈
Porównanie Funkcji Aktywacji
Wybierz funkcję z listy, aby zobaczyć, jak
przekształca sygnał wejściowy (Z) na wyjście (A).
Funkcja szans klasyfikacji (Softmax)
Etap końcowego przejścia ukrytych surowych statystyk aktywacyjnych warstw głębokich na format
czytelnej, sumarycznej proporcji decyzyjnej.
Warstwa wylotowa opiera na narzuconej liczbie instancji węzłowych
odpowiadających gatunkom referencyjnym w zbiorze (np. 3 klasy). Rozkład pewności
uzyskany z matematycznej asercji ułamkowej potęgowany jest filtrem krzywej euklidesowej
w funkcji agregującej szanse na wektor dystrybuowany w proporcji % i rzędnych szans.
💡 Po ludzku: Sieć podaje surowe, zupełnie nieczytelne dla
człowieka liczby siłowe dla poszczególnych klasyfikacji i wrzuca je do tego filtra.
Softmax miażdży je sprawnie i wypycha pod postacią ułamków prawdopodobieństw,
idealnie układających się do sumy wynoszącej 1 (100 procent ufności rozdzielone na
warianty wyniku, zależnie od siły nacisku).
Val: 12.5Val: -3.2Val: 0.1
➔ Filtry e^z (Softmax) ➔
96.2%0.2%3.6%
Bezrozmiarowe wygięte parametry wewnętrzne przekształcone w rozkład
predykcyjnych udziałów i szans decyzyjnych pewności modelu.
Przygotowanie mechaniczne (Compile, Adam, Loss)
Załadowanie bibliotek pod testowanie rzędne modelu przed implementacją wektorów w samej pętli
epokowej.
Optymalizator Adam: Zstępowanie w elastyczny, adaptacyjny cykl
gradientowy pozbawiony rygorystycznie wymuszonej sztywnej modyfikacji (LR).
Optymalizator opiera wędrówkę na badaniach pędów różniczkowych z pochodnych w terenie by
unikać ominięcia rzędów dolin na wykresach minimalizacji.
Krzyżowa Entropia
Błędu: Obliczenie obiektywnych rzędnych skoków po ułamkach algorytmu klas
decyzyjnych w zestawieniu wariancyjnym y (Crossentropy).
💡 Po ludzku: Zakładamy naszej architekturze wirtualny pas
startowy. Adam to wyjątkowo nowoczesny silnik nawigacyjny dla wag uczącej się sieci,
który sam przyspiesza kroki, jeśli widzi wielką dolinę w dół i subtelnie zwalnia na
wąskich krawędziach spadku błędu. Parametr Loss to z kolei wielki bat pomiarowy
uderzający sieć podczas testu za każde, nawet milimetrowe zawahanie procentowe po
wyjściu z Softmaxa względem poprawnej diagnozy.
Zasady Preprocessingu (StandardScaler)
Ustalenie norm wymiarowych na wartościach, by uniknąć dominacji skoków ułamkowych jednej miary
pośród tablicy zestawu.
Dostosowanie odchyleń wielowymiarowych wartości u wlotu na
ustandaryzowaną macierz bliską marginesom wyzerowania. Wysokie nominalnie sygnały mogą
zakłócać odbiory wag wejściowych pożerając ważniejsze odniesienia statystyczne u
mniejszych liczb odniesienia z mniejszej skali w innych kolumnach. Preprocessing
niweluje błędy proporcjonalności na starcie obróbki zestawów badawczych przed poddaniem
propagacji wektorowej.
💡 Po ludzku: Różne liczby w kolumnach sieją spustoszenie
w uczącym się mechanizmie wagi matematycznej, co jeśli mierzyliśmy jedne parametry
pacjenta w tonach a ciśnienie tętnicze w dziesiątkach? Narzędzie Scaler miażdży i
wygładza te gigantyczne wartości ekstremalne na małe poręczne ułamki z bezpiecznego
pudełka cyfrowego, ale robi to na tyle sprytnie, że nie zmienia ich naturalnych
proporcji czy powiązań między sobą. Sieci o wiele chętniej żują tak przygotowany
posiłek.
180
2
➔
0.3
-0.1
Ogromne wahania sygnałów matematycznie zostały ujarzmione do rzędu z
przedziału bezpiecznego odczytu utrzymując miarodajność.
Uruchamianie treningu (Funkcja fit)
Skonfigurowanie uwarunkowań na parametry badawcze wprawiając wielopoziomowy proces matematyczny w
rygor sprawdzania wag obwodowych.
history = model.fit( X_train,
y_train, epochs=100, batch_size=16,
validation_split=0.1, verbose=1)
history: Metoda API logująca statystyki wykresów z błędami do
tablic wyjściowych z każdą turą iteracji. epochs: Cykliczne procesowanie
całego zaplecza próbnego przez węzły badawcze po linii optymalizatorów dla ugruntowania
bazy reguł abstrakcji w obwodzie wstecznym. batch_size: Segmentowanie puli na
ujednolicone ułamki przed zmianą wag odcinając drgawki matematyczne uchybień z
pojedynczych wzorców (częstsza spójność). validation_split: Wycięty w locie
zapas z bazy próbnej służący monitorowaniu niezależnemu podczas procesu propagacji
obarczającego obwody aby niwelować groźne zjawiaka na wyjściach tablic.
💡 Po ludzku: Uruchamiamy młynek numeryczny. Oprócz
zlecenia ilości epok na naukę, ustalamy wielkość "paczek" (batch), w jakich
dokumentacja będzie wpychana na stół dla sieci do wglądu naraz, aby utrzymać
obiektywną rozpiętość opinii na błąd ogólny. Wycinamy też zapasowe ułamki danych z
dokumentacji odkładając je od razu na bok bez pozwolenia na wgląd i ściąganie
odpowiedzi, aby sprawdzić i oceniać szczerze czy na pewno rozumuje, zamiast uczyć
się odpowiedzi na test na pamięć u wskaźników procentowych dokładności.
Loss: 1.5Acc:
12%
Loss: 0.8Acc: 55%
Loss: 0.2Acc: 94%
Minimalizacja parametru strat Loss Entropy ukazuje postęp gradientowy i
wzrost wskaźnika accuracy podczas każdej epoki.
Weryfikacja wysokiej aktywacji (argmax)
Ujednolicenie wektorów do asercyjnej bazy klas u odczytów ze strumieni Softmax za pomocą
wyciągnięcia sztywnych cyfr argumentacji do raportowania z modelu końcowego dla operatora.
y_pred_probs = model.predict(X_test)
Żądanie ewaluacyjne, którego wynik obciążony jest wynikiem list
ułamkowych prawdopodobieństw rozdzielonych dla każdej z badanej referencji odrzutowo wg
rozłożenia dystrybucji z kerasa (Probability).
💡 Po ludzku: Pobieramy bezpośredni wynik szacunkowy z
modelu wyroczni na badany zbiór, przez co w dłoni ląduje potężna tablica wypchana
niejednoznacznymi ułamkami matematycznymi i procentami pod wariant z puli dla
badanej opcji.
y_pred = np.argmax(y_pred_probs,
axis=1)
Użycie operatora badawczego wektorowo na czytnik osiowy (axis=1)
powala zignorować niższe stany aktywacji macierzy by zapisać na twardo w asercji
przyporządkowany referencyjnie wycinek w rzędzie testu np [1] bez narzutów szumów po
filtrach.
💡 Po ludzku: Uruchamiamy prostego żniwiarza od zaufanej
biblioteki analitycznej, który przechodzi sprawnie palcem po tabelkach z dystrybucji
od lewej do prawej i bez oporów zachowuje indeks do pozycji absolutnego zwycięzcy
procentowego na dane pytanie, wyrzucając do rynsztoka ułamkowe pomyłki szumowe z
reszty pozycji po sąsiedzku aby wydać czytelny, finalny werdykt podsumowania
kategorycznego dla raportów wyjściowych.
Interaktywny Plac Zabaw (Zrozumienie Mechanizmów)
Praktyczna demonstracja obwodów Softmax oraz procesów decyzyjnych u osi klasyfikacyjnych. Sprawdź
asercyjne wartości ułamkowe predykcji manipulując wejściem zmiennej za pomocą narzędzi.
Wektor Softmax [
y_pred_probs ]
[0.01, 0.94, 0.05]
Zsumowane proporcje szans u
wariantów zawsze oscylują u pułapu stałego 1.0
↓ Wykorzystanie
filtru osiowego np.argmax(axis=1) do wskazania szczytu szans ↓