Strojové učení neuronové sítě umělá inteligence dnn. Úvod do hlubokého učení. Budoucnost hlubokého učení

Co je hluboké učení? 3. března 2016

Dnes se o módních technologiích hlubokého učení mluví jako o manně z nebes. Chápou ale řečníci, o co ve skutečnosti jde? Ale tohle nemá žádnou koncepci formální definice a kombinuje celou řadu technologií. V tomto příspěvku chci co nejpopulárněji a v podstatě vysvětlit, co se za tímto pojmem skrývá, proč je tak populární a co nám tyto technologie dávají.


Zkrátka tohle novodobý termín(deep learning) o tom, jak sestavit složitější a hlubší abstrakci (reprezentaci) z některých jednoduchých abstrakcí nehledě na to, že i ty nejjednodušší abstrakce musí sestavit sám počítač a ne člověk. Tito. Už to není jen o učení, ale o metaučení. Obrazně řečeno, počítač sám se musí naučit, jak se nejlépe učit. A ve skutečnosti je to přesně to, co termín „hluboký“ znamená. Téměř vždy se tento termín používá pro umělé neuronové sítě, které používají více než jednu skrytou vrstvu, takže formálně „hluboký“ také znamená hlubší architekturu neuronové sítě.

Zde na vývojovém snímku můžete jasně vidět, jak se hluboké učení liší od běžného učení. opakuji, Na hlubokém učení je jedinečné to, že stroj najde funkce sám (klíčové vlastnosti cokoliv, čím je nejjednodušší oddělit jednu třídu objektů od druhé) a strukturuje tyto znaky hierarchicky: jednodušší se spojují do složitějších. Níže se na to podíváme na příkladu.

Podívejme se na příklad problému s rozpoznáváním obrazu: jak to bývalo – nacpali jsme obrovský (1024×768 – asi 800 000 číselných hodnot) obrázek do běžné neuronové sítě s jednou vrstvou a sledovali, jak počítač pomalu umírá a dusí se nedostatkem paměti a neschopnosti pochopit, které pixely jsou důležité pro rozpoznávání a které ne. O účinnosti této metody nemluvě. Zde je architektura takové pravidelné (mělké) neuronové sítě.

Potom poslouchali, jak mozek rozlišuje rysy a dělá to přísně hierarchickým způsobem, a také se rozhodli z obrázků extrahovat hierarchickou strukturu. K tomu bylo nutné přidat do neuronové sítě další skryté vrstvy (vrstvy, které jsou mezi vstupem a výstupem; zhruba řečeno fáze transformace informace). Ačkoli se k tomu rozhodli téměř okamžitě, když byly vynalezeny neurony, pak se podařilo úspěšně natrénovat sítě pouze s jednou skrytou vrstvou. Tito. V zásadě existují hluboké sítě asi tak dlouho jako ty běžné, jen jsme je nemohli trénovat. co se změnilo?

V roce 2006 tento problém vyřešilo několik nezávislých výzkumníků najednou (kromě toho, že hardwarové možnosti se již dostatečně vyvinuly, objevily se poměrně výkonné grafické karty). Tito výzkumníci jsou: Geoffrey Hinton (a jeho kolega Ruslan Salakhutidinov) s technikou předběžného trénování každé vrstvy neuronové sítě pomocí omezeného Boltzmannova stroje (promiňte mi tyto termíny...), Yann LeCun s konvolučními neuronovými sítěmi a Yoshuay Bengio s kaskádovými automatickými kodéry. První dva okamžitě naverboval Google, respektive Facebook. Zde jsou dvě přednášky: jedna - Hinton, druhý - Ljakuna, ve kterém vyprávějí, co je hluboké učení. Nikdo vám o tom neřekne lépe než oni. Další cool přednáška Schmidhubera o rozvoji hlubokého učení, také jednoho z pilířů této vědy. A Hinton má také výborný kurz o neuronech.

Čeho jsou schopni ti hlubocí? neuronové sítě Teď? Jsou schopni rozpoznat a popsat předměty, dalo by se říci, že „rozumí“, co to je. Jde o rozpoznání významů.

Stačí se podívat na toto video rozpoznávání toho, co kamera vidí v reálném čase.

Jak jsem řekl, technologie hlubokého učení jsou celá skupina technologií a řešení. Několik z nich jsem již uvedl v odstavci výše, další příklad je tento rekurentní sítě, což je přesně to, co je použito ve videu výše k popisu toho, co síť vidí. Ale nejoblíbenějším zástupcem této třídy technologií jsou stále konvoluční neuronové sítě LyaKun. Jsou postaveny analogicky s principy fungování zrakové kůry kočičího mozku, ve které byly objeveny tzv. jednoduché buňky, které reagují na přímky pod různými úhly, a komplexní buňky, jejichž reakce je spojena s aktivací. určité množiny jednoduchých buněk. I když, abych byl upřímný, LaCun sám nebyl zaměřen na biologii, rozhodl se konkrétní úkol(sledujte jeho přednášky), a pak se to shodovalo.

