Plan Szkolenia
Część 1 – Głębokie uczenie i koncepcje DNN
Wprowadzenie do AI, uczenia maszynowego i głębokiego uczenia
- Historia, podstawowe koncepcje i typowe zastosowania sztucznej inteligencji poza fantazjami związanymi z tą dziedziną
- Inteligencja zbiorowa: agregowanie wiedzy udostępnianej przez wiele wirtualnych agentów
- Algorytmy genetyczne: ewolucja populacji wirtualnych agentów poprzez selekcję
- Typowe uczenie maszynowe: definicja.
- Rodzaje zadań: uczenie nadzorowane, nienadzorowane, uczenie ze wzmocnieniem
- Rodzaje działań: klasyfikacja, regresja, grupowanie, estymacja gęstości, redukcja wymiarowości
- Przykłady algorytmów uczenia maszynowego: regresja liniowa, Naive Bayes, Drzewo losowe
- Uczenie maszynowe VS głębokie uczenie: problemy, w których uczenie maszynowe pozostaje dziś stanem sztuki (Random Forests & XGBoosts)
Podstawowe koncepcje sieci neuronowej (Zastosowanie: wielowarstwowy perceptron)
- Przypomnienie podstaw matematycznych.
- Definicja sieci neuronowej: klasyczna architektura, aktywacja i
- Wagi poprzednich aktywacji, głębokość sieci
- Definicja uczenia sieci neuronowej: funkcje kosztu, wsteczna propagacja, stochastyczny spadek gradientu, maksymalna wiarygodność.
- Modelowanie sieci neuronowej: modelowanie danych wejściowych i wyjściowych w zależności od rodzaju problemu (regresja, klasyfikacja...). Klątwa wymiarowości.
- Rozróżnienie między danymi wielocechowymi a sygnałem. Wybór funkcji kosztu w zależności od danych.
- Aproksymacja funkcji przez sieć neuronową: prezentacja i przykłady
- Aproksymacja rozkładu przez sieć neuronową: prezentacja i przykłady
- Zwiększanie danych: jak zrównoważyć zbiór danych
- Generalizacja wyników sieci neuronowej.
- 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 z zaletami, wadami, pozycją w ekosystemie i zastosowaniem.
- 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
Konwolucyjne sieci neuronowe (CNN).
- Prezentacja CNN: podstawowe zasady i zastosowania
- Podstawowe działanie CNN: warstwa konwolucyjna, użycie jądra,
- Dopełnienie i krok, generowanie mapy cech, warstwy łączenia. Rozszerzenia 1D, 2D i 3D.
- Prezentacja różnych architektur CNN, które przyczyniły się do stanu sztuki w klasyfikacji
- Obrazy: LeNet, sieci VGG, Network in Network, Inception, Resnet. Prezentacja innowacji wprowadzonych przez każdą architekturę i ich bardziej globalnych zastosowań (Konwolucja 1x1 lub połączenia resztkowe)
- Użycie modelu uwagi.
- Zastosowanie do typowego przypadku klasyfikacji (tekst lub obraz)
- CNN do generowania: super-rozdzielczość, segmentacja piksel do piksela. Prezentacja
- Głównych strategii zwiększania map cech dla generowania obrazów.
Rekurencyjne sieci neuronowe (RNN).
- Prezentacja RNN: podstawowe zasady i zastosowania.
- Podstawowe działanie RNN: ukryta aktywacja, wsteczna propagacja w czasie, rozwinięta wersja.
- Ewolucja w kierunku jednostek z bramkami (GRUs) i LSTM (Long Short Term Memory).
- Prezentacja różnych stanów i ewolucji wprowadzonych przez te architektury
- Problemy zbieżności i zanikania gradientu
- Klasyczne architektury: Prognozowanie szeregów czasowych, klasyfikacja...
- Architektura typu RNN Encoder Decoder. Użycie modelu uwagi.
- Zastosowania w NLP: kodowanie słów / znaków, tłumaczenie.
- Zastosowania wideo: prognozowanie kolejnego wygenerowanego obrazu sekwencji wideo.
Modele generatywne: Variational AutoEncoder (VAE) i Generative Adversarial Networks (GAN).
- Prezentacja modeli generatywnych, powiązanie z CNN
- Autoenkoder: redukcja wymiarowości i ograniczone generowanie
- Variational Auto-encoder: model generatywny i aproksymacja rozkładu danych. Definicja i użycie przestrzeni latentnej. Trik reparametryzacji. Zastosowania i obserwowane ograniczenia
- Generative Adversarial Networks: Podstawy.
- Architektura podwójnej sieci (Generator i dyskryminator) z alternatywnym uczeniem, dostępne funkcje kosztu.
- Zbieżność GAN i napotkane trudności.
- Poprawa zbieżności: Wasserstein GAN, Began. Odległość przenoszenia Ziemi.
- Zastosowania do generowania obrazów lub fotografii, generowania tekstu, super-rozdzielczości.
Głębokie uczenie ze wzmocnieniem.
- Prezentacja uczenia ze wzmocnieniem: kontrola agenta w zdefiniowanym środowisku
- Poprzez stan i możliwe działania
- Użycie sieci neuronowej do aproksymacji funkcji stanu
- Deep Q Learning: powtarzanie doświadczeń i zastosowanie do kontroli gry wideo.
- Optymalizacja polityki uczenia. On-policy && off-policy. Architektura Actor critic. A3C.
- Zastosowania: kontrola pojedynczej gry wideo lub systemu cyfrowego.
Część 2 – Theano do głębokiego uczenia
Podstawy Theano
- Wprowadzenie
- Instalacja i konfiguracja
Funkcje Theano
- dane wejściowe, wyjściowe, aktualizacje, dane podane
Trenowanie i optymalizacja sieci neuronowej przy użyciu Theano
- Modelowanie sieci neuronowej
- Regresja logistyczna
- Warstwy ukryte
- Trenowanie sieci
- Obliczenia i klasyfikacja
- Optymalizacja
- Logarytmiczna strata
Testowanie modelu
Część 3 – DNN przy użyciu 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
- Dane wejściowe i placeholdery
-
Budowanie grafu
- Inferencja
- Strata
- Trenowanie
-
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 nośnych
- Jądra i trik z jądrem
- Klasyfikacja z maksymalnym marginesem i wektory nośne
Sztuczne sieci neuronowe
- Nieliniowe granice decyzyjne
- Sztuczne sieci neuronowe typu feedforward i feedback
- Wielowarstwowe perceptrony
- Minimalizacja funkcji kosztu
- Propagacja w przód
- Propagacja wsteczna
- Poprawa sposobu uczenia sieci neuronowych
Konwolucyjne sieci neuronowe
- Cele
- Architektura modelu
- Zasady
- Organizacja kodu
- Uruchomienie i trenowanie modelu
- Ocena modelu
Podstawowe wprowadzenia do poniższych modułów (Krótkie wprowadzenie zostanie przedstawione w zależności od dostępności czasu):
Zaawansowane użycie TensorFlow
- Wątki i kolejki
- Rozproszony TensorFlow
- Pisanie dokumentacji i udostępnianie modelu
- Dostosowywanie czytników danych
- Manipulowanie plikami modelu TensorFlow
TensorFlow Serving
- Wprowadzenie
- Podstawowy tutorial serwowania
- Zaawansowany tutorial serwowania
- Tutorial serwowania modelu Inception
Wymagania
Tło w fizyce, matematyce i programowaniu. Zaangażowanie w działania związane z przetwarzaniem obrazów.
Uczestnicy powinni posiadać wcześniejszą wiedzę na temat koncepcji uczenia maszynowego oraz powinni mieć doświadczenie w programowaniu w Pythonie i korzystaniu z bibliotek.
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.