Wstęp do głębokich sieci neuronowych Paweł Morawiecki IPI PAN
Liczba projektów z głębokim uczeniem rośnie bardzo szybko liczba projektów w firmie Google 4000 3000 2000 1000 2012 2013 2014 2015 2016 2017 czas Źródło: Prezentacja Jeffa Deana (Google Brain), 15.02.2017 Tensorflow Dev Summit
Głębokie sieci neuronowe podbijają NLP Z Facebookowego profilu Stanford NLP Group (21 marca 2017): The 2017 Stanford CS224N poster session will showcase projects in Natural Language Processing with Deep Learning that students have worked on over the past quarter. This year, over 650 students will be presenting over 300 projects, organized over two sessions.!!
Sieć neuronowa jest (prostym) modelem obliczeniowym warstwy ukryte warstwa wejściowa warstwa wyjściowa
Neuron odpala przy odpowiednim pobudzeniu i 1 w 1 i 2 w 2 + s f(s) w 3 i 3 f(s) = max(0,s) s
Uczenie sieci to w istocie zadanie minimalizacji Tak próbujemy dostroić sieć by liczba błędów była jak najmniejsza (wartość funkcji celu jak najmniejsza)
Wartość funkcji celu zależy od wag
Gradient podpowiada jak zmieniać wagi funkcja_celu(waga) waga
Zmieniamy wagi by sieć działała coraz lepiej gdzie to wektor wag, to współczynnik uczenia, to gradient (wektor pochodnych cząstkowych)
Naiwne liczenie gradientu działa za wolno waga1 waga2 waga3 waga4 wyjście
Naiwne liczenie gradientu działa za wolno waga1 waga2 waga3 waga4 wyjście Wydajne rozwiązanie: algorytm wstecznej propagacji!
Algorytm wstecznej propagacji bazuje na regule łańcuchowej 5 ^2
Algorytm wstecznej propagacji bazuje na regule łańcuchowej 5 ^2
Algorytm wstecznej propagacji jest wydajny Wejście1: Waga1: Wejście2: + + 1/x Waga2: Waga3: 3
Algorytm wstecznej propagacji jest wydajny Wejście1: 0,2 Waga1: -5 Wejście2: -0,3 + + 1/x Waga2: 0,7 Waga3: 0,8 3
Algorytm wstecznej propagacji jest wydajny Wejście1: 0,2 Waga1: -5-1 Wejście2: -0,3 + 0,4 2,4 + 1/x Waga2: 0,7 Waga3: 0,8 3
Algorytm wstecznej propagacji jest wydajny Wejście1: 0,2 Waga1: -5-1 Wejście2: -0,3 + 0,4-0,4 2 0,5 2,4 + 1/x Waga2: 0,7 Waga3: 0,8 3
Algorytm wstecznej propagacji jest wydajny Wejście1: 0,2 Waga1: -5-1 Wejście2: -0,3 + 0,4-0,4 2 0,5 2,4 + 1/x -0,25 Waga2: 0,7 Waga3: 0,8 3
Algorytm wstecznej propagacji jest wydajny Wejście1: 0,2 Waga1: -5-1 0,4 Wejście2: -0,3 + Waga2: 0,7 Waga3: 0,8 3-0,4 2 0,5-0,25 2,4-0,25 + 1/x -0,25
Algorytm wstecznej propagacji jest wydajny Wejście1: 0,2 Waga1: -5-0,1-1 0,4 Wejście2: -0,3 + 0,25 Waga2: 0,7 Waga3: 0,8-0,6 3-0,4 2 0,5-0,25 2,4-0,25 + 1/x -0,25
Algorytm wstecznej propagacji jest wydajny Wejście1: 0,2-0,5 Waga1: -5-1 -0,1-0,02 0,4 Wejście2: -0,3 + 0,25 0,25 Waga2: 0,7 Waga3: 0,8 0,25-0,6 3-0,4 2 0,5-0,25 2,4-0,25 + 1/x -0,25
Uczenie się sieci to zmiany wag w dobrym kierunku dopóki czas pozwoli { dla każdego przykładu ze zbioru treningowego {oblicz gradient dla wag} policz średni gradient i zaktualizuj wagi }
Skuteczność głębokich sieci rośnie wraz z rozmiarem danych skuteczność sieci głęboka sieć średnia sieć płytka sieć rozmiar danych
Program AlphaGo pokonał zawodowego mistrza gry Go
Głębokie sieci neuronowe przycięły drzewo gry Źródło: Google Deepmind presentation on AlphaGo
Głębokie sieci potrafią diagnozować zmiany nowotworowe na poziomie doświadczonego eksperta (lub lepiej) Wycinek tkanki z węzła chłonnego Źródło: Detecting Cancer Metastases on Gigapixel Pathology Images, 2016 https://arxiv.org/pdf/1703.02442.pdf
Głębokie sieci neuronowe znakomicie służą NLP (np. pomagają wykrywać koreferencje) - Znam planetę na której mieszka pan o czerwonej twarzy. On nigdy nie wąchał kwiatów. Nigdy nie patrzył na gwiazdy. Nigdy nikogo nie kochał. Niczego w życiu nie robił poza rachunkami. I cały dzień powtarza tak jak ty: "Jestem człowiekiem poważnym, jestem człowiekiem poważnym. Nadyma się dumą.
Vincent van Gogh maluje prof. Koronackiego + https://deepart.io
Można się samemu uczyć course.fast.ai (Practical Deep Learning for Coders) neuralnetworksanddeeplearning.com cs231n.github.io (Convolutional Neural Networks for Visual Recognition)
Coraz lepsze i przystępniejsze narzędzia ułatwiają start Tensorflow (www.tensorflow.org) i Keras (keras.io) Biblioteka i API wspierane przez Google PyTorch (pytorch.org) Używany i wspierany przez Facebook i Twitter
Amazon oferuje serwery z GPU Amazon Web Services (aws.amazon.com) dedykowane serwery z preinstalowanymi bibliotekami koszt około 1$ za godzinę pracy na serwerze