Jednoduše řečeno, konvoluční sítě jsou sítě, kde hlavní konstrukční prvek učení je skupina (kombinace) neuronů (obvykle čtverec 3x3, 10x10 atd.), a ne jeden. A na každé úrovni sítě se takových skupin školí desítky. Síť najde kombinace neuronů, které maximalizují informace o obrázku. Na první úrovni síť extrahuje nejzákladnější, strukturálně jednoduché prvky obrazu – dalo by se říci stavební jednotky: hranice, tahy, segmenty, kontrasty. Výše jsou již stabilní kombinace prvků první úrovně a tak dále v řetězci. Rád bych ještě jednou zdůraznil hlavní rys hluboké učení: sítě samy tvoří tyto prvky a rozhodují, které z nich jsou důležitější a které ne. To je důležité, protože v oblasti strojové učení, tvorba rysů je klíčová a nyní přecházíme do fáze, kdy se počítač sám učí vytvářet a vybírat prvky. Samotný stroj identifikuje hierarchii informativních funkcí.

Takže během procesu učení (prohlížení stovek obrázků) tvoří konvoluční síť hierarchii funkcí různé úrovně hloubky. Na první úrovni mohou zvýraznit například takové prvky (odrážející kontrast, úhel, ohraničení atd.).


Na druhé úrovni to již bude prvek z prvků první úrovně. Na třetím - od druhého. Musíme tomu rozumět tento obrázek- jen ukázka. Nyní v průmyslové aplikace, takové sítě mají od 10 do 30 vrstev (úrovní).

Po natrénování takové sítě ji můžeme použít pro klasifikaci. Po zadání nějakého obrázku jako vstupu probíhají skupiny neuronů v první vrstvě přes obrázek a aktivují se v těch místech, kde je odpovídající konkrétní prvek obrazový prvek. Tito. tato síť analyzuje obrázek na části - nejprve na čáry, tahy, úhly sklonu, pak složitější části a nakonec dojde k závěru, že obrázek je z této kombinace základní prvky- toto je obličej.

Více o konvolučních sítích -

Vysvětlil, jak umělé neuronové sítě fungují a čím se liší od tradičních. počítačové programy a proč nás tento trend ještě dlouho udrží.

Co je hluboké učení?

O úspěchu hlubokého učení bylo poprvé slyšet v roce 2012 a o tři roky později o něm všichni mluví. Totéž se stalo s internetem v době investiční bubliny. A protože se nyní do neuronových sítí investuje nemalé množství, můžeme s klidem mluvit o nové bublině.

Internet bylo snadné předvést: zpočátku byl rychlý (ve srovnání s papírem) e-mail, pak barevné webové stránky dostupné na jakémkoli počítači připojeném k internetu. V hlubokém učení je všechno jinak: je tomu věnována pozornost, ale není možné předvést něco konkrétního. Co vlastně spojuje programy a programy pro rozpoznávání řeči automatický překlad, programy pro identifikaci závad na ropných a plynových zařízeních a programy pro syntézu textu popisujícího fotografie?



Tato rozmanitost není náhodná: pokud je internet pouze druh komunikace, pak hluboké neuronové sítě (DNN) jsou v podstatě nový typ programy, které jsou stejně univerzální jako tradiční počítačové programy. Tato univerzálnost byla teoreticky prokázána: neuronová síť teoreticky může nekonečně přesně aproximovat jakoukoli funkci mnoha proměnných – a také provádět výpočty ekvivalentní výpočtům Turingova stroje.

Sítě, které se musíte naučit

Informace mohou být přenášeny přes internet velmi monotónně, v jednotných balíčcích a na této myšlence je to postaveno. Ale můžete vytvářet informace a konzumovat je různými způsoby. Počítačové programy, které to dělají, jsou velmi odlišné. Neuronové sítě jsou stejné, poskytují stejnou rozmanitost zpracování.

Popsat dnes, co jsou neuronové sítě, znamená na konci padesátých let popsat, co jsou tradiční počítačové programy (a jazyk FORTRAN byl vydán v roce 1957) - pokud jste začali říkat, že počítače budou ovládat zapalování v každém autě a také promítat porno filmy na obrazovkách telefonu by vás rozesmálo.

Když vám teď řeknu, že budete mluvit s neuronem počítačová síť ve vašem tabletu a neuronová síť bude ovládat auto bez řidiče, ani tomu nebudete věřit – ale marně.

