Zaawansowane uczenie głębokie z TensorFlow 2 i Keras (Wydanie 2, zaktualizowane)

Ten zasób zawiera kody do książki [Zaawansowane uczenie głębokie z TensorFlow 2 i Keras, Wydanie 2, zaktualizowane](ftp - zaktualizować na Helion), opublikowanej przez Helion. Znajdują się w nim wszysktie pliki niezbędne do uruchomienia projektów zawartych w książce.

Zwróć uwagę, że przykłady kodów zostały zaktualizowane i działają tylko z API TensorFlow 2.0 Keras.

O książce

Zaawansowane uczenie głębokie z TensorFlow 2 i Keras (Wydanie 2) jest kompletnie zaktualizowanym wydaniem bestsellerowego podręcznika dotyczącego dostępnych obecnie, zaawansowanych technik uczenia głębokiego. Edycja ta, przygotowana pod kątem Tensorflow 2.x, wprowadzi Cię do praktycznych aspektów uczenia głębokiego w nowych rozdziałach dotyczących uczenia nienadzorowanego z użyciem informacji wzajemnych, wykrywania obiektów (SSD) i segmentacji semantycznej (FCN i PSPNET), co pozwoli Ci na tworzenie własnych projektów z użyciem najnowocześniejszych technik sztucznej inteligencji.

W książce tej pokazano w sposób praktyczny, jak bardziej efektywnie tworzyć projekty wykorzystujące najbardziej aktualne techniki sztucznej inteligencji z użyciem otwartoźródłowej biblioteki do uczenia głębokiego Keras.

Począwszy od przeglądu Perceptronów wielowarstwowych (MLPs), splotowych sieci neuronowych (CNNs) oraz rekurencyjnych sieci neuronowych (RNNs), książka wprowadza kolejno w coraz bardziej najnowoczesne techniki w miare jak badasz głębokie architektury sieci neuronowych, w tym Reset i Densenet,i jak tworzysz sieci autokodujące. Następnie poznasz sieci GAN i dowiesz się, jak dzięki nim można osiągnąć nowe poziomy wydajności sztucznej inteligencji.

Następnie odkryjesz, w jaki sposób wdrożyć wariacyjną sieć autokodującą (VAE), oraz jak sieci GAN i VAE umożliwiają generowanie syntetycznych danych, które wygladają bardzo przekonywująco dla ludzi. Nauczysz się również wdrażać metody uczenia głębokiego ze wzmocnieniem - DRL, takie jak głębokie metody gradientu i strategie, które mają kluczowe znaczenie dla wielu nowoczesnych wyników uzyskiwanych przez AI.

Instalacja

Rekomendujemy użycie środowiska conda. Proszę pobierz Anacoda stąd: Anaconda. Aby zainstalować Anaconda :

sh <nazwa-pobranego-instalatora-Anaconda3>

Wymagany jest komputer z co najmniej 1 jednostką NVIDIA GPU (1060 lub lepsza). Przykładowe kody były testowane na 1060, 1080Ti, RTX 2080Ti, V100, RTX Quadro 8000 działających pod kontrolą systemu Ubuntu 18.04 LTS. Poniżej zamieszczono krótki przewodnik instalacji sterownika NVIDIA oraz CuDNN aby uruchomić wsparcie dla GPU.

sudo add-apt-repository ppa:graphics-drivers/ppa

sudo apt update

sudo ubuntu-drivers autoinstall

sudo reboot

nvidia-smi

W czasie gdy przygotowywano tłumaczenie nvidia-smi pokazuje wersję sterownika NVIDIA 462.59 i wersję CUDA 11.2.

To prawie koniec. Ostatni zestaw poleceń wygląda nastepująco (niektóre kroki mogą wymagać dostępu z "sudo").

conda create --name adlk

conda activate adlk

cd <katalog-z-zasobami-z-ftp>

pip install -r requirements.txt

sudo apt-get install python-pydot

sudo apt-get install ffmpeg

Przetestowanie czy prosty model może zostać wytrenowany bez błędów:

cd Rozdział 1 - Wprowadzenie do Keras

python3 mlp-mnist-1.3.2.py

Końcowy rezultat pokazuje dokładność wytrenowanego modelu na testowym zbiorze danych MNIST, wynosi on około 98.2%.

Alternatywna instalacja TensorFlow

Jeśli masz kłopoty z biblioteką CUDA (tzn. nie możesz załadować lub znaleźć libcudart.so.10.X), TensorFlow i biblioteki CUDA mogą być zainstalowane wspólnie z użyciem conda:

pip uninstall tensorflow-gpu conda install -c anaconda tensorflow-gpu

Rozdział 1: Wprowadzenie do Keras

  1. MLP na zbiorze MNIST
  2. CNN na zbiorze MNIST
  3. RNN na zbiorze MNIST

Rozdział 2 - Głębokie sieci neuronowe

  1. Funkcyjne API na zbiorze MNIST
  2. Y-Network na zbiorze MNIST
  3. ResNet v1 and v2 na zbiorze CIFAR10
  4. DenseNet na zbiorze CIFAR10

Rozdział 3 - Sieci Autokodujące

  1. Denoising AutoEncoders

Przykładowy rezulat dla losowych cyfr:

