Plan Szkolenia
Część 1 – Uczenie głębokie i koncepcje DNN
Wprowadzenie do AI, uczenia maszynowego i uczenia głębokiego
- Historia, podstawowe pojęcia i typowe zastosowania sztucznej inteligencji z dala od fantazji, którymi ta dziedzina bywa otaczana
- Inteligencja zbiorowa: agregowanie wiedzy współdzielonej przez wielu wirtualnych agentów
- Algorytmy genetyczne: ewolucja populacji wirtualnych agentów poprzez selekcję
- Typowe uczenie maszynowe: definicja.
- Typy zadań: uczenie nadzorowane, uczenie nienadzorowane, uczenie ze wzmocnieniem
- Typy działań: klasyfikacja, regresja, grupowanie, estymacja gęstości, redukcja wymiarowości
- Przykłady algorytmów uczenia maszynowego: regresja liniowa, naiwny klasyfikator bayesowski, las losowy
- Uczenie maszynowe a uczenie głębokie: problemy, w których uczenie maszynowe pozostaje dziś stanem wiedzy (las losowy i XGBoost)
Podstawowe pojęcia sieci neuronowej (zastosowanie: perceptron wielowarstwowy)
- Przypomnienie podstaw matematycznych.
- Definicja sieci neuronów: klasyczna architektura, aktywacja oraz
- Ważenie wcześniejszych aktywacji, głębokość sieci
- Definicja uczenia sieci neuronów: funkcje kosztu, propagacja wsteczna, stochastyczny spadek wzdłuż gradientu, największa wiarygodność.
- Modelowanie sieci neuronowej: modelowanie danych wejściowych i wyjściowych zgodnie z typem problemu (regresja, klasyfikacja...). Przekleństwo wymiarowości.
- Rozróżnienie między danymi o wielu cechach a sygnałem. Wybór funkcji kosztu w zależności od danych.
- Aproksymacja funkcji przez sieć neuronów: omówienie i przykłady
- Aproksymacja rozkładu przez sieć neuronów: omówienie i przykłady
- Augmentacja danych: jak zrównoważyć zbiór danych
- Generalizacja wyników sieci neuronów.
- Inicjalizacja i regularyzacja sieci neuronowej: regularyzacja L1 / L2, normalizacja wsadowa
- Algorytmy optymalizacji i zbieżności
Standardowe narzędzia ML / DL
Planowana jest prosta prezentacja zalet, wad, pozycji w ekosystemie i zastosowania.
- Narzędzia do zarządzania danymi: Apache Spark, narzędzia Apache Hadoop
- Uczenie maszynowe: Numpy, Scipy, Sci-kit
- Wysokopoziomowe frameworki DL: PyTorch, Keras, Lasagne
- Niskopoziomowe frameworki DL: Theano, Torch, Caffe, Tensorflow
Splotowe sieci neuronowe (CNN).
- Omówienie CNN: podstawowe zasady i zastosowania
- Podstawowe działanie CNN: warstwa splotowa, użycie jądra,
- Dopełnienie i krok, generowanie map cech, warstwy łączenia. Rozszerzenia 1D, 2D i 3D.
- Omówienie różnych architektur CNN, które wyznaczyły stan wiedzy w klasyfikacji
- Obrazy: LeNet, sieci VGG, Network in Network, Inception, Resnet. Omówienie innowacji wprowadzonych przez każdą architekturę i ich bardziej globalnych zastosowań (splot 1x1 lub połączenia resztowe)
- Użycie modelu uwagi.
- Zastosowanie do typowego przypadku klasyfikacji (tekstu lub obrazu)
- CNN do generowania: superrozdzielczość, segmentacja piksel po pikselu. Omówienie
- Głównych strategii zwiększania map cech na potrzeby generowania obrazów.
Rekurencyjne sieci neuronowe (RNN).
- Omówienie RNN: podstawowe zasady i zastosowania.
- Podstawowe działanie RNN: ukryta aktywacja, propagacja wsteczna w czasie, wersja rozwinięta.
- Ewolucja w kierunku bramkowanych jednostek rekurencyjnych (GRU) i LSTM (długa pamięć krótkoterminowa).
- Omówienie różnych stanów i ulepszeń wprowadzonych przez te architektury
- Problemy zbieżności i zanikającego gradientu
- Klasyczne architektury: przewidywanie szeregu czasowego, klasyfikacja...
- Architektura RNN typu koder-dekoder. Użycie modelu uwagi.
- Zastosowania NLP: kodowanie słów / znaków, tłumaczenie.
- Zastosowania wideo: przewidywanie następnego wygenerowanego obrazu sekwencji wideo.
Modele generatywne: wariacyjny autoenkoder (VAE) i generatywne sieci przeciwstawne (GAN).
- Omówienie modeli generatywnych, powiązanie z CNN
- Autoenkoder: redukcja wymiarowości i ograniczone generowanie
- Wariacyjny autoenkoder: model generatywny i aproksymacja rozkładu danej. Definicja i wykorzystanie przestrzeni ukrytej. Sztuczka reparametryzacji. Zastosowania i zaobserwowane ograniczenia
- Generatywne sieci przeciwstawne: podstawy.
- Architektura podwójnej sieci (generator i dyskryminator) z naprzemiennym uczeniem, dostępne funkcje kosztu.
- Zbieżność GAN i napotykane trudności.
- Poprawa zbieżności: Wasserstein GAN, Began. Odległość Earth Mover.
- Zastosowania do generowania obrazów lub fotografii, generowania tekstu, superrozdzielczości.
Głębokie uczenie ze wzmocnieniem.
- Omówienie uczenia ze wzmocnieniem: sterowanie agentem w zdefiniowanym środowisku
- Opisanym przez stan i możliwe działania
- Użycie sieci neuronowej do aproksymacji funkcji stanu
- Głębokie Q-learning: powtórka doświadczeń i zastosowanie do sterowania grą wideo.
- Optymalizacja polityki uczenia. On-policy i off-policy. Architektura aktor-krytyk. A3C.
- Zastosowania: sterowanie pojedynczą grą wideo lub systemem cyfrowym.
Część 2 – Theano w uczeniu głębokim
Podstawy Theano
- Wprowadzenie
- Instalacja i konfiguracja
Funkcje Theano
- wejścia, wyjścia, aktualizacje, dane przekazane (givens)
Trenowanie i optymalizacja sieci neuronowej z użyciem Theano
- Modelowanie sieci neuronowej
- Regresja logistyczna
- Warstwy ukryte
- Trenowanie sieci
- Obliczenia i klasyfikacja
- Optymalizacja
- Strata logarytmiczna
Testowanie modelu
Część 3 – DNN z użyciem TensorFlow
Podstawy TensorFlow
- Tworzenie, inicjalizacja, zapisywanie i przywracanie zmiennych TensorFlow
- Podawanie, odczytywanie i wstępne ładowanie danych TensorFlow
- Jak używać infrastruktury TensorFlow do trenowania modeli na dużą skalę
- Wizualizacja i ocena modeli za pomocą TensorBoard
Mechanika TensorFlow
- Przygotowanie danych
- Pobieranie
- Wejścia i symbole zastępcze (placeholdery)
-
Budowanie grafów
- Wnioskowanie
- Strata
- Trenowanie
-
Trenowanie modelu
- Graf
- Sesja
- Pętla trenowania
-
Ocena modelu
- Budowanie grafu oceny
- Wynik oceny
Perceptron
- Funkcje aktywacji
- Algorytm uczenia perceptronu
- Klasyfikacja binarna z użyciem perceptronu
- Klasyfikacja dokumentów z użyciem perceptronu
- Ograniczenia perceptronu
Od perceptronu do maszyn wektorów nośnych
- Jądra i sztuczka jądrowa
- Klasyfikacja z maksymalnym marginesem i wektory nośne
Sztuczne sieci neuronowe
- Nieliniowe granice decyzyjne
- Sztuczne sieci neuronowe jednokierunkowe i rekurencyjne
- Perceptrony wielowarstwowe
- Minimalizacja funkcji kosztu
- Propagacja w przód
- Propagacja wsteczna
- Poprawa sposobu uczenia się sieci neuronowych
Splotowe sieci neuronowe
- Cele
- Architektura modelu
- Zasady
- Organizacja kodu
- Uruchamianie i trenowanie modelu
- Ocena modelu
Podstawowe wprowadzenia do poniższych modułów (krótkie wprowadzenie w zależności od dostępnego czasu):
TensorFlow – zaawansowane zastosowania
- Wątki i kolejki
- Rozproszony TensorFlow
- Pisanie dokumentacji i udostępnianie modelu
- Dostosowywanie czytników danych
- Manipulowanie plikami modeli TensorFlow
TensorFlow Serving
- Wprowadzenie
- Podstawowy samouczek serwowania
- Zaawansowany samouczek serwowania
- Samouczek serwowania modelu Inception
Wymagania
Wymagana jest znajomość fizyki, matematyki i programowania oraz doświadczenie w przetwarzaniu obrazów.
Uczestnicy powinni wcześniej rozumieć koncepcje uczenia maszynowego oraz mieć doświadczenie w programowaniu w Pythonie i pracy z bibliotekami.
Opinie uczestników (4)
Tematyka DL nie jest mi obca, udało się poznac kilka optymalizacyjnych smaczków.
Marcin Stasko - LG Energy Solution Wroclaw Sp. z o.o.
Szkolenie - Understanding Deep Neural Networks
Wiedza merytoryczna, zaangażowanie, pasjonujący sposób przekazywania wiedzy. Przykłady praktyczne po wykładzie teoretycznym.
Janusz Chrobot - ING Bank Slaski S.A.; Kamil Kurek Programowanie
Szkolenie - Understanding Deep Neural Networks
ćwiczenia i przykłady na nich realizowane
Pawel Orzechowski - ING Bank Slaski S.A.; Kamil Kurek Programowanie
Szkolenie - Understanding Deep Neural Networks
Duża wiedza teoretyczna i praktyczna prowadzących. Komunikatywność prowadzących. W trakcie kursu można było zadawać pytania i uzyskać satysfakcjonujące odpowiedzi.