Sztuczne Sieci Neuronowe
Zaliczenie wykładu
Zaliczenie odbędzie się na podstawie egzaminu oraz dwóch projektów zaliczeniowych.
Wynik egzaminu to 50% oceny końcowej, każdy z projektów to 25% do oceny.
Projekt składa się z aplikacji oraz raportu zawierającego opis metody i implementacji,
opis działania i przykładowe wyniki działania programu oraz ich interpretację.
Pierwszy projekt to samodzielna implementacja od podstaw wybranej sieci neuronowej, np. w postaci demonstracji działania wybranego algorytmu z wykładu.
Drugi projekt polega na zastosowaniu oprogramowania lub frameworku do
głębokiego uczenia (np. TendorFlw, Keras) do bardziej ambitnych zadań.
Wykład
-
CI, AI, ML, NN, DL - definicje, uporządkowanie pojęć
rys historyczny;
rodzaje uczenia: uczenie nadzorowane, nienadzorowane i uczenie z krytykiem
ogólnie o procesie uczenia sieci: architektura + funkcja kosztu + alg. uczenia + ocena jakości sieci
ogólne własności modeli neuronowych
Biologiczny model neuronu i inspiracje biologiczne
Model neuronu McCulloch-Pitts'a
Rodzaje sieci: jednokierunkowe, rekurencyjne, dynamiczne, konwolucyjne, …
-
Perceptron Rosenblatta
Reguły uczenia: reguła perceptronowa, Widrowa-Hoffa, reguła delta
Algorytm uczenia perceptronu, algorytm kieszonkowy, algortym kieszonkowy z zapadką
Klasyfikacja binarna wzorców za pomocą perceptronu, separacja liniowa, problem XOR
Funkcje aktywacji: binarna, liniowa, sigmoidalna, tanh, ReLU
Sieć wieżowa, sieć piramidalna
Uczenie metodą największego spadku gradientu
Klasyfikacja wieloklasowa, Adeline, maszyna liniowa
Do poczytania:
-
budowa i działanie sieci wielowarstwowej
algorytm wstecznej propagacji błędu, uogólniona reguła delta
własności wielowarstwowych perceptronów
funkcje kosztu MSE i Cross Entropy
softmax w wyjściu sieci
dobór architektury i funkcji kosztu do typowych zadań
Dodatkowe materiały:
-
powierzchnie błędu, minima lokalne i globalne
dobór współczynnika uczenia, uczenie z momentem, wielokrotny start
inicjaliacja wag sieci, przygotowanie danych treningowych
algorytmy optymalizacji: Quickprop, RPROP, metoda Newtona, algorytm Levenberg-Marquardta, gradientów sprzężonych
Dodatkowe materiały:
-
Generalizacja, ewaluacja treningu, przeuczenie i niedouczenie modelu
Zbiór walidacyjny i metoda wczesnego zatrzymania
Dobór liczby neuronów sieci
Regularyzacja L2, L1
Upraszczanie sieci (pruning): metody wrażliwościowe redukcji, Optimal Brain Damage
Sieci rozrastające się: korelacja kaskadowa
Regularyzacja poprzez modyfikację danych treningowych
Dodatkowe materiały:
-
relacje lokalne vs. nie-lokalne
Radialne funkcje bazowe
Teoria RBF, aproksymacja i klasyfikacja RBF
Reularyzacja RBF
Inicjalizacja i adaptacja centrów i rozmyć funkcji radialnych
Rozrastające się sieci RBF
Dodatkowe materiały:
-
Uczenie konkurencyjne, WTA, reguła Kohonenea
Kwantowanie wektorowe
Samoorganizujące się odwzorowanie topologiczne Kohonena
Gaz Neuronowy
Growing Cell Structures, Growong Neural Gas
Przykłady zastosowań i wizualizacji
Samoorganizacja i mapy ekwiprobabilistyczne
Mapy samoorgnizujące SOM
Dodatkowe materiały:
-
-
Sieci ze sprzężeniami zwrotnymi
Model Hopfielda
Zastosowania w modelowaniu pamięci autoasocjacyjnej i optymalizacji
Pamięć heteroasocjacyjna: sieć Hamminga, BAM
Dodatkowe matediały:
-
Kiedy model jest głęboki?
Głębokie vs. „płytkie” modele, dlaczego głębokość ma znaczenie?
Modele hierarchiczne i uczenie się reprezentacji wiedzy
Przykładowe zastosowania: MNIST, CIFAR, ASR, …
Modele end-to-end
Problemy uczenia głębokich sieci: niestabilny gradient, przeuczenie, koszt pamięci (ilość parametrów uczenia), koszt czasu treningu (duże dane)
Głębokie sieci jednokierunkowe (DNN)
Sieci z jednostkami ReLU, modyfikacje ReLU (PReLU, ELU, ReLU6), Maxout - przykłady zastosowań
Algorytm uczenia SGD z momentem Nesterova, AdaGrad, RMSProp, Adam, AdaDelta
Do poczytania:
-
splot 1D, 2D, 3D, mapy cech, pola recepcyjne
warstwa pooling, max pooling, avg pooling
porównanie z sieciami MLP
sygnały wejściowe sieci konsolacyjnych: audio, obrazy, video - jedno/wielo-kanałowe
Architektury : LeNet-5, AlexNet, GoogleNet/Inception, VGG Net, ResNet
Batch Normalization, Dropout, połaczenia skrótowe, zwielokrotnianie danych weksciowych, splot filtrem 1×1
Do poczytania:
-
Modelowanie sekwencji za pomocą sieci jednokierunkowych, MLP + dane z kontekstem, TDNN
Algorytm wstecznej propagacji w czasie (BPTT)
Rodzaje architektur: generowanie sekwencji, przekształcanie sekwencji, klasyfikacja sekwencji, ..
Modele encoder-decoder (seq2seq)
Sieci RNN jednokierunkowe/dwukierunkowe
Jednostki Long-Short Term Memory (LSTM), Gate Recurrent Unit (GRU)
Funkcja kosztu CTC
Zastosowania:
Do poczytania:
-
autoenkodery i kodowanie sygnału
kompresja sygnału, feature exstraction
Denoising Autoencoders
stacked autoencoders
autoenkodery konwolucyjne, rekurencyjne
Deep Belief Networks (DBNs), sieci składające się z warstw Restricted Boltzmann Machines (RMBs)
greedy pryer-wise e-training
sieci GAN
Do poczytania:
Literatura i kilka przydatnych odnośników
„Klasyczne” sieci neuronowe
J. Żurada, M. Barski, W., Jędruch Sztuczne sieci neuronowe, Wydawnictwo Naukowe PWN 1996
Osowski S.: Sieci neuronowe w ujęciu algorytmicznym, Wydawnictwo Naukowo-Techniczne, Warszawa 1996
Tadeusiewicz R.: Sieci neuronowe, Akademicka Oficyna Wydawnicza RM, Warszawa 1993
-
-
-
Deep Learning
Deep Learning, I. Goodfwllow, Y. Bengio, A. Courville,
Deep Learning, MIT Press, 2016
-
-
-
Frameworki DL
-
-
-
Keras - high-level neural networks
API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano.
-
Lasagne - Lightweight library to build and train neural networks in Theano
-
-
Torch (Facebook AI)
PyThotch zawiera m. in .Coffe 2 (Facebook AI)
-
-