Sztuczne Sieci Neuronowe

W semestrze letnim 2024/25 wykład odbywa w poniedziałki o godz. 9:30-11:00 w sali B.1.03 (PK6).

Wykład

Sztuczne sieci neuronowe - slajdy ze wszystkich wykładów w jednym pliku. Uwaga: plik jest aktualizowany w miarę postępu wykładu.

Wstęp: podstawowe pojęcia i wprowadzenie do tematu sieci neuronowych

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, ...

Perceptrony i reguły uczenia

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

Do poczytania:

Professor’s perceptron paved the way for AI – 60 years too soon by Melanie Lefkowitz

Neural Networks Part 1: Setting up the Architecture, Linear Classification - Andrej Karpathy notes

What is the difference between a Perceptron, Adaline, and neural network model? Machine Learning FAQ

Using neural nets to recognize handwritten digits - Michael Nielsen, Neural Networks and Deep Learning

Sieci wielowarstwowe jednokierunkowe MLP

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:

TensorFlow PLayground

ConvNetJS - Deep Learning in your browser

The Softmax function and its derivative Eli Bendersky's website

Ulepszenia wstecznej propagacji błędów

powierzchnie błędu, minima lokalne i globalne

dobór współczynnika uczenia, uczenie z momentem, wielokrotny start

inicjalizacja wag sieci, przygotowanie danych treningowych

algorytmy optymalizacji: Quickprop, RPROP, metoda Newtona, algorytm Levenberg-Marquardta, gradientów sprzężonych

Dodatkowe materiały:

5 algorithms to train a neural network by Alberto Quesada, Artelnics.

Variations on stochastic gradient descent

Weight initialization

Generalizacja i regularuzacja treningu MLP

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

Dodatkowe materiały:

Overfitting and regularization

Tensorflow Playground demo MLP z regularyzacją L1 i L2

Radialne Funkcje Bazowe

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:

Radial Basis Function Network (RBFN) Tutorial by Chris McCormick

RBFN Tutorial Part II - Function Approximation by Chris McCormick

Samoorganizacja - uczenie konkurencyjne

Uczenie konkurencyjne, WTA, reguła Kohonena

Kwantowanie wektorowe

Samoorganizujące się odwzorowanie topologiczne Kohonena

Gaz Neuronowy

Growing Cell Structures, Growing Neural Gas

Mapy samoorgnizujące SOM

Przykłady zastosowań i wizualizacji

Dodatkowe materiały:

Some Competitive Learning Methods by Bernd Fritzke

DemoGNG.js by Dr. Bernd Fritzke

Self-organizing Maps Kevin Pang

Image Compression with Vector Quantization by Ivan-Assen Ivanov

Samoorganizacja - uczenie hebowskie

reguła Hebba

reguła Oji

PCA

Uogólniony algorytm hebbowski

Uczenie anty-hebbowskie

APEX

Dodatkowe materiały:

Hebb's Learning - Ruye Wang

Neural Network Implementations for PCA and Its Extensions - by Qiu, Wang, Lu, Zhang and Du

Multidimensional scaling and Kohonen's self-organizing maps by Duch and Naud (1996)

Sieci dynamiczne i pamięci asocjacyjne

Sieci ze sprzężeniami zwrotnymi

Model Hopfielda

Zastosowania w modelowaniu pamięci autoasocjacyjnej i optymalizacji

Pamięć heteroasocjacyjna, sieć BAM

Dodatkowe materiały:

The Hopfield Model - by Raul Rojas (rozdział 13 książki Neural Networks - A Systematic Introduction)

Associations and memory, Hopfield Model - Wulfram Gerstner, Werner M. Kistler, Richard Naud and Liam Paninski (rozdziały z książki Neuronal Dynamics)

Hopfield Networks is All You Need by Johannes Brandstetter

Głebokie uczenie - wstęp i modele DNN

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:

What is Deep Learning? by Jason Brownlee

ReLU

ConvNetJS Trainer demo on MNIST porównanie alg. uczenia na MNIST

An overview of gradient descent optimization algorithms by Sebastian Ruder

Brwose State-of-the-Art

CNN - sieci splotowe

splot 1D, 2D, 3D, mapy cech, pola recepcyjne

warstwa pooling, max pooling, avg pooling

porównanie z sieciami MLP

wsteczna propagacja błędu w sieciach splotowych

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łączenia skrótowe, zwielokrotnianie danych weksciowych, splot filtrem 1×1