Losowe cyfry

  1. Colorization AutoEncoder

Przykładowe wyjścia dla losowych obrazów cifar10:

Colorized obrazy

Rozdział 4 - Sieci GAN

  1. Deep Convolutional GAN (DCGAN)

Radford, Alec, Luke Metz, and Soumith Chintala. "Unsupervised representation learning with deep convolutional generative adversarial networks." arXiv preprint arXiv:1511.06434 (2015).

Przykładowe wyjścia dla losowych cyfr:

Random Digits

  1. Conditional (GAN)

Mirza, Mehdi, and Simon Osindero. "Conditional generative adversarial nets." arXiv preprint arXiv:1411.1784 (2014).

Przykładowe wyjścia dla losowych cyfr:

Zero to Nine

Rozdział 5 - Ulepszone sieci GAN

  1. Wasserstein GAN (WGAN)

Arjovsky, Martin, Soumith Chintala, and Léon Bottou. "Wasserstein GAN." arXiv preprint arXiv:1701.07875 (2017).

Przykładowe wyjścia dla losowych cyfr:

Random Digits

  1. Least Squares GAN (LSGAN)

Mao, Xudong, et al. "Least squares generative adversarial networks." 2017 IEEE International Conference on Computer Vision (ICCV). IEEE, 2017.

Przykładowe wyjścia dla losowych cyfr:

Random Digits

  1. Auxiliary Classifier GAN (ACGAN)

Odena, Augustus, Christopher Olah, and Jonathon Shlens. "Conditional image synthesis with auxiliary classifier GANs. Proceedings of the 34th International Conference on Machine Learning, Sydney, Australia, PMLR 70, 2017."

Przykładowe wyjścia dla cyfr od 0 do 9:

Zero to Nine

Rozdział 6 - Rozplątane reprezentacje w GAN

  1. Information Maximizing GAN (InfoGAN)

Chen, Xi, et al. "Infogan: Interpretable representation learning by information maximizing generative adversarial nets. "Advances in Neural Information Processing Systems. 2016.

Przykładowe wyjścia dla cyfr od 0 do 9:

Zero to Nine

  1. Stacked GAN

Huang, Xun, et al. "Stacked generative adversarial networks." IEEE Conference on Computer Vision and Pattern Recognition (CVPR). Vol. 2. 2017

Przykładowe wyjście dla cyfr od 0 do 9:

Zero to Nine

Rozdział 7 - Międzydziedzinowe sieci GAN

  1. CycleGAN

Zhu, Jun-Yan, et al. "Unpaired Image-to-Image Translation Using Cycle-Consistent Adversarial Networks." 2017 IEEE International Conference on Computer Vision (ICCV). IEEE, 2017.

Przykładowe wyjście dla losowych obrazów cifar10:

Colorized obrazy

Przykładowe wyjście dla cyfr MNIST dla SVHN:

MNIST2SVHN

Rozdział 8 - Wariacyjne sieci autokodujące

  1. VAE MLP MNIST
  2. VAE CNN MNIST
  3. Conditional VAE and Beta VAE

Kingma, Diederik P., and Max Welling. "Auto-encoding Variational Bayes." arXiv preprint arXiv:1312.6114 (2013).

Sohn, Kihyuk, Honglak Lee, and Xinchen Yan. "Learning structured output representation using deep conditional generative models." Advances in Neural Information Processing Systems. 2015.

I. Higgins, L. Matthey, A. Pal, C. Burgess, X. Glorot, M. Botvinick, S. Mohamed, and A. Lerchner. β-VAE: Learning basic visual concepts with a constrained variational framework. ICLR, 2017.

Wygenerowane cyfry MNIST w funkcji przestrzeni niejawnej:

MNIST

Rozdział 9 - Uczenie ze wzmocnieniem

  1. Q-Learning
  2. Q-Learning on Frozen Lake Environment
  3. DQN and DDQN on Cartpole Environment

Mnih, Volodymyr, et al. "Human-level control through deep reinforcement learning." Nature 518.7540 (2015): 529

DQN w środowisku wózka:

Cartpole

Rozdział 10 - Strategie metod gradientowych

  1. REINFORCE, REINFORCE with Baseline, Actor-Critic, A2C

Sutton and Barto, Reinforcement Learning: An Introduction

Mnih, Volodymyr, et al. "Asynchronous methods for deep reinforcement learning." International conference on machine learning. 2016.

Strategia gradientu w ciągłym środowisku samochodu wjeżdżającego pod górkę:

Car

Rozdział 11 - Wykrywanie obiektów

  1. Single-Shot Detection

Detekcja 3 obiektów za jednym razem (ang. Single-Shot) SSD

Rozdział 12 - Segmentacja semantyczna

  1. FCN

  2. PSPNet

Segmentacja semantyczna

Semantic Segmentation

Rozdział 13 - Uczenie nienadzorowane z wykorzystaniem informacji wzajemnej

  1. Invariant Information Clustering

  2. MINE: Mutual Information Estimation

MINE MINE

Cytowanie

Jeśli ta praca Ci się przydała, proszę - zacytuj:

@book{atienza2022advanced, title={Zaawansowane uczenie głębokie z TensorFlow 2 i Keras}, author={Atienza, Rowel}, year={2022}, publisher={Helion} }