Bevezetés a mesterséges intelligencia mély tanulás eszközrendszerébe Csapó Tamás Gábor http://smartlab.tmit.bme.hu
AI, ML, DL Forrás: https://blogs.nvidia.com/blog/2016/10/17/deep-learning-help-business/ 2/35
Deep learning alapú AI: óriási lehetőség! Emberfeletti szinten működik ~ Hallás ~ Látás ~ Beszéd ~ Tudás? 3/35
Hírek a nagyvilágból 2014 Deep Mind, ~500.000.000$ (https://deepmind.com) Space Invaders Breakout AlphaGo AlphaGo Zero 2015 OpenAI, ~1.000.000.000$ (https://openai.com) Elon Musk (PayPal, SpaceX, Tesla Motors) Nyílt forráskódú AI megoldások az emberiség szolgálatában 2016 Nervana Intel fúzió 2017 Maluuba (Montreal, Canada) Microsoft fúzió 2018 Franciao., Emmanuel Macron AI stratégia: 1,5 mrd 2018 Open AI Five, stratégiai játékok (StarCraft, Dota) 4/35
1943 óta Mi volt a baj a backpropagation eljárással 1986-ban? Az alkalmazott adatbázisok túl kicsik voltak Az akkori számítógépek túl lassúak voltak A neurális háló súlyok inicializálása nem jól történt A hálózatban alkalmazott nemlinearitás nem volt elég jó Geoffrey Hinton, 2006 5/35
NVidia részvény árfolyam (NASDAQ) Forrás: https://finance.yahoo.com/quote/nvda/chart 6/35
Deep learning: az adattudomány szent Grálja? Deep learning (also known as deep structured learning or hierarchical learning) is part of a broader family of machine learning methods based on learning data representations. Gyakorlatban: mély neurális hálózat Mi az újdonság? Algoritmusok + nagy mennyiségű adat + GPU + alacsony belépési szint + nyílt forráskód, kutató közösség ( democratizing AI ) 7/35
Deep learning architektúra 8/35
Mély neuronháló architektúra f( ): nemlineáris függvény e.g. f( )=max(0, ) backpropagation TANULÁS: súlyok hangolása 9/35
Alapvető hálózat típusok Előrecsatolt réteg (Fully Connected layers, FC) Osztályozás és regresszió Rekurrens réteg (pl. Long Short-Term Memory, LSTM) Szekvenciális, időben változó adatok Konvolúciós rétegek (Convolutional Neural Net, CNN) Jellemző kinyerés és jellemző tanulás 1D, 2D és 3D konvolúció Eredetileg kép és beszéd; ma már mindenre alkalmazzák 10/35
Mi NEM a deep learning? kristálygömb fekete doboz, ami mindent megold önmagától tanuló robot általános intelligencia kreatív intelligencia 11/35
Hardver: GPU NVIDIA GTX, TITAN, TITAN X, Xp, V Titan X Pascal: 12 teraflop (single precision) ~50.000-1.500.000.- HUF NVidia DevBox or 3 rd party solution 40-50 TFlop, 3-4 mhuf NVidia DGX Station: 480 TFlop, 20 mhuf NVidia DGX-1: Nvidia DGX-2: 3 rd party vendors Cloud services 960 TFlop, 70 mhuf 2 PFlop (2000 TFlop), 180 mhuf 12/35
13/35
Software TensorFlow (Google) Strong marketing and Google support, Distributed computation, Mature visualization (TensorBoard), Mobile implementation, Keras (Fchollet @Google) TensorFlow, CNTK, Theano and MXNet backend, Part of TensorFlow, Very popular (top used deep learning framework on Kaggle), Easy to read, fast prototyping. PyTorch, Torch7 (Facebook, Twitter, NVidia, stb.) Theano (University of Montreal) Caffe (University of California, Berkeley) Nervana (Intel), Lasagne, Microsoft CNTK, Matlab Deep Learning Toolbox, stb. 14/35
Docker Cél: egy alkalmazás és annak összes függősége egy bárhol futtatható egységben VM-mel szemben csak a felhasználói teret virtualizálják, a többi erőforrás közös Minden konténer osztozik a gazda kerneljén a többi konténerrel Jóval kisebb overhead a VM-hez képest Könnyen kezelhető nvidia-docker run -it -v /home/csapot/:/data ufoym/deepo bash 15/35
Kubernetes Menedzsmentplatform a konténeres (pl. Docker) alkalmazásokhoz Korábban nem volt jól skálázódó menedzsment felület Google / Cloud Native Computing Foundation Linuxon futó konténerek egységes rendszerként üzemeltethetőek Egy központban lévő konténerek logikusan rendszerezhetőek, migrálhatók Automatikus skálázódás, újabb konténerek indíthatók igény szerint Forrás: https://kubernetes.io 16/35
Nvidia, RAPIDS.AI GPU-n lehet klasszikus data science modulokat (Sklearn, Pandas, Numpy) futtatni Megszokott Python interfészek az adatok feldolgozásához is, jelentős gyorsulás Forrás: https://rapids.ai 17/35
Blazing DB RapidsAI alapú, SQL adatbázisból adatok közvetlenül a GPU-ba, CUDA támogatással BlazingSQL & RAPIDS: nyílt forrráskódú Egyszerű SQL interfész Forrás: https://blazingdb.com/ 18/35
Deep Learning példa Képfelismerés 19
Kép: férfi vagy nő? backpropagation nő férfi nő Deep convolutional layers Feed-forward neural network 20/35
Kép: ImageNet verseny ~1.200.000 kép, ~1000 kategória Cél: minél pontosabb osztályozás AlexNet [A. Krizhevsky et al., 2012] 21/35
AlexNet [A. Krizhevsky et al., 2012] 22/35
Kép: felismerési pontosság 2010-2015 https://devblogs.nvidia.com/parallelforall/mocha-jl-deep-learning-julia/ 23/35
from urllib.request import urlretrieve from keras.applications.inception_v3 import InceptionV3,preprocess_input,decode_predictions from keras.preprocessing import image import numpy as np url_dog="https://pixabay.com/static/uploads/photo/2016/02/19/15/46/d og-1210559_960_720.jpg" urlretrieve(url_dog, "dog.jpg") img_path = 'dog.jpg' img = image.load_img(img_path, target_size=(299, 299)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) model = InceptionV3(weights='imagenet', include_top=true) preds = model.predict(x) print('predicted class:', decode_predictions(preds)) 24
from urllib.request import urlretrieve from keras.applications.inception_v3 import InceptionV3,preprocess_input,decode_predictions from keras.preprocessing import image import numpy as np url_dog = "https://pixabay.com/static/uploads/photo/2016/02/19/15/46/dog- 1210559_960_720.jpg" urlretrieve(url_dog, "dog.jpg") img_path = 'dog.jpg' img = image.load_img(img_path, target_size=(299, 299)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) model = InceptionV3(weights='imagenet', include_top=true) preds = model.predict(x) print('predicted class:', decode_predictions(preds)) 25
from urllib.request import urlretrieve from keras.applications.inception_v3 import InceptionV3,preprocess_input,decode_predictions from keras.preprocessing import image import numpy as np url_dog = "https://pixabay.com/static/uploads/photo/2016/02/19/15/46/dog- 1210559_960_720.jpg" urlretrieve(url_dog, "dog.jpg") img_path = 'dog.jpg' img = image.load_img(img_path, target_size=(299, 299)) x = image.img_to_array(img) x = np.expand_dims(x, axis=0) x = preprocess_input(x) model = InceptionV3(weights='imagenet', include_top=true) preds = model.predict(x) Predictions: [[('n02099712', 'Labrador_retriever', 0.5143939), ('n02099601', 'golden_retriever', 0.28467834), ('n02108551', 'tennis_ball ', 0.006718181), ('n02104029', Rhodesian_ridgeback', 0.0056073326), ('n04409515', kuvasz', 0.0041805333)]] print('predicted class:', decode_predictions(preds)) 26
Deep learning alkalmazások Kép Osztályozás, arcfelismerés, objektum detektálás, forgalmisáv detektálás Neurális művészet, style transfer, képgenerálás Beszéd Beszédfelismerés, beszélőfelismerés, érzelem felismerés Beszédszintézis, beszélőadaptáció Brain-computer interface End-to-end rendszerek, élő fordítás Természetes nyelvfeldolgozás Tartalom elemzés és modellezés, hangulat elemzés Szövegértés, értelmezés Idősor elemzés Orvosi adatok (pl. EEG és EKG jelek) Időjárás, felhasználói viselkedés szenzoradatok alapján, stb. Telekommunikációs adatok (log, forgalom, anomáliák) Pénzügyi adatok, tőzsde, 27/35
Néhány érdekes deep learning alkalmazás 28
Szenzor adatok modellezése Szenzorok Giroszkóp Orientáció GPS, WiFi, stb. Deep learning alapú osztályozás Aktivitás Viselkedés Testmozgás Alkalmazás Vészhelyzet Aktivitás elemzés Felhasználó és csoport azonosítás Forrás: Czeba Bálint & Gyires-Tóth Bálint (2018) 29/35
Szenzor adatok modellezése Bemenet: 200 x 7 mintapont (1-2 másodperc) Rétegek (HYPEROPT): 16 reziduális blokk filter (16+) és kernel méret (3,5,7,9,11, ) Kimenet: Osztályok Forrás: Czeba Bálint & Gyires-Tóth Bálint (2018) 30/35
Generatív modellezés Sűrűségfüggvény becslés Minta generálás Tanító minták Modellel generált minták 31/sok
Következő videó képkocka becslése megelőző képkockák cél átlag generatív modell Forrás: Lotter et al 2015, https://arxiv.org/abs/1511.06380 32/35
Generált arcok Forrás: http://research.nvidia.com/publication/2017-10_progressive-growing-of https://youtu.be/g06decz-qtg 33/35
Deep learning (közeli) jövő Magasszintű, könnyen használható keretrendszerek Szabványos munkafolyamatok és modellformátumok Egyszerűbb és gyorsabb fejlesztés Jobb eszközök Több vállalati / ipari alkalmazás Konténerek, jól skálázható menedzsment környezet 34/35
Deep Learning a SmartLab-ban Elsődleges kutatási területek Beszédszintézis szövegből / artikulációs adatokból Idősor modellezés Audió osztályozás Természetes nyelv megértése Kép- és videó szegmentálás és osztályozás Oktatás Hivatalos NVidia GPU Education Center / Deep Learning Institute 3 posztdok, 3 PhD hallgató, 15-20 MSc és BSc hallgató Deep Learning a gyakorlatban Python és LUA alapokon 2x2 előadás / hét, projekt feladat, 80 hallgató / félév Szoftver Docker, Torch7, Keras, TensorFlow, Thenao Hardver 10 nagyteljesítményű GPU + szerver http://smartlab.tmit.bme.hu 35/35
Köszönöm a figyelmet! csapot@tmit.bme.hu Kép forrása: https://azure.microsoft.com/ en-us/services/virtual-machines/ data-science-virtual-machines/ http://smartlab.tmit.bme.hu