Partneři Projektu CAD
Po | Út | St | Čt | Pá | So | Ne |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 01.05. workshop Strukturální mechanika v programu COMSOL Multiphysics
- 05.05. AutoCAD a AutoCAD LT – základní kurz
- 05.05. AutoCAD 2013 - základní kurz
- 07.05. Webinář Optimalizace PCB z pohledu tepelného managementu v programu Ansys Icepak...
- 12.05. Autodesk Inventor – kurz pro středně pokročilé (modelování součástí a plochy)...
- 13.05. AutoCAD – kurz pro středně pokročilé
- 14.05. Tolerance Management Fórum
- 15.05. AutoCAD – kurz pro pokročilé
- 15.05. ATCx Simulate at the Speed of Design
- 22.05. Metrologické školení » Měření tvrdosti kovových materiálů
Aktuality
- VariCAD a VariCAD Viewer v nové verzi 2025-2.01
- Automobilový průmysl na prahu velké změny: Jste připraveni na éru 3DEXPERIENCE?
- Dassault Systèmes a Airbus rozšiřují strategické partnerství
- Jak se nejrychleji dostat k potřebnému náhradnímu dílu
- 3DEXPERIENCE CONFERENCE 2025
- Právě vychází VOLTA a modeFRONTIER 2025R2
- Jak může MODSIM optimalizovat proces návrhu
- Manifest uvádí Parallax Volumetric AM Evaluation Kit
CAD na www.SystemOnLine.cz
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 |