Plan Szkolenia
Część 1 – Koncepcje Głębokiego Uczenia i DNN
Wprowadzenie do AI, uczenia maszynowego i głębokiego uczenia
- Historia, podstawowe koncepcje i typowe zastosowania sztucznej inteligencji poza fantazjami towarzyszącymi tej dziedzinie
- Inteligencja zbiorowa: agregacja wiedzy dzielonej przez wiele wirtualnych agentów
- Algorytmy genetyczne: ewolucja populacji wirtualnych agentów poprzez selekcję
- Typowe maszyny uczące: definicja.
- Rodzaje zadań: nadzorowane uczenie, nienadzorowane uczenie, uczenie przez wzmacnianie
- Rodzaje akcji: klasyfikacja, regresja, grupowanie, estymacja gęstości, redukcja wymiarowości
- Przykłady algorytmów uczenia maszynowego: liniowa regresja, naiwny Bayes, losowy drzewo
- Uczenie maszynowe VS Głębokie Uczenie: problemy, przy których uczenie maszynowe nadal jest today stanem sztuki (losowe lasy i XGBoost)
Podstawowe koncepcje sieci neuronowej (Zastosowanie: perceptron wielowarstwowy)
- Przypomnienie podstaw matematycznych.
- Definicja sieci neuronowej: klasyczna architektura, aktywacja i
- Wagi poprzednich aktywacji, głębokość sieci
- Definicja uczenia sieci neuronowej: funkcje kosztu, propagacja wsteczna, stochastyczny spadek gradientu, maksymalizacja wiarygodności.
- Modelowanie sieci neuronowej: modelowanie danych wejściowych i wyjściowych zgodnie z rodzajem problemu (regresja, klasyfikacja...). Klątwa wymiarowości.
- Różnica między wielowymiarowymi danymi a sygnałami. Wybór funkcji kosztu zgodnie z danymi.
- Aproksymacja funkcji przez sieć neuronową: prezentacja i przykłady
- Aproksymacja rozkładu przez sieć neuronową: prezentacja i przykłady
- Wzbogacanie danych: jak zbilansować zestaw danych
- Ogólne wyniki sieci neuronowej.
- Inicjalizacja i regularyzacja sieci neuronowej: L1/L2 regularyzacja, normalizacja wsadowa
- Algorytmy optymalizacji i zbieżności
Standardowe narzędzia ML/DL
Prosta prezentacja z przewagami, wadami, pozycją w ekosystemie i zastosowaniem jest planowana.
- Narzędzia do zarządzania danymi: Apache Spark, Apache Hadoop Tools
- Uczenie maszynowe: Numpy, Scipy, Sci-kit
- Wysokopoziomowe ramy DL: PyTorch, Keras, Lasagne
- Niższo-poziomowe ramy DL: Theano, Torch, Caffe, TensorFlow
Sieci neuronowe konwolucyjne (CNN).
- Prezentacja CNN: podstawowe zasady i zastosowania
- Podstawowa operacja CNN: warstwa konwolucyjna, użycie jądra,
- Padding & stride, generowanie map cech, warstwy pooling. Rozszerzenia 1D, 2D i 3D.
- Prezentacja różnych architektur CNN, które przyniosły stan sztuki w klasyfikacji
- Obrazy: LeNet, sieci VGG, Network in Network, Inception, Resnet. Prezentacja innowacji wprowadzonych przez każdą architekturę i ich bardziej ogólnych zastosowań (konwolucja 1x1 lub połączenia resztowe)
- Użycie modelu uwagi.
- Zastosowanie do typowego przypadku klasyfikacji (tekst lub obraz)
- CNN dla generowania: super-rozdzielczość, segmentacja piksel-to-pixel. Prezentacja
- Głównych strategii zwiększania map cech w celu generowania obrazów.
Rekurencyjne sieci neuronowe (RNN).
- Prezentacja RNN: podstawowe zasady i zastosowania.
- Podstawowa operacja RNN: ukryta aktywacja, propagacja wsteczna przez czas, rozłożona wersja.
- Ewolucje w kierunku jednostek rekurencyjnych z bramkami (GRUs) i LSTM (Long Short Term Memory).
- Prezentacja różnych stanów i ewolucji przyniesionej przez te architektury
- Problemy zbieżności i zanikającego gradientu
- Klasyczne architektury: przewidywanie serii czasowej, klasyfikacja...
- Architektura typu RNN Encoder-Decoder. Użycie modelu uwagi.
- Zastosowania w NLP: kodowanie słów/znaków, tłumaczenie.
- Aplikacje wideo: przewidywanie kolejnego generowanego obrazu sekwencji video.
Modele generacyjne: Warstwowy AutoEncoder (VAE) i Generatywna Sieć Wroga (GAN).
- Prezentacja modeli generacyjnych, powiązanie z CNN
- Auto-encoder: redukcja wymiarowości i ograniczone generowanie
- Warstwowy Auto-encoder: model generacyjny i aproksymacja rozkładu danego. Definicja i zastosowanie przestrzeni ukrytej. Trik reparametryzacji. Zastosowania i obserwowane ograniczenia
- Generatywne Sieci Wrogie: podstawy.
- Architektura sieci dwuczłonowej (Generator i dyskryminator) z alternatywnym uczeniem, dostępne funkcje kosztu.
- Zbieżność GAN i trudności napotykane.
- Poprawiona zbieżność: Wasserstein GAN, Began. Odległość przemieszczania ziemi.
- Zastosowania do generowania obrazów lub zdjęć, generacji tekstu, super-rozdzielczości.
Głębokie uczenie przez wzmacnianie.
- Prezentacja uczenia przez wzmacnianie: kontrola agenta w zdefiniowanym środowisku
- Przez stan i możliwe działania
- Użycie sieci neuronowej do aproksymacji funkcji stanu
- Głębokie Q Learning: powtórzenie doświadczenia, i zastosowanie do kontroli gry wideo.
- Optymalizacja polityki uczenia. On-policy && off-policy. Architektura aktora-krytyka. A3C.
- Zastosowania: kontrola pojedynczej gry wideo lub systemu cyfrowego.
Część 2 – Theano dla Głębokiego Uczenia
Podstawy Theano
- Wprowadzenie
- Instalacja i konfiguracja
TheanoFunctions
- wejścia, wyjścia, aktualizacje, givens
Trening i optymalizacja sieci neuronowej za pomocą Theano
- Modelowanie sieci neuronowej
- Regresja logistyczna
- Ukryte warstwy
- Trening sieci
- Obliczenia i klasyfikacja
- Optymalizacja
- Log Loss
Testowanie modelu
Część 3 – DNN przy użyciu TensorFlow
Podstawy TensorFlow
- Tworzenie, inicjalizacja, zapisywanie i przywracanie zmiennych TensorFlow
- Karmienie, czytanie i wczytywanie 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 zastępcze wartości
-
Budowanie Grafów
- Wnioskowanie
- Koszt
- Trening
-
Trenowanie modelu
- Graf
- Sesja
- Pętla treningowa
-
Ocena modelu
- Budowanie Grafu oceny
- Wynik oceny
Perceptron
- Funkcje aktywacji
- Algorytm uczenia perceptronu
- Klasyfikacja binarna za pomocą perceptronu
- Klasyfikacja dokumentów za pomocą perceptronu
- Ograniczenia perceptronu
Od Perceptronu do Maszyn Wektorów Wsparcia (SVM)
- Jednomiany i trik jednomianowy
- Klasyfikacja o maksymalnej marginesie i wektory wsparcia
Sztuczne sieci neuronowe
- Nieliniowe granice decyzyjne
- Sieci neuronowe feedforward i feedback
- Perceptrony wielowarstwowe
- Minimalizacja funkcji kosztu
- Propagacja w przód
- Propagacja wsteczna
- Poprawa sposobu uczenia sieci neuronowych
Sieci neuronowe konwolucyjne (CNN)
- Cele
- Architektura modelu
- Zasady
- Organizacja kodu
- Uruchamianie i trening modelu
- Ocena modelu
Podstawowe wprowadzenia do poniższych modułów (Krótkie wprowadzenie na podstawie dostępności czasu):
TensorFlow - zaawansowane zastosowania
- Wątki i kolejki
- Rozproszone TensorFlow
- Pisanie dokumentacji i udostępnianie modelu
- Dostosowywanie czytników danych
- Manipulowanie plikami modeli TensorFlow
Servowanie TensorFlow
- Wprowadzenie
- Podstawowy tutorial servowania
- Zaawansowany tutorial servowania
- Tutorial servowania modelu Inception
Wymagania
Wiedza z dziedziny fizyki, matematyki i programowania. Zaangażowanie w przetwarzanie obrazów.
Uczestnicy powinni mieć wcześniejsze zrozumienie koncepcji uczenia maszynowego i doświadczenie w programowaniu Pythona oraz bibliotekach.
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.