Mimochodem, „pornoobrázky“ v sociální sítě Už ho neobjevují lidé, ale samotné sítě. Ale 100 tisíc lidí na světě to dělalo a sledovalo terabajty a terabajty fotek a videí. S příchodem hlubokého učení se svět zpracování dat najednou začal měnit, a to rychle.

Na rozdíl od tradičních počítačových programů nemusí být neuronové sítě „napsány“, je třeba je „učit“. A mohou se naučit to, co je nekonečně obtížné (ne-li nemožné) implementovat pomocí tradičního softwarového inženýrství. Například neuronové sítě se již naučily rozpoznávat zvuk a video na úrovni lidí – a dokonce lépe než oni. Nebo naopak, vytvářejte zvuk a video – pokud rozumíte obrazům některých objektů vtělených do trénované hluboké neuronové sítě, stejné porozumění lze použít k vytváření obrazů těchto objektů. Syntéza hlasu, textu a obrazu se ještě nedostala na trh, ale experimenty již ukazují úspěchy, které byly v této oblasti dříve nedosažitelné. Neuronové sítě navíc dokážou nejen analyzovat data, ale také vydávat příkazy. Takže se naučili hrát hry Atari 2600, mnohé dokonce lepší než člověk a nemusely být k tomu speciálně naprogramovány.

Jak je to možné až dnes? Proč nebylo takových výsledků dosaženo již dávno, ještě před nástupem internetu? Ostatně diskuse o schopnostech neuronových sítí se vedou už od 50. let minulého století!

Jednak se ukázalo, jak učit hluboké neuronové sítě – jaká matematika tam funguje. Hluboká neuronová síť znamená síť s hloubkou více než dvou vrstev. Pokud je vrstev méně, pak mluvíme o tom o mělkém učení. Pokud je počet vrstev větší než deset, mluví se o velmi hlubokém učení, ale zatím je to vzácné. Dříve se pokoušeli učit neuronové sítě metodou pokus-omyl (neboli metoda „vědeckého šťouchání“) a takto bylo možné trénovat pouze malé sítě. Postupem času se objevilo porozumění matematice vícevrstvých neuronových sítí, bylo možné je navrhovat a přišlo pochopení, jak vytvořit nové typy sítí a zajistit jejich schopnost učit se.

Za druhé, neuronová síť funguje rychle, ale trénuje velmi pomalu, a to vyžaduje obrovské množství dat – velká data . A čím více vrstev je v neuronové síti, tím více požadavků má taková síť na výpočetní výkon během tréninku. Ve skutečnosti se donedávna dalo neuronové sítě cokoli naučit pouze na superpočítači.



Dnes se situace změnila, protože grafické karty byly připojeny k práci s neuronovými sítěmi - a to desetkrát zrychlilo jejich trénink. Ale i takové zrychlené učení často znamená mnoho hodin a dokonce dnů a někdy i týdnů výpočtů. Jedinou útěchou je, že v případě tradičního programování by řešení stejných problémů vyžadovalo nejen týdny, ale roky práce programátorů.

Jakmile je však hluboká neuronová síť natrénována, je obvykle stokrát až tisíckrát rychlejší než tradiční algoritmy. Program zabere stokrát méně BERAN na nejlepší kvalitu výsledky.

« Mistři neuronové sítě"

Neobvyklé vlastnosti těchto sítí vedly k tomu, že téměř všechny mezinárodní soutěže v analýze dat vyhrávají hluboké neuronové sítě. A pokud máte nějaký úkol analýzy dat a je tam hodně dat, pak je velká šance, že v tomto případě budou těžit i hluboké neuronové sítě.

Profese těch, kdo se zabývají neuronovými sítěmi, zatím ani nemá jméno. Pokud se na úsvitu internetu objevil pojem „webmaster“ (a vydržel pět nebo šest let), pak zatím žádná podobná profese „mistra neuronové sítě“ neexistuje. V oblasti velkých dat si takoví specialisté říkají „datoví vědci“, ale jejich práce má stále stejnou inženýrskou povahu jako práce programátorů. Inženýři měří, analyzují, navrhují, sestavují a zaměřují systémy a inženýrské nástroje. Softwarové inženýrství se liší od informatika(informatika). Je to stejné jako s neuronovými sítěmi: tato profese zatím nemá žádné jméno, ale již existují inženýři, kteří vám je pomohou vytvořit, trénovat a používat. Naštěstí pro loni rozvinutá infrastruktura pro nové povolání: univerzita školicí kurzy, desítky návodů, knih, soutěžních a tréninkových ploch, obrovské množství svobodný software. Dnes pouze v rusky mluvící komunitě hlubokého učení VKontakte

