Partneři Projektu CAD
- 09.02. Autodesk Inventor – základní kurz
- 09.02. AutoCAD Electrical – základní kurz
- 10.02. Autodesk Inventor – kurz iLogic
- 10.02. Autodesk Inventor – kurz iLogic
- 11.02. Autodesk Inventor – návrh plechových dílů a součástí (Sheet Metal Design)...
- 12.02. AutoCAD – kurz pro středně pokročilé
- 13.02. Autodesk Inventor – kurz iLogic
- 16.02. AutoCAD a AutoCAD LT – základní kurz
- 19.02. Trimble SketchUp – základní kurz
- 19.02. workshop Strukturální mechanika v programu COMSOL Multiphysics
Aktuality
- Siemens získává Canopus AI pro zrychlení výroby polovodičů
- CATIA V5 v roce 2026: stabilní základ, nebo brzda dalšího rozvoje?
- Řešení pro reverzní inženýrství v oblasti aditivní výroby od Authentise
- Partnerství NVIDIA a Dassaultu pro průmyslová virtuální dvojčata
- Česká stopa v Artemis II: Astronauti NASA se po 53 letech vrací k Měsíci
- InfinitForm spouští generativní inženýrskou platformu
- Budoucnost designu a výroby na 3DEXPERIENCE World 2026
- eQuorum vydává ImageSite, EngineBox verze 12.3
Deep Learning v prostředí MATLAB |
| Autor článku: Jaroslav Jirkovský | |||||||||||||||
| Pondělí, 16 Leden 2017 00:00 | |||||||||||||||
|
„Strojové učení je podoblastí umělé inteligence, zabývající se algoritmy a technikami, které umožňují počítačovému systému »učit se«. Strojové učení se značně prolíná s oblastmi statistiky a dobývání znalostí a má široké uplatnění...“ (http://cs.wikipedia.org). Deep learning je metoda strojového učení, kde je za pomoci mnohovrstvých nelineárních výpočetních modelů získávána užitečná informace přímo z dat. V klasifikačních úlohách dosahují deep learning modely vysoké přesnosti, která může předčit lidské schopnosti. Modely jsou trénovány s využitím velkého množství označených dat a jejich architektura je postavená na hlubokých neuronových sítích (deep networks). Deep learning nachází využití v mnoha oblastech, zejména pak v úlohách:
Učení deep learning modelůPřesnost deep learning modelu závisí z velké části na množství dat použitých k jeho učení. Nejpřesnější modely vyžadují tisíce, či dokonce milióny vzorků. Učení takového modelu může trvat velmi dlouhou dobu. Jakmile je model naučen, lze jej nasadit do provozu v reálném čase. Typickou aplikací je detekce chodců v pokročilých systémech pro podporu řízení (ADAS). Deep learning a MATLABMATLAB je inženýrský nástroj a interaktivní prostředí pro vědecké a technické výpočty, analýzu dat, vizualizaci, vývoj algoritmů, modelování a simulace. MATLAB je nástroj jak pro pohodlnou interaktivní práci, tak pro vývoj širokého spektra aplikací. V oblasti deep learningu poskytuje MATLAB dva základní nástroje: autoenkodéry (Autoencoders) a konvoluční neuronové sítě (Convolutional Neural Networks – CNN). Využití CNN k rozpoznávání obrazu v programu MATLAB je na obrázku 1.
Rozpoznávání obrazuKonvoluční neuronové sítě (CNN) představují oblíbenou architekturu modelů v oblasti deep learningu. Neuronová síť je uspořádána do vrstev obsahujících sady propojených uzlů. Výpočetní algoritmus CNN je založen na konvoluci mezi vstupními daty a filtry, které reprezentují hledané charakteristické rysy. CNN využívá dvourozměrné (2-D) konvoluční vrstvy, a je tedy vhodná pro zpracování 2-D dat, jako jsou obrázky.
V horní části obrázku 2 je znázorněno schéma sestavení konvoluční neuronové sítě určené ke klasifikaci objektů v obrazových datech. Ve spodní části je principiální znázornění jejího fungování. Data protékají skrze neuronovou síť a dochází k jejich konvoluci s naučenými filtry (koeficienty filtrů jsou naučené váhy neuronové sítě). Výstup z konvoluce v jedné vrstvě je vstupem do vrstvy následující. Filtry mohou začínat jako velmi jednoduché rysy, typu světlých a tmavých míst či hran, a postupně přechází do složitějších tvarů v následujících vrstvách. Cílem konvolucí je extrahovat z obrazových dat informace (ve formě mapy charakteristických rysů), na základě kterých lze objekty na snímcích rozpoznat. Konvoluční vrstvy jsou často doplněny vrstvami ReLU a Pooling, které výstupy upraví (např. odstraní záporné hodnoty) a převzorkují na menší rozměr. Za sadou konvolučních vrstev bývají napojeny vrstvy klasifikační, které pracují z extrahovanými rysy ze vstupních obrázků. Výstupem klasifikačních vrstev může být pravděpodobnostní rozdělení pro přiřazení klasifikační třídy (hledaného objektu) ke vstupnímu obrázku. CNN v MATLABuV prostředí MATLAB se s CNN pracuje velmi pohodlně. Jsou zde připraveny funkce pro vytvoření jednotlivých vrstev sítě, u kterých může uživatel nastavovat parametry. Poté vrstvy pospojuje, síť natrénuje a využije ke klasifikaci s novými daty. Typická CNN může sestávat z vrstvy pro vstup obrázků, jedné nebo několika za sebou zapojených skupin vrstev convolution2d + relu + maxPooling2d a navazujících klasifikačních vrstev fullyConnected + softmax + classification. vrstvy = [imageInputLayer([28 28 1]); CNN a klasická klasifikaceKonvoluční neuronové sítě nemusí být vždy využívány včetně klasifikačních vrstev. Je možné využívat pouze konvoluční vrstvy pro extrakci charakteristických rysů z dat. Získané rysy jsou pak vstupem do klasických klasifikačních algoritmů strojového učení, jako jsou rozhodovací stromy (classification trees), support vector machines, k-nearest neighbors, discriminant analysis a jiné metody, které jsou v MATLABu k dispozici. Učení metodou Transfer LearningNaučení celé konvoluční neuronové sítě z výchozího nastavení vyžaduje ohromné množství trénovacích dat, protože je třeba nastavit milióny váhových koeficientů. Alternativním přístupem k učení „od nuly“ je využití před-učené sítě, která již sama extrahuje charakteristické rysy ze vstupních dat. Tento přístup, označovaný termínem transfer learning, je pohodlnou cestou aplikace deep learningu bez nutnosti využití rozsáhlého množství dat a dlouhé doby učení.
Přístup vychází z předpokladu, že úlohy klasifikace objektů v obrazových datech jsou v prvních krocích (v prvních vrstvách sítě) v zásadě shodné. Nejprve se z obrazu extrahují jednoduché prvky (hrany, přechody) a poté složitější struktury, až ke konkrétním objektům. K přizpůsobení sítě konkrétnímu problému tedy postačí doučit pouze několik posledních vrstev, které již rozlišují mezi konkrétními objekty. Extrakci jednoduchých rysů zajistí před-učená síť. Kvalita výsledku velmi závisí na kvalitě před-učené sítě, proto je důležitý její vhodný výběr. MATLAB nabízí stažení a využívání oblíbených před-učených sítí, např. sítě AlexNet (síť naučená s 1,2 milióny obrázků, obsahuje 23 vrstev, klasifikace objektů do 1000 kategorií). Porovnání náročnosti učení a přesnosti klasifikace při vytváření neuronové sítě „od nuly“ v porovnání s využitím před-učené sítě je v tabulce 1.
Urychlení pomocí GPUUčení modelu pro deep learning může trvat velmi dlouhou dobu, v rozmezí dnů či týdnů. Nasazení výpočtů na grafických kartách (GPU) vede ke značnému urychlení. V případě typické úlohy klasifikace objektů v obrazu lze snížit dobu učení z dnů na hodiny. Využití GPU výpočtů k učení CNN je v prostředí MATLAB plně podporováno. Dvouminutové video s ukázkou klasifikace objektů pomocí konvoluční neuronové sítě v prostředí MATLAB najdete pod názvem Deep Learning in 11 Lines of MATLAB Code na stránkách www.mathworks.com. Distributor produktů společnosti MathWorks v České republice a na Slovensku: HUMUSOFT, s. r. o. http://www.humusoft.cz |








Deep learning je jedno z nejprogresivnějších odvětví strojového učení se schopností řešit úlohy, které byly ještě před deseti lety nemyslitelné. Uplatnění deep learningu zasahuje mnoho oborů lidské činnosti od systémů počítačového vidění přes vyhledávací, diagnostické a asistenční systémy až po autonomní vozidla a bezpečnost. MATLAB, jakožto vývojové prostředí pro vědeckotechnické výpočty, nabízí v oblasti strojového učení a deep learningu množství algoritmů a usnadní jejich aplikaci při řešení praktických úkolů.