Do poczytania:

An intuitive guide to Convolutional Neural Networks

An Introduction to different Types of Convolutions in Deep Learning by Paul-Louis Pröve

ResNet, AlexNet, VGGNet, Inception: Understanding various architectures of Convolutional Networks

CNN Architectures: LeNet, AlexNet, VGG, GoogLeNet, ResNet and more by Siddharth Das

LeNet-5, convolutional neural networks

LeNet-5 visualization

An Interactive Node-Link Visualization of Convolutional Neural Networks by Adam W. Harley.

Demo: Classify CIFAR-10 with Convolutional Neural Network

CNN explainer

RNN - sieci rekurencyjne i uczenie sekwencji

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, ..

Sieci RNN dwukierunkowe

Modele RNN encoder-decoder (seq2seq)

Modele RNN encoder-decoder z mechanizmem uwagi

Jednostki Long-Short Term Memory (LSTM), Gate Recurrent Unit (GRU)

Zastosowania:

Modelowanie języka: CharRNN

Tłumaczenie maszynowe: seq2seq, RNNsearch

Do poczytania:

The Unreasonable Effectiveness of Recurrent Neural Networks, Andrej Karpathy blog

Understanding LSTM Networks - colah's blog

An LSTM Odyssey by Jim Fleming

Machine Translation

Composing Music With Recurrent Neural Networks

Recurrent Neural Network Tutorial by Denny Britz (part 1, 2, 3, 4)

Ucznie reprezentacji i modele generatywne

autoenkodery i kodowanie sygnału

kompresja sygnału, feature extraction

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:

Implementing PCA, Feedforward and Convolutional Autoencoders and using it for Image Reconstruction, Retrieval & Compression by Manash Kumar Mandal

ConvNetJS Denoising Autoencoder demo

Unsupervised learning using restricted Boltzmann machines by Kyo Jin Kwon

Generative Adversarial Networks — A Deep Learning Architecture by Gautam Ramachandra

Variational Autoencoders Explained VAE in Detail from Another Datum

Intuitively Understanding Variational Autoencoders by Irhum Shafkat

Generative Adversarial Networks- History and Overview by Kiran Sudhir

https://thispersondoesnotexist.com/

Sketch-RNN-demo

Transformery i duże modele językowe

Modelowanie sekwencji za pomocą transformatorów

Architektura modelu, mechanizm uwagi, warstwy kodera i dekodera

Uczenie modelu, mechanizm uwagi, self-attention

Zastosowania: tłumaczenie maszynowe, generowanie tekstu, ...

LLM, BERT, GPT

ViT - Vision Transformer

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

Sztuczne Sieci Neuronowe - wykład prof. W. Duch

Wstęp do Sieci Neuronowych - wykład Jarosław Piersa,

Raul Rojas, Neural Networks - A Systematic Introduction, 1996

Deep Learning

Deep Learning, I. Goodfwllow, Y. Bengio, A. Courville, Deep Learning, MIT Press, 2016

M. Nielsen, Neural Networks and Deep Learning

Neural Network Tutorials by Geoffrey E. Hinton

Dive into Deep Learning by A. Zhang, Zack C. Lipton, Mu Li, Alex J. Smola, on GitHub

Neurocomputing - lectures by Julien Vitay (youtube, slides and notes)

Artificial Neural Networks Series on Rubik's Code

Deep Learning

DeepNotes

A Guide to Deep Learning by YN2

Material for the Deep Learning Course NTU

Deep Learning glossary

Deep Learning Tutorials

Are we there yet ?

WER are we?

Awesome Deep Learning

Awsome Deep Vison

8 Inspirational Applications of Deep Learning

Awesome Recurrent Neural Networks

Awesome Tensorflow Implementations

MNIST

CIFAR

ImageNet

AI Experiments with Google

Frameworki DL

Deep Learning Frameworks https://developer.nvidia.com/deep-learning-frameworks

Comparison_of_deep_learning_software

TensorFlow (Google)

Keras - high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano.

Theano

Lasagne - Lightweight library to build and train neural networks in Theano

Microsoft Cognitive Toolkit (CNTK)

Caffe

Torch (Facebook AI) PyThotch zawiera m. in .Coffe 2 (Facebook AI)

MATLAB Deep Learning

deeplearning4j - Deep Learning for Java