O obchodních trendech jsem se dozvěděl na velké konferenci v Kyjevě. Sobota byla plná poznatků, ve kterých jsme získali nové poznatky a známosti, získané během strávených hodin. Na konferenci byly 4 informační proudy pro business leadery, top manažery, marketéry, obchodní, HR a další specialisty. Jedním z řečníků byl ministr infrastruktury Volodymyr Omelyan, který hovořil o rozvoji Galuzie, renovaci silnic a letišť.

Dobrý den všem, vážení kolegové uživatelé iOS, pravděpodobně každý z vás pracoval se sítí a analyzoval data z JSON. Pro tento proces existuje spousta knihoven, všechny druhy nástrojů, které můžete použít. Některé z nich jsou složité a některé jednoduché. Abych byl upřímný, sám jsem JSON analyzoval ručně velmi dlouho, nedůvěřoval jsem tomuto procesu některým knihovnám třetích stran, a to mělo své výhody.

9. září 2014 při další prezentaci Apple představil vlastní systém mobilní platby— Apple Pay.

Pomocí platby Systémy Apple Platit uživatelé iPhone 6 a iPhone 6+, stejně jako majitelé nejnovějších Apple verze Watch lze nakupovat online, používat další výhody jablečný plat Pro mobilní aplikace a provádět platby pomocí technologie NFC (Near Field Communication). K autorizaci plateb se používají technologie Touch ID nebo Face ID.

Technologie nestojí a vývojové procesy se pohybují s nimi. Jestliže dříve společnosti fungovaly podle modelu „Waterfall“, nyní se například všichni snaží implementovat „Scrum“. Evoluce probíhá také v poskytování služeb vývoje softwaru. Dříve firmy poskytovaly klientům kvalitní vývoj v rámci rozpočtu, u toho se zastavily, ale nyní se o to snaží maximální užitek pro klienta a jeho podnikání, poskytování jeho odborných znalostí.

Za posledních pár let se objevilo tolik dobrých fontů, včetně těch zdarma, že jsme se rozhodli napsat pokračování toho našeho pro designéry.

Každý designér má k dispozici sadu oblíbených písem, se kterými je zvyklý pracovat a která odrážejí jeho grafický styl. Designéři říkají " Dobré fonty nikdy jich nemůže být příliš mnoho,“ ale nyní si můžeme bezpečně představit situaci, kdy se tato sada skládá pouze z volných písem.

Jak často se projektoví manažeři ocitají mezi skálou a tvrdým místem, když se snaží najít rovnováhu mezi všemi požadavky a termíny zákazníka a duševním zdravím celého týmu? Kolik nuancí je třeba vzít v úvahu, aby na obou stranách odpovědnosti byl klid a pořádek? Jak poznáte, že jste dobrý manažer nebo se nutně potřebujete zlepšit na všech frontách? Jak zjistit, ve kterých aspektech přesně jako PM zaostáváte a kde jste dobří a chytří? Přesně o tom byla další konference Code’n’Coffee.

Technologie rozpoznávání vzorů se stále více stává součástí našeho každodenního života. Firmy a instituce jej využívají k řešení nejvíce různé úkoly: od bezpečnosti po průzkum spokojenosti zákazníků. Investice do produktů na základě tuto funkci, slibují, že do roku 2021 vzrostou na 39 miliard dolarů. Zde je jen několik příkladů toho, jak se rozpoznávání vzorů používá v různých oblastech.

Umělá inteligence, neuronové sítě, strojové učení – co všechny tyto v současnosti oblíbené pojmy vlastně znamenají? Většině nezasvěcených lidí, což já sám jsem, vždy působily jako něco fantastického, ale ve skutečnosti jejich podstata leží na povrchu. Už dlouho jsem měl myšlenku psát jednoduchým jazykem o umělých neuronových sítích. Zjistěte sami a řekněte ostatním, co tato technologie je, jak funguje, zvažte její historii a vyhlídky. V tomto článku jsem se snažil nevlézt do plevele, ale mluvit o něm jednoduše a populárně slibný směr ve světě špičkových technologií.

Umělá inteligence, neuronové sítě, strojové učení – co všechny tyto v současnosti oblíbené pojmy vlastně znamenají? Většině nezasvěcených lidí, což já sám jsem, vždy působily jako něco fantastického, ale ve skutečnosti jejich podstata leží na povrchu. Dlouho jsem měl myšlenku psát jednoduchým jazykem o umělých neuronových sítích. Zjistěte sami a řekněte ostatním, co tato technologie je, jak funguje, zvažte její historii a vyhlídky. V tomto článku jsem se snažil nezalézt do plevele, ale jednoduše a s oblibou mluvit o tomto slibném směru ve světě špičkových technologií.

Trochu historie

