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 | 31 |
- 29.05. workshop Strukturální mechanika v programu COMSOL Multiphysics
- 02.06. AutoCAD kurz – vytváření a prezentace 3D modelů
- 02.06. Autodesk Inventor - základní kurz
- 04.06. AutoCAD a AutoCAD LT – základní kurz
- 05.06. Advanced Engineering TechDay 2025
- 05.06. AutoCAD 2013 - základní kurz
- 09.06. Autodesk 3DS MAX – kurz
- 12.06. AutoCAD – kurz pro středně pokročilé
- 16.06. Autodesk Inventor – kurz pro pokročilé (sestavy a strojní návrhy)
- 23.06. Unreal Engine – vizualizace
Aktuality
- Formnext 2025: Výzva k přihlášení řečníků
- Novinky v ZW3D 2026: Co všechno přináší nová verze?
- Hexagon uvádí na trh PRESTO Quality Station
- STEP – v Datakitu na úrovni doby
- ENCY Software expanduje do Indie
- Výrobní řešení pro moderní obranný průmysl od 3Dees
- Zuken uvádí na trh CR-8000 2025 s podporou AI
- Integrace UltiMaker Cura se zařízeními 3Dconnexion
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 |