co jsou konvoluční neuronové sítě (CNN)?
Tento článek je součástí Demystifikací AI, řadu příspěvků, které (zkuste) disambiguate žargonu a mýty, které obklopují AI.
Od roku 1950, prvních dnů umělé inteligence, počítačové vědci se snaží stavět počítače, které může mít smysl pro vizuální data., V následujících desetiletích vidělo pole, které se stalo známým jako počítačové vidění, postupné pokroky. V roce 2012 došlo k kvantovému skoku, když skupina vědců z University of Toronto vyvinula model AI, který s velkou rezervou překonal nejlepší algoritmy rozpoznávání obrazu.
systém AI, který se stal známým jako AlexNet (pojmenovaný podle svého hlavního tvůrce Alexe Křižhevského), vyhrál soutěž ImageNet computer vision v roce 2012 s úžasnou přesností 85 procent. Běžec zaznamenal v testu skromných 74 procent.,
v srdci AlexNet byla konvoluční neuronová síť (CNN), specializovaný typ umělé neuronové sítě, která zhruba napodobuje systém lidského vidění. V posledních letech se CNNs stalo klíčovým pro mnoho aplikací pro počítačové vidění. Zde je to, co potřebujete vědět o historii a fungování CNNs.
stručná historie konvoluční neuronové sítě
Konvoluční neuronové sítě, také volal ConvNets, byly poprvé zavedeny v roce 1980 tím, Yann LeCun, postgraduální počítačové vědy výzkumník., LeCun postavil na práci Kunihiko Fukušima, japonského vědce, který před několika lety vynalezl neokognitron, velmi základní neuronovou síť pro rozpoznávání obrazu.
raná verze CNNs, nazvaná LeNet (po LeCun), mohla rozpoznat ručně psané číslice. CNNs našla mezeru na trhu v bankovních a poštovních službách a bankovnictví, kde četli poštovní směrovací čísla na obálkách a číslech při kontrolách.
Ale i přes jejich vynalézavost, ConvNets zůstal na okraji počítačového vidění a umělé inteligence, protože se potýkají s vážným problémem: nemohou měřítku., CNNs potřeboval spoustu dat a vypočítat zdroje pro efektivní práci pro velké obrázky. V té době byla tato technika použitelná pouze na obrázky s nízkým rozlišením.
v roce 2012 AlexNet ukázal, že možná nastal čas vrátit se k hlubokému učení, odvětví AI, které používá vícevrstvé neuronové sítě. Dostupnost velkých souborů dat, a to ImageNet dataset s miliony označeny obrázky, a obrovské výpočetní zdroje povoleno vědci vytvořit komplexní CNNs, které by mohl provádět počítačové vidění úkoly, které byly dříve nemožné.
jak CNNs funguje?,
konvoluční neuronové sítě se skládají z více vrstev umělých neuronů. Umělé neurony, hrubá imitace jejich biologických protějšků, jsou matematické funkce, které vypočítávají vážený součet více vstupů a vydávají aktivační hodnotu.
chování každého neuronu je definován jeho váhy., Když jsou krmeny hodnotami Pixelů, umělé neurony CNN vybírají různé vizuální rysy.
Když zadáte obrázek do Konvntu, každá z jeho vrstev vygeneruje několik aktivačních map. Aktivační mapy zvýrazňují příslušné funkce obrázku. Každý z neuronů bere záplatu pixelů jako vstup, znásobuje jejich barevné hodnoty svými váhami, shrnuje je a vede je aktivační funkcí.
první (nebo spodní) vrstva CNN obvykle detekuje základní funkce, jako jsou horizontální, vertikální a diagonální hrany., Výstup první vrstvy je přiváděn jako vstup další vrstvy, která extrahuje složitější funkce, jako jsou rohy a kombinace okrajů. Jak se pohybujete hlouběji do konvoluční neuronové sítě, vrstvy začnou detekovat funkce vyšší úrovně, jako jsou objekty, tváře a další.
operace násobení hodnot pixelů váhami a jejich sčítání se nazývá „konvoluce“ (odtud název konvoluční neuronová síť). CNN se obvykle skládá z několika konvolučních vrstev, ale obsahuje také další komponenty. Konečná vrstva CNN je klasifikační vrstva, která bere výstup konečné konvoluční vrstvy jako vstup (pamatujte, že vyšší konvoluční vrstvy detekují složité objekty).,
v závislosti na aktivaci map konečné konvoluční vrstva, klasifikace vrstvy výstupy sadu důvěru skóre (hodnoty mezi 0 a 1), které určují, jak pravděpodobné, že obraz je, že patří do „třídy.“Například, pokud máte Konvnet, který detekuje kočky, psy a koně, výstup konečné vrstvy je možnost, že vstupní obraz obsahuje některý z těchto zvířat.,
Školení konvoluční neuronové sítě
Jednou z velkých výzev rozvojových CNNs je nastavení vah jednotlivých neuronů extrahovat správné funkce z obrázků. Proces úpravy těchto závaží se nazývá“ trénink “ neuronové sítě.
na začátku CNN začíná náhodnými váhami., Během tréninku vývojáři poskytují neuronové síti velkou datovou sadu obrázků komentovaných odpovídajícími třídami (kočka, pes, kůň atd.). Konvnet zpracovává každý obrázek s jeho náhodnými hodnotami a poté porovnává jeho výstup se správným štítkem obrázku. Pokud síť je výstup neodpovídá popisu—což je pravděpodobně případ na začátku tréninkového procesu—to dělá malou úpravu vah jejích neuronů tak, že příště to vidí stejný obraz, jeho výstup bude trochu blíže k správnou odpověď.,
opravy se provádějí technikou zvanou backpropagation (nebo backprop). Backpropagation v podstatě optimalizuje proces ladění a usnadňuje síti rozhodnout, které jednotky upravit místo náhodných oprav.
každý běh celého souboru tréninkových dat se nazývá “ epocha.“Konvnet prochází během tréninku několika epochami a upravuje své váhy v malých množstvích. Po každé epoše se neuronová síť stává o něco lepší při klasifikaci tréninkových obrazů., Jak se CNN zlepšuje, úpravy, které provádí, se zmenšují a zmenšují. V určitém okamžiku se síť „sbližuje“, což znamená, že se v podstatě stává tak dobrou, jak jen může.
po tréninku CNN vývojáři používají testovací datový soubor k ověření jeho přesnosti. Testovací datový soubor je sada značených obrázků, které nejsou součástí procesu školení. Každý obrázek je veden přes Konvnet a výstup je porovnán se skutečným štítkem obrazu. Testovací datová sada v podstatě vyhodnocuje, jak dobře se neuronová síť stala při klasifikaci obrázků, které dosud neviděla.,
Pokud CNN boduje dobře na svých tréninkových datech, ale na testovacích datech je špatné skóre, říká se, že byl „přepočítán.“K tomu obvykle dochází, když v tréninkových datech není dostatek rozmanitosti nebo když Konvnet prochází příliš mnoha epochami na datovém souboru školení.
úspěch konvolučních neuronových sítí je do značné míry způsoben dostupností obrovských obrazových datových souborů vyvinutých v posledním desetiletí. ImageNet, soutěž zmíněná na začátku tohoto článku, získala svůj titul z datového souboru jmenovce s více než 14 miliony označených obrázků., Existují další specializovanější datové sady, jako je MNIST, databáze 70 000 obrázků ručně psaných číslic.
nemusíte však trénovat každou konvoluční neuronovou síť na milionech obrázků. V mnoha případech můžete použít předstíraný model, jako je Alexnet nebo Microsoft ResNet, a finetune jej pro další specializovanější aplikaci. Tento proces se nazývá přenosové učení, ve kterém je vyškolená neuronová síť rekvalifikována menší soubor nových příkladů.,
meze konvolučních neuronových sítí
navzdory jejich síle a složitosti jsou konvoluční neuronové sítě v podstatě stroji pro rozpoznávání vzorů. Mohou využít masivních výpočetních zdrojů, aby prozkoumali malé a nenápadné vizuální vzory, které by mohly zůstat bez povšimnutí lidskému oku. Ale pokud jde o pochopení významu obsahu obrazů, fungují špatně.
zvažte následující obrázek. Dobře vyškolený Konvnet vám řekne, že je to obraz vojáka, dítěte a americké vlajky., Ale člověk může dát dlouhý popis scény, a mluvit o vojenské služby, zájezdy do zahraničí, pocit, touha po domovu, radost ze shledání s rodinou, atd. Umělé neuronové sítě nemají o těchto pojmech žádnou představu.
Tyto limity stávají více patrné v praktické aplikace konvoluční neuronové sítě. Například CNNs jsou nyní široce používány k moderování obsahu v sítích sociálních médií., Ale navzdory rozsáhlým úložištím obrázků a videí, na kterých jsou vyškoleni, se stále snaží detekovat a blokovat nevhodný obsah. V jednom případě Facebook obsahově moderování AI zakázal fotografii 30.000 let staré sochy jako nahotu.
neuronové sítě se také začnou rozbít, jakmile se trochu vymknou ze svého kontextu. Několik studií ukázaly, že CNNs vyškoleni na ImageNet a další populární datové sady nepodaří detekovat předměty, když je vidí za různých světelných podmínek a z nových úhlů.,
nedávná studie vědců z laboratoře MIT-IBM Watson AI upozorňuje na tyto nedostatky. Zavádí také ObjectNet, dataset, který lépe představuje různé nuance toho, jak jsou objekty vidět v reálném životě. CNNs nevyvíjejí mentální modely, které lidé mají o různých objektech a jejich schopnosti představit si tyto objekty v dříve neviditelných kontextech.
Další problém s konvoluční neuronové sítě je jejich neschopnost pochopit vztahy mezi různými objekty. Zvažte následující obrázek, který je známý jako „Bongard problém,“ pojmenovaný po svém vynálezci, ruský počítačový vědec Michail Moiseevich Bongard. Problémy Bongard vám představí dvě sady obrázků (šest vlevo a šest vpravo) a musíte vysvětlit klíčový rozdíl mezi oběma sadami., Například v níže uvedeném příkladu obrázky v levé sadě obsahují jeden objekt a obrázky v pravé sadě obsahují dva objekty.
je pro člověka snadné vyvodit takové závěry z tak malého množství vzorků. Pokud vám ukážu tyto dvě sady a poté Vám poskytnu nový obrázek, budete se moci rychle rozhodnout, zda by měl jít do levé nebo pravé sady.
Ale je tu ještě žádné konvoluční neuronové sítě, který může vyřešit Bongard problémy s tak málo trénovacích příkladů. V jedné studii provedené v roce 2016, vědci AI trénoval CNN na 20.000 Bongard vzorky a testovány na 10.000 více. Výkon CNN byl mnohem nižší než u průměrných lidí.
zvláštnosti ConvNets také je činí zranitelnými vůči sporné útoky, odchylky vstupních dat, že bez povšimnutí pro lidské oko, ale ovlivňují chování neuronové sítě., Sporné útoky se staly hlavním zdrojem obav jako hluboké učení a zejména CNNs se staly nedílnou součástí mnoha kritických aplikací, jako jsou samořídící auta.
znamená to, že CNNs jsou k ničemu?, Navzdory limitům konvolučních neuronových sítí však nelze popřít, že způsobily revoluci v umělé inteligenci. Dnes se CNNs používá v mnoha aplikacích počítačového vidění, jako je rozpoznávání obličeje, vyhledávání a úpravy obrázků, rozšířená realita a další. V některých oblastech, jako je lékařské zpracování obrazu, mohou dobře vyškolené Konvnty dokonce překonat lidské odborníky při zjišťování relevantních vzorů.,
pokroky v konvoluční neuronové sítě ukazují, že naše úspěchy jsou pozoruhodné a užitečné, ale stále jsme velmi daleko od replikace klíčových složek lidské inteligence.