Poprvé vznikl koncept umělých neuronových sítí (ANN) ve snaze simulovat mozkové procesy. Za první velký průlom v této oblasti lze považovat vytvoření modelu McCulloch-Pitts neuronové sítě v roce 1943. Vědci poprvé vyvinuli model umělého neuronu. Navrhli také návrh sítě těchto prvků k provedení logické operace. Ale co je nejdůležitější, vědci to dokázali podobná síť schopný se učit.

Další důležitý krok Donald Hebb vyvinul v roce 1949 první algoritmus pro výpočet ANN, který se stal základním na několik dalších desetiletí. V roce 1958 Frank Rosenblatt vyvinul parceptron, systém, který napodobuje mozkové procesy. Svého času tato technologie neměla obdoby a je stále základní v neuronových sítích. V roce 1986 téměř současně, nezávisle na sobě, američtí a sovětští vědci výrazně zlepšili základní metodu výcviku vícevrstvého perceptronu. V roce 2007 zaznamenaly neuronové sítě znovuzrození. Britský počítačový vědec Geoffrey Hinton nejprve vyvinul algoritmus hlubokého učení pro vícevrstvé neuronové sítě, který se nyní například používá k ovládání bezpilotních vozidel.

Krátce o tom hlavním

V obecném slova smyslu neuronové sítě jsou matematické modely, fungující na principu sítí nervových buněk v těle zvířete. ANN lze implementovat do programovatelných i hardwarových řešení. Pro snazší pochopení lze neuron chápat jako buňku, která má mnoho vstupních otvorů a jeden výstupní otvor. Jak se více příchozích signálů zformuje do výstupního signálu, je určeno výpočtovým algoritmem. Ke každému neuronovému vstupu jsou dodávány efektivní hodnoty, které jsou následně distribuovány podél interneuronových spojení (synopse). Synapse mají jeden parametr – váhu, díky kterému se mění vstupní informace při přechodu z jednoho neuronu na druhý. Princip fungování neuronových sítí si nejsnáze představíme mícháním barev. Modrý, zelený a červený neuron mají různé váhy. Informace o neuronu, jehož hmotnost je větší, bude dominantní v dalším neuronu.

Samotná neuronová síť je systémem mnoha takových neuronů (procesorů). Samostatně jsou tyto procesory poměrně jednoduché (mnohem jednodušší než a osobní počítač), ale když jsou připojeny do velkého systému, neurony jsou schopny provádět velmi složité úkoly.

V závislosti na oblasti použití lze neuronovou síť interpretovat různými způsoby, například z hlediska strojového učení je ANN metoda rozpoznávání vzorů. Z matematického hlediska se jedná o víceparametrový problém. Z pohledu kybernetiky - model adaptivního řízení robotiky. Pro umělou inteligenci je ANN základní komponentou pro modelování přirozené inteligence pomocí výpočetních algoritmů.

Hlavní výhodou neuronových sítí oproti konvenčním výpočetním algoritmům je jejich schopnost učit se. V obecném slova smyslu je učení o nalezení správných vazebných koeficientů mezi neurony, stejně jako o sumarizaci dat a identifikaci složitých závislostí mezi vstupními a výstupními signály. Úspěšné trénování neuronové sítě ve skutečnosti znamená, že systém bude schopen identifikovat správný výsledek na základě dat, která nejsou v trénovací sadě.

Aktuální situace

A bez ohledu na to, jak slibná může být tato technologie, ANN jsou stále velmi daleko od schopností lidského mozku a myšlení. Neuronové sítě se však již používají v mnoha oblastech lidské činnosti. Zatím nejsou schopni vysoce inteligentních rozhodnutí, ale dokážou nahradit člověka tam, kde byl dříve potřeba. Mezi četnými oblastmi použití ANN můžeme zaznamenat: vytváření samoučících se systémů výrobní procesy, bez posádky vozidel, systémy rozpoznávání obrazu, inteligentní bezpečnostní systémy, robotika, systémy sledování kvality, hlasová rozhraní interakce, analytické systémy a mnoho dalšího. Toto rozšířené používání neuronových sítí je mimo jiné způsobeno vznikem různými způsoby urychlení školení ANN.

Dnes je trh s neuronovými sítěmi obrovský – miliardy a miliardy dolarů. Jak ukazuje praxe, většina technologií neuronových sítí na celém světě se od sebe jen málo liší. Využití neuronových sítí je však velmi nákladná činnost, kterou si ve většině případů může dovolit jedině velké společnosti. Vývoj, školení a testování neuronových sítí vyžaduje velké množství výpočetní výkon, je zřejmé, že velcí hráči na IT trhu toho mají dostatek. Mezi hlavní společnosti vedoucí vývoj v této oblasti patří divize Google DeepMind, divize Microsoft Research, IBM, Facebook a Baidu.

