Dziś powrócimy do deep learning, ale w połączeniu z Microsoft Cognitive Toolkit (dawniej CNTK). To odpowiednik wcześniej omawianego TensorFlow stworzonego przez Google. W świecie Microsoft znajdziemy przykłady korzystania z obu frameworków. Można powiedzieć, że Cognitive Toolkit nie był zbyt mocno promowany. Aczkolwiek ostatnio na Connect 2017 pojawiło się o nim całkiem sporo materiałów, ale o tym innym razem. Na razie sięgnijmy do kursu Edx zatytułowanego Deep Learning Explained. Wykłada deep learning w klarowny i systematyczny sposób, praktyka zaś odbywa się w oparciu o Cognitive Toolkit. Póki co przeszedłem przez trzy pierwsze moduły. W notatkach poniżej skupiłem się na Cognitive Toolkit, zasadniczo nie chciałem powtarzać zagadnień z samego deep learning, chyba że natrafiłem na coś, co chciałem ewidentnie utrwalić.
https://www.cs.toronto.edu/~hinton/nntut.html
semi-supervised learning – część punktów ma etykiety, ustalamy etykiety innych
Deep learning = Deep Neural Networks (DNN)
Deep Neural Networks
- wiele warstw
- każda warstwa uczy się na wyższym poziomie abstrakcji, który został jej przekazany przez wcześniejszą warstwę
- duża liczba parametrów (100 milionów lub więcej)
Domeny aplikacji
- obraz / wideo
- mowa
- tekst
- dane IoT
Microsoft Cognitive Toolkit
Instalacja lokalna (Jupyter) lub na Azure (Azure Notebook lub maszyna wirtualna)
Wieloklasowa klasyfikacja (logistyczna regresja)
Przykład: obrazki ręcznie pisanych cyfr
Softmax w warstwie wyjściowej.
Świetne demo
- Zapis obrazków do plików tekstowych CTF zgodnych z CNTK.
- Wczytanie danych
- Tworzenie modelu
- Uczenie
- Testowanie
- Predykcja
Wielowarstwowy perceptron
1 warstwa – 92% skuteczności w rozpoznawaniu cyfr
Funkcje aktywacji
Tanh jest bardziej preferowany niż sigmoid z uwagi na przyjmowanie wartości zero dla zera (oba są podatne na nasycenie). Najbardziej popularna to ReLU.
Leaky ReLU – aby rozwiązać problem umierania
W warstwach wewnętrznych ReLu, ostatnia wyjściowa bez funkcji aktywacji z uwagi na stosowanie softmax.
Na dziś starczy. Widzimy, że w Cognitive Toolkit odnajdziemy pewne podobieństwa do TensorFlow, choćby z uwagi na tę samą dziedzinę. Zostały jeszcze do obejrzenia znane skądinąd już sieci splotowe, rekurencyjne, LSTM i klasyfikacja tekstu.
Dodaj komentarz