To vše je samozřejmě dobré: neuronové sítě se rozvíjejí, trh roste, ale zatím hlavním úkolem stále nevyřešeno. Lidstvo nedokázalo vytvořit technologii, která by se dokonce blížila schopnostem lidského mozku. Podívejme se na hlavní rozdíly mezi lidským mozkem a umělými neuronovými sítěmi.

Proč jsou neuronové sítě stále daleko od lidského mozku?

Nejdůležitější rozdíl, který radikálně mění princip a účinnost systému, je jiný převod signály v umělých neuronových sítích a v biologické síti neuronů. Faktem je, že v ANN přenášejí neurony hodnoty, které jsou skutečnými hodnotami, to znamená čísla. V lidský mozek Jsou vysílány pulsy s pevnou amplitudou a tyto pulsy jsou téměř okamžité. To vede k řadě výhod lidské sítě neuronů.

Za prvé, komunikační linky v mozku jsou mnohem efektivnější a ekonomičtější než ty v ANN. Za druhé, pulzní obvod zajišťuje jednoduchost implementace technologie: místo složitých výpočetních mechanismů stačí použít analogové obvody. V konečném důsledku jsou pulzní sítě imunní vůči rušení zvuku. Reálná čísla podléhají šumu, což zvyšuje pravděpodobnost chyb.

Sečteno a podtrženo

Samozřejmě v poslední desetiletí Ve vývoji neuronových sítí nastal skutečný boom. Je to způsobeno především tím, že tréninkový proces ANN se stal mnohem rychlejším a jednodušším. Aktivně se také začaly rozvíjet tzv. „předtrénované“ neuronové sítě, které mohou proces zavádění technologie výrazně urychlit. A pokud je příliš brzy na to říci, zda neuronové sítě budou jednoho dne schopny plně reprodukovat schopnosti lidského mozku, pravděpodobnost, že v příštím desetiletí budou ANN schopny nahradit člověka ve čtvrtině stávajících profesí, se stále více stává pravdou. .

Pro ty, kteří chtějí vědět více

  • Velká nervová válka: Co Google skutečně chystá
  • Jak by kognitivní počítače mohly změnit naši budoucnost

Dnes je graf jedním z nejpřijatelnějších způsobů, jak popsat modely vytvořené v systému strojového učení. Tyto výpočtové grafy jsou složeny z vrcholů neuronů spojených hranami synapse, které popisují spojení mezi vrcholy.

Na rozdíl od skalárního centrálního nebo vektorového grafického procesoru, IPU, nový typ procesoru určený pro strojové učení, umožňuje konstrukci takových grafů. Počítač, který je určen ke správě grafů - dokonalé auto Pro výpočetní modely grafy vytvořené v rámci strojového učení.

Jeden z nejvíce jednoduchými způsoby Způsob, jak popsat proces strojové inteligence, je vizualizovat jej. Vývojový tým Graphcore vytvořil kolekci takových obrázků, které se zobrazují na IPU. Vycházelo se z software Topol, který vizualizuje práci umělé inteligence. Výzkumníci z této společnosti také zjistili, proč hluboké sítě vyžadují tolik paměti a jaká řešení existují k vyřešení problému.

Poplar obsahuje grafický kompilátor, který byl postaven od základů k převodu standardních operací strojového učení do vysoce optimalizovaného aplikačního kódu IPU. Umožňuje vám shromažďovat tyto grafy dohromady pomocí stejného principu, jakým se shromažďují POPNN. Knihovna obsahuje sadu různé typy vrcholy pro zobecněná primitiva.

Grafy jsou paradigmatem, na kterém je založen veškerý software. V Poplaru vám grafy umožňují definovat proces výpočtu, kde vrcholy provádějí operace a hrany popisují vztah mezi nimi. Chcete-li například sečíst dvě čísla dohromady, můžete definovat vrchol se dvěma vstupy (čísla, která chcete sečíst), některými výpočty (funkce pro sečtení dvou čísel) a výstupem (výsledek).

Operace s vrcholy jsou obvykle mnohem složitější než ve výše popsaném příkladu. Často jsou odhodlaní malé programy, nazývané kódety ( kódová jména). Grafická abstrakce je atraktivní, protože nečiní žádné předpoklady o struktuře výpočtu a rozděluje výpočet na komponenty, které může IPU používat k provozu.

Poplar používá tuto jednoduchou abstrakci k vytváření velmi velkých grafů, které jsou reprezentovány jako obrázky. Softwarové generování grafu znamená, že jej můžeme přizpůsobit konkrétním výpočtům potřebným k zajištění maximálního zabezpečení efektivní využití zdroje IPU.

Kompilátor překládá standardní operace, používané v systémech strojového učení, do vysoce optimalizovaného aplikačního kódu IPU. Překladač grafů vytvoří meziobraz výpočtový graf, který je nasazen na jednom nebo více zařízeních IPU. Kompilátor dokáže zobrazit tento výpočtový graf, takže aplikace napsaná na úrovni rámce neuronové sítě zobrazí obrázek výpočtového grafu, který běží na IPU.


Graf celý cyklusŠkolení AlexNet vpřed a vzad

Grafický kompilátor Poplar převedl popis AlexNet do výpočtového grafu 18,7 milionů vrcholů a 115,8 milionů hran. Jasně viditelné shlukování je výsledkem silného propojení mezi procesy v každé vrstvě sítě s více procesy snadná komunikace mezi úrovněmi.

Dalším příkladem je jednoduchá síť s plné připojení, vyškolený na MNIST - jednoduché vytáčeníúdaje pro počítačové vidění, jakési „Ahoj světe“ ve strojovém učení. Jednoduchá síť prozkoumat tento soubor dat pomáhá porozumět grafům, které jsou řízeny aplikacemi Poplar. Integrací knihoven grafů s frameworky, jako je TensorFlow, společnost poskytuje jeden z nejjednodušších způsobů použití IPU v aplikacích strojového učení.

Poté, co byl graf vytvořen pomocí kompilátoru, je třeba jej spustit. To je možné pomocí Graph Engine. Příklad ResNet-50 demonstruje jeho fungování.


Graf ResNet-50

Architektura ResNet-50 umožňuje vytváření hlubokých sítí z opakujících se oddílů. Procesor musí tyto sekce definovat pouze jednou a znovu je volat. Například shluk úrovně conv4 se provede šestkrát, ale do grafu se namapuje pouze jednou. Obrázek také demonstruje rozmanitost tvarů konvolučních vrstev, protože každá z nich má graf vytvořený podle přirozené formy výpočtu.

Engine vytváří a řídí provádění modelu strojového učení pomocí grafu generovaného kompilátorem. Po nasazení Graph Engine monitoruje a reaguje na IPU nebo zařízení používaná aplikacemi.

Obrázek ResNet-50 ukazuje celý model. Na této úrovni je obtížné identifikovat spojení mezi jednotlivými vrcholy, proto se vyplatí podívat se na zvětšené obrázky. Níže jsou uvedeny některé příklady sekcí v rámci vrstev neuronové sítě.

Proč hluboké sítě potřebují tolik paměti?

Velké množství obsazené paměti je jednou z nejvíce velké problémy hluboké neuronové sítě. Vědci se snaží bojovat s omezenými propustnost Zařízení DRAM, které musí moderní systémy používat k ukládání obrovského množství závaží a aktivací v hluboké neuronové síti.

Architektury byly navrženy pomocí procesorových čipů určených pro sekvenční zpracování a optimalizaci DRAM pro paměti s vysokou hustotou. Rozhraní mezi těmito dvěma zařízeními je úzkým hrdlem, které zavádí omezení šířky pásma a výrazně zvyšuje spotřebu energie.

Přestože ještě úplně nerozumíme lidskému mozku a tomu, jak funguje, obecně se má za to, že neexistuje velké samostatné úložiště paměti. Předpokládá se, že funkce dlouhodobé a krátkodobé paměti v lidském mozku je zabudována do struktury neuronů + synapsí. Dokonce i jednoduché organismy, jako jsou červi, s neurální mozkovou strukturou o něco více než 300 neuronů, mají určitý stupeň paměťové funkce.

Zabudování paměti do konvenčních procesorů je jedním ze způsobů, jak obejít problém s úzkým hrdlem paměti, uvolnit obrovskou šířku pásma a zároveň spotřebovat mnohem méně energie. Paměť na čipu je však drahá a není navržena pro skutečně velké množství paměti, které je připojeno k CPU a GPU, které se v současnosti používají k trénování a nasazení hlubokých neuronových sítí.

Je tedy užitečné podívat se na to, jak se dnes paměť používá v CPU a systémech hlubokého učení na bázi GPU, a zeptat se sami sebe: proč vyžadují tak velká paměťová zařízení, když lidský mozek bez nich funguje dobře?

Neuronové sítě potřebují paměť, aby mohly ukládat vstupní data, váhy a aktivační funkce, když se vstup šíří sítí. Při učení musí být aktivace na vstupu zachována, dokud ji nelze použít k výpočtu chyb ve výstupních gradientech.

Například 50vrstvá síť ResNet má asi 26 milionů váhových parametrů a počítá 16 milionů dopředných aktivací. Pokud k uložení každé váhy a aktivace použijete 32bitový float, bude to vyžadovat asi 168 MB místa. Použitím nižší hodnoty přesnosti pro uložení těchto hmotností a aktivací bychom mohli tento požadavek na úložiště snížit na polovinu nebo dokonce zčtyřnásobit.

Vážný problém k problému s pamětí dochází, protože GPU spoléhají na data reprezentovaná jako husté vektory. Proto mohou používat jedno instrukční vlákno (SIMD) k dosažení vysoké výpočetní hustoty. CPU používá podobné vektorové jednotky pro vysoce výkonné výpočty.

GPU mají šířku synapse 1024 bitů, takže používají 32bitová data s plovoucí desetinnou čárkou, takže je často rozdělují do paralelních mini-dávek 32 vzorků, aby vytvořily vektory 1024bitových dat. Tento přístup k organizování vektorového paralelismu zvyšuje počet aktivací 32krát a potřebu místní úložiště s kapacitou větší než 2 GB.

GPU a další stroje navržené pro maticovou algebru také podléhají zatížení paměti v důsledku vah nebo aktivací neuronové sítě. GPU nemohou efektivně provádět malé konvoluce používané v hlubokých neuronových sítích. Proto se k převodu těchto konvolucí na matice-maticové multiplikace (GEMM) používá transformace zvaná „redukce“, pomocí které grafické akcelerátory dokáže efektivně zvládnout.

Dodatečná paměť je také vyžadována pro uložení vstupních dat, dočasných hodnot a programových instrukcí. Měření využití paměti při tréninku ResNet-50 na HPC GPU ukázal, že vyžaduje více než 7,5 GB místní paměti DRAM.

Někdo by si mohl myslet, že nižší výpočetní přesnost může snížit množství požadované paměti, ale není tomu tak. Přepnutím datových hodnot na poloviční přesnost pro váhy a aktivace vyplníte pouze polovinu šířky SIMD vektoru, čímž vyplýtváte polovinu dostupných výpočetních zdrojů. Chcete-li to kompenzovat, když na GPU přepnete z plné přesnosti na poloviční, budete muset zdvojnásobit velikost mini-dávky, abyste si vynutili dostatek datového paralelismu k využití všech dostupných výpočtů. Takže přechod na nižší hmotnosti přesnosti a aktivace na GPU stále vyžaduje více než 7,5 GB dynamická paměť s volným přístupem.

S tolika daty, která je třeba uložit, je prostě nemožné vše vměstnat do GPU. Každá vrstva konvoluční neuronové sítě potřebuje uložit stav externí DRAM, načíst další síťovou vrstvu a poté načíst data do systému. V důsledku toho je rozhraní již omezeno šířkou pásma a latencí paměti. externí paměť trpí další zátěží neustálý restart váhy a ukládání a načítání aktivačních funkcí. To výrazně zpomaluje tréninkový čas a výrazně zvyšuje spotřebu energie.

Existuje několik způsobů, jak tento problém vyřešit. Za prvé, operace, jako jsou aktivační funkce, lze provádět „na místě“, což umožňuje přepisování vstupních dat přímo na výstup. Tedy, existující paměť lze znovu použít. Za druhé, příležitost pro znovu použít paměť lze získat analýzou závislosti dat mezi operacemi v síti a přidělením stejné paměti operacím, které ji v daném okamžiku nevyužívají.

Druhý přístup je zvláště účinný, když lze celou neuronovou síť analyzovat v době kompilace za účelem vytvoření pevně přidělené paměti, protože režie správy paměti je snížena téměř na nulu. Ukázalo se, že kombinace těchto metod může snížit využití paměti neuronové sítě dvakrát až třikrát.
Třetí významný přístup nedávno objevil tým Baidu Deep Speech. Přihlásili se různé metodyúspora paměti, aby se dosáhlo 16x snížení spotřeby paměti aktivačních funkcí, což jim umožnilo trénovat sítě se 100 vrstvami. Dříve se stejným množstvím paměti mohli trénovat sítě s devíti vrstvami.

Kombinace paměťových a procesních zdrojů do jednoho zařízení má významný potenciál zlepšit výkon a efektivitu konvolučních neuronových sítí, stejně jako dalších forem strojového učení. Mezi pamětí a výpočetními zdroji lze provádět kompromisy, aby bylo dosaženo rovnováhy funkcí a výkonu v systému.

Neuronové sítě a znalostní modely v jiných metodách strojového učení lze považovat za matematické grafy. V těchto grafech je soustředěno obrovské množství paralelismu. Paralelní procesor navržený pro využití paralelismu v grafech se nespoléhá na mini-dávku a může výrazně snížit množství potřebného místního úložiště.

Současné výsledky výzkumu ukázaly, že všechny tyto metody mohou výrazně zlepšit výkon neuronových sítí. Moderní GPU a CPU mají velmi omezenou vnitřní paměť, celkem jen několik megabajtů. Nové architektury procesorů speciálně navržené pro strojové učení vyvažují paměť a výpočet na čipu a poskytují výrazné zlepšení výkonu a efektivity oproti současným technologiím. centrální procesory a grafické akcelerátory.




Nahoru