Çfarë është të mësuarit e thellë. Rrjetet nervore dhe mësimi i thellë: e ardhmja është afër

Çfarë është të mësuarit e thellë? 3 mars 2016

Në ditët e sotme ata flasin për teknologjitë në modë të të mësuarit të thellë sikur të ishte mana nga parajsa. Por a e kuptojnë folësit se çfarë është në të vërtetë? Por kjo nuk ka asnjë koncept përkufizimi formal, dhe kombinon një grumbull të tërë teknologjish. Në këtë postim, dua të shpjegoj sa më gjerësisht dhe në thelb se çfarë qëndron pas këtij termi, pse është kaq popullor dhe çfarë na japin këto teknologji.


Shkurtimisht, ky term i ri (të mësuarit e thellë) ka të bëjë me atë se si të grumbullohet një abstraksion (përfaqësim) më kompleks dhe më i thellë nga disa abstraksione të thjeshta. pavarësisht se edhe abstraksionet më të thjeshta duhet të grumbullohen nga vetë kompjuteri, jo nga një person. Ato. Nuk ka të bëjë më vetëm me të mësuarit, por me meta-mësimin. Në mënyrë figurative, vetë kompjuteri duhet të mësojë se si të mësojë më mirë. Dhe, në fakt, kjo është pikërisht ajo që nënkupton termi "thellë". Pothuajse gjithmonë, ky term zbatohet për rrjetet nervore artificiale që përdorin më shumë se një shtresë të fshehur, kështu që zyrtarisht "thellë" nënkupton gjithashtu një arkitekturë më të thellë të rrjetit nervor.

Këtu në rrëshqitjen e zhvillimit mund të shihni qartë se sa ndryshon të mësuarit e thellë nga të mësuarit e zakonshëm. E përsëris, Ajo që është unike për të mësuarit e thellë është se makina i gjen vetë veçoritë(tiparet kryesore të diçkaje me të cilat është më e lehtë të ndash një klasë objektesh nga një tjetër) dhe i strukturon këto shenja në mënyrë hierarkike: ato më të thjeshtat kombinohen në më komplekse. Më poshtë do ta shikojmë këtë me një shembull.

Le të shohim një shembull të një detyre për njohjen e imazhit: më parë, ata futën një të madhe në një rrjet nervor të rregullt me ​​një shtresë (1024×768 - rreth 800,000 vlerat numerike) fotoja dhe shikoi kompjuterin të vdesë ngadalë, duke u mbytur nga mungesa e kujtesës dhe pamundësia për të kuptuar se cilët pikselë janë të rëndësishëm për njohjen dhe cilët jo. Për të mos përmendur efektivitetin e kësaj metode. Këtu është arkitektura e një rrjeti nervor kaq të rregullt (të cekët).

Pastaj ata dëgjuan se si truri i dallon tiparet, dhe ai e bën këtë në një mënyrë strikte hierarkike, dhe ata gjithashtu vendosën të nxjerrin një strukturë hierarkike nga fotografitë. Për ta bërë këtë, ishte e nevojshme të shtoheshin më shumë shtresa të fshehura (shtresa që ndodhen midis hyrjes dhe daljes; përafërsisht, fazat e transformimit të informacionit) në rrjetin nervor. Edhe pse ata vendosën ta bënin këtë pothuajse menjëherë kur u shpikën neuronet, atëherë rrjetet me vetëm një shtresë të fshehur u trajnuan me sukses. Ato. Në parim, rrjetet e thella kanë ekzistuar për aq kohë sa ato të rregullta, thjesht nuk mund t'i trajnonim. Çfarë ka ndryshuar?

Në vitin 2006, disa studiues të pavarur e zgjidhën këtë problem menjëherë (përveç kësaj, aftësitë e harduerit tashmë ishin zhvilluar mjaftueshëm, u shfaqën karta video mjaft të fuqishme). Këta studiues janë: Geoffrey Hinton (dhe kolegu i tij Ruslan Salakhutidinov) me teknikën e trajnimit paraprak të çdo shtrese të një rrjeti nervor me një makinë Boltzmann të kufizuar (më falni për këto terma...), Yann LeCun me rrjete nervore konvolucioniste, dhe Yoshuay Bengio me autoenkoder të kaskadës. Dy të parët u rekrutuan menjëherë nga Google dhe Facebook, përkatësisht. Këtu janë dy leksione: një - Hinton, tjetra - Lyakuna, në të cilën ata tregojnë se çfarë është të mësuarit e thellë. Askush nuk mund t'ju tregojë për këtë më mirë se ata. Një tjetër i lezetshëm leksion Schmidhuber për zhvillimin e të mësuarit të thellë, gjithashtu një nga shtyllat e kësaj shkence. Dhe Hinton gjithashtu ka një kurs të shkëlqyer në neuronet.

Çfarë mund të bëjnë tani rrjetet e thella nervore? Ata janë në gjendje të njohin dhe të përshkruajnë objekte mund të thuhet se "kuptojnë" se çfarë është. Ka të bëjë me njohjen e kuptimeve.

Thjesht shikoni këtë video të njohjes në kohë reale të asaj që shikon kamera.

Siç thashë tashmë, teknologjitë e të mësuarit të thellë janë një grup i tërë teknologjish dhe zgjidhjesh. Unë kam renditur tashmë disa prej tyre në paragrafin e mësipërm, një shembull tjetër janë rrjetet e përsëritura, të cilat përdoren saktësisht në videon e mësipërme për të përshkruar atë që sheh rrjeti. Por përfaqësuesi më i njohur i teknologjisë të kësaj klase- këto janë ende rrjete nervore konvolucionare LyaKun. Ato janë ndërtuar në analogji me parimet e funksionimit të korteksit vizual të trurit të maces, në të cilin u zbuluan të ashtuquajturat qeliza të thjeshta që u përgjigjen vijave të drejta nën kënde të ndryshme, dhe komplekse - reagimi i të cilave shoqërohet me aktivizimin e një grupi të caktuar qelizash të thjeshta. Megjithëse, për të qenë i sinqertë, vetë LaCun nuk ishte i fokusuar në biologji, ai vendosi detyrë specifike(shikoni leksionet e tij), dhe më pas përkoi.

E thënë shumë thjesht, rrjetet konvolucionale janë rrjete ku elementi kryesor strukturor i të mësuarit është një grup (kombinim) neuronesh (zakonisht një katror 3x3, 10x10, etj.), dhe jo vetëm një. Dhe në çdo nivel të rrjetit, dhjetëra grupe të tilla trajnohen. Rrjeti gjen kombinime të neuroneve që maksimizojnë informacionin rreth imazhit. Në nivelin e parë, rrjeti nxjerr elementet më themelore, strukturore të thjeshta të figurës - mund të thuhet, njësi ndërtimi: kufij, goditje, segmente, kontraste. Më lart janë tashmë kombinime të qëndrueshme të elementeve të nivelit të parë, e kështu me radhë deri në zinxhir. Do të doja të theksoja edhe një herë veçmas veçorinë kryesore të të mësuarit të thellë: vetë rrjetet formojnë këto elemente dhe vendosin se cilat prej tyre janë më të rëndësishme dhe cilat jo. Kjo është e rëndësishme, sepse në fushën e mësimit të makinerive, krijimi i veçorive është kyç dhe tani po kalojmë në fazën kur vetë kompjuteri mëson të krijojë dhe përzgjedhë veçori. Vetë makina identifikon një hierarki të veçorive informative.

Pra, gjatë procesit të të mësuarit (duke parë qindra foto), rrjeti konvolucional formon një hierarki tiparesh të niveleve të ndryshme të thellësisë. Në nivelin e parë, ata mund të nxjerrin në pah, për shembull, elementë të tillë (duke reflektuar kontrastin, këndin, kufirin, etj.).


Në nivelin e dytë, ky do të jetë tashmë një element nga elementët e nivelit të parë. Në të tretën - nga e dyta. Ju duhet të kuptoni se kjo foto është vetëm një demonstrim. Tani në aplikim industrial, rrjete të tilla kanë nga 10 deri në 30 shtresa (nivele).

Pasi të jetë trajnuar një rrjet i tillë, ne mund ta përdorim atë për klasifikim. Duke dhënë një imazh si hyrje, grupet e neuroneve në shtresën e parë kalojnë nëpër imazh, duke u aktivizuar në ato vende ku ka një element të figurës që korrespondon me një element specifik. Ato. ky rrjet e analizon fotografinë në pjesë - fillimisht në vija, goditje, kënde të prirjes, pastaj në pjesë më komplekse dhe në fund del në përfundimin se fotografia është nga ky lloj kombinimi. elementet bazë- kjo është fytyra.

Më shumë rreth rrjeteve konvolucionale -

Sot flitet dhe shkruhet shumë për rrjetet nervore artificiale, si në kontekstin e të dhënave të mëdha dhe të mësimit të makinerive, ashtu edhe jashtë saj. Në këtë artikull do të kujtojmë kuptimin e këtij koncepti, do të përshkruajmë edhe një herë fushëveprimin e zbatimit të tij dhe gjithashtu do të flasim për qasje e rëndësishme, e cila është e lidhur me rrjetet nervore - të mësuarit e thellë, ne do të përshkruajmë konceptin e saj, si dhe avantazhet dhe disavantazhet në raste të veçanta përdorimi.

Çfarë është një rrjet nervor?

Siç e dini, koncepti i një rrjeti nervor (NN) vjen nga biologjia dhe është një model disi i thjeshtuar i strukturës së trurit të njeriut. Por le të mos gërmojmë në natyrën e shkencave natyrore - mënyra më e lehtë është të imagjinojmë një neuron (përfshirë një artificial) si një lloj kutie të zezë me shumë vrima hyrëse dhe një dalje.

Matematikisht, një neuron artificial transformon një vektor të sinjaleve hyrëse (ndikime) X në një vektor të sinjaleve dalëse Y duke përdorur një funksion të quajtur funksion aktivizimi. Brenda lidhjes (rrjeti nervor artificial - ANN), funksionojnë tre lloje neuronesh: hyrje (marrja e informacionit nga bota e jashtme- vlerat e variablave që na interesojnë), prodhimi (kthimi i variablave të dëshiruar - për shembull, parashikimet ose sinjalet e kontrollit), si dhe neuronet e ndërmjetme që kryejnë funksione të caktuara të brendshme ("të fshehura"). Kështu, një ANN klasik përbëhet nga tre ose më shumë shtresa neuronesh, dhe në shtresën e dytë dhe pasuese ("të fshehura" dhe në dalje) secili prej elementeve është i lidhur me të gjithë elementët e shtresës së mëparshme.

Është e rëndësishme të mbani mend konceptin reagime, e cila përcakton llojin e strukturës ANN: transmetimi i sinjalit të drejtpërdrejtë (sinjalet kalojnë në mënyrë sekuenciale nga shtresa hyrëse përmes shtresës së fshehur dhe hyjnë në shtresën e daljes) dhe struktura e përsëritur, kur rrjeti përmban lidhje që kthehen prapa, nga neuronet më të largët në më të afërt). Të gjitha këto koncepte përbëjnë informacionin minimal të nevojshëm për të kaluar në nivelin tjetër të të kuptuarit të ANN - trajnimi i një rrjeti nervor, klasifikimi i metodave të tij dhe kuptimi i parimeve të funksionimit të secilit prej tyre.

Trajnimi i rrjeteve nervore

Nuk duhet të harrojmë pse kategori të tilla përdoren në përgjithësi - përndryshe ekziston rreziku i ngecjes në matematikë abstrakte. Në fakt, rrjetet nervore artificiale nënkuptojnë një klasë metodash për zgjidhjen e disa probleme praktike, ndër të cilat më kryesoret janë problemet e njohjes së modeleve, vendimmarrjes, përafrimit dhe ngjeshjes së të dhënave, si dhe problemet më interesante për ne të analizës dhe parashikimit të grupimeve.

Pa shkuar në ekstremin tjetër dhe pa hyrë në detaje të funksionimit të metodave ANN në secilin rast specifik, le t'i kujtojmë vetes se në çdo rrethanë është aftësia e një rrjeti nervor për të mësuar (me një mësues ose "më vete" ) që është pika kyçe duke e përdorur atë për të zgjidhur probleme praktike.

Në përgjithësi, trajnimi i një ANN është si më poshtë:

  1. neuronet hyrëse marrin variabla ("stimuj") nga mjedisi i jashtëm;
  2. në përputhje me informacionin e marrë, parametrat e lirë të rrjetit nervor ndryshojnë (punojnë shtresat e ndërmjetme të neuroneve);
  3. Si rezultat i ndryshimeve në strukturën e rrjetit nervor, rrjeti "reagon" ndaj informacionit në një mënyrë të ndryshme.

Kështu algoritmi i përgjithshëm trajnimi i një rrjeti nervor (kujtoni qenin e Pavlovit - po, mekanizmi i brendshëm i formimit refleks i kushtëzuar kjo është pikërisht ajo që është - dhe le të harrojmë menjëherë: në fund të fundit, konteksti ynë presupozon veprimin me koncepte dhe shembuj teknikë).

Është e qartë se një algoritëm universal i të mësuarit nuk ekziston dhe, ka shumë të ngjarë, nuk mund të ekzistojë; Konceptualisht, qasjet ndaj të nxënit ndahen në të mësuarit e mbikëqyrur dhe të nxënit të pambikëqyrur. Algoritmi i parë supozon se për çdo vektor hyrës ("të mësuarit") ekziston një vlerë e kërkuar e vektorit të daljes ("objektivi") - kështu, këto dy vlera formojnë një çift trajnimi, dhe i gjithë grupi i çifteve të tilla është set trajnimi. Në rastin e mësimit të pambikëqyrur, grupi i trajnimit përbëhet vetëm nga vektorë hyrës - dhe kjo situatë është më e besueshme nga pikëpamja e jetës reale.

Të mësuarit e thellë

Koncepti i të mësuarit të thellë i referohet një klasifikimi të ndryshëm dhe tregon një qasje për trajnimin e të ashtuquajturave struktura të thella, të cilat përfshijnë rrjete nervore me shumë nivele. Një shembull i thjeshtë nga fusha e njohjes së imazhit: është e nevojshme të mësohet një makinë të identifikojë veçori gjithnjë e më abstrakte për sa i përket veçorive të tjera abstrakte, domethënë të përcaktojë marrëdhënien midis shprehjes së të gjithë fytyrës, syve dhe gojës, dhe në fund të fundit, grupe pikselësh me ngjyrë matematikisht. Kështu, në një rrjet nervor të thellë, çdo nivel karakteristikash ka shtresën e vet; është e qartë se për të trajnuar një “kolos” të tillë, përvoja e duhur e studiuesve dhe niveli i hardware. Kushtet u krijuan në favor të të mësuarit të thellë nervor vetëm deri në vitin 2006 - dhe tetë vjet më vonë mund të flasim për revolucionin që kjo qasje ka prodhuar në mësimin e makinerive.

Pra, para së gjithash, në kontekstin e artikullit tonë, vlen të përmendet sa vijon: mësimi i thellë në shumicën e rasteve nuk mbikëqyret nga një person. Kjo do të thotë, kjo qasje përfshin trajnimin e një rrjeti nervor pa një mësues. Ky është avantazhi kryesor i qasjes "të thellë": mësimi i mbikqyrur i makinerive, veçanërisht në rastin e strukturave të thella, kërkon kohë - dhe punë - kosto të mëdha. Të mësuarit e thellë është një qasje që modelon njeriun të menduarit abstrakt(ose të paktën përfaqëson një përpjekje për t'iu afruar) në vend që ta përdorni.

Ideja, si zakonisht, është e mrekullueshme, por probleme krejt të natyrshme lindin në mënyrën e qasjes - para së gjithash, të rrënjosura në pretendimet e saj për universalitet. Në fakt, ndërsa qasjet e të mësuarit të thellë kanë arritur sukses të konsiderueshëm në fushën e njohjes së imazheve, i njëjti përpunim i gjuhës natyrore ende ngre shumë më tepër pyetje sesa përgjigje. Është e qartë se në n vitet e ardhshme nuk ka gjasa që të jetë e mundur të krijohet një "Leonardo Da Vinci artificial" ose madje - të paktën! - “Home sapiens artificiale”.

Megjithatë, studiuesit e inteligjencës artificiale tashmë janë përballur me çështjen e etikës: frika e shprehur në çdo film fantastiko-shkencor që respekton veten, duke filluar me "Terminator" dhe duke përfunduar me "Transformers", nuk duken më qesharake (rrjetet nervore moderne të sofistikuara tashmë mund të jenë konsiderohet si një model i besueshëm puna e trurit të insekteve!), por janë qartazi të panevojshme për momentin.

E ardhmja ideale teknologjike na shfaqet si një epokë kur një person do të jetë në gjendje t'i delegojë shumicën e fuqive të tij një makinerie - ose të paktën të jetë në gjendje ta lejojë atë për të lehtësuar një pjesë të konsiderueshme të punës së tij intelektuale. Koncepti i të mësuarit të thellë është një hap drejt kësaj ëndrre. Rruga përpara është e gjatë, por tashmë është e qartë se rrjetet nervore dhe qasjet në zhvillim që lidhen me to janë në gjendje të realizojnë përfundimisht aspiratat e shkrimtarëve të trillimeve shkencore.

Revolucioni i ardhshëm robotë të zgjuarështë parashikuar çdo dhjetë vjet që nga vitet 1950. Megjithatë, nuk ndodhi kurrë. Përparim në terren inteligjencës artificiale u zhvillua në mënyrë të pasigurt, ndonjëherë në mënyrë të mërzitshme, duke sjellë zhgënjim për shumë entuziastë. Sukseset e dukshme - kompjuter Blu e thellë, krijuar në mesin e viteve 1990 nga IBM dhe që mundi Garry Kasparov në shah në 1997, ose shfaqja e një përkthyesi elektronik në fund të viteve 1990 - ishin më shumë rezultat i llogaritjeve "të përafërta" sesa transferimi i mekanizmave. perceptimi njerëzor mbi proceset kompjuterike kompjuterike.

Megjithatë, historia e zhgënjimit dhe dështimit tani po ndryshon në mënyrë dramatike. Vetëm dhjetë vjet më parë, vizioni kompjuterik dhe algoritmet e njohjes së objekteve mund të identifikonin një sferë ose kuti në një sfond të thjeshtë. Ata tani mund të njohin fytyrat njerëzore ashtu siç munden njerëzit, madje edhe në kompleks, sfond natyror. Gjashtë muaj më parë, Google lëshoi ​​​​një aplikacion për telefonat inteligjentë që mund të përkthejë tekst nga më shumë se 20 gjuhë të huaja duke lexuar fjalë nga fotografi, tabela rrugore ose tekst të shkruar me dorë!

E gjithë kjo u bë e mundur pasi u bë e qartë se disa ide të vjetra në fushën e rrjeteve nervore, nëse modifikohen pak duke shtuar "jetën", d.m.th. projektimi i detajeve të perceptimit të njerëzve dhe kafshëve mund të japë një rezultat mahnitës që askush nuk e priste. Këtë herë, revolucioni i inteligjencës artificiale duket vërtet real.

Hulumtimi mbi rrjetet nervore në fushën e mësimit të makinerive në shumicën e rasteve i është kushtuar gjithmonë kërkimit të teknikave të reja të njohjes lloje të ndryshme të dhëna. Kështu, një kompjuter i lidhur me kamerën, duke përdorur një algoritëm të njohjes së imazhit, duhet të jetë në gjendje të dallojë cilësi të dobët fytyrë njerëzore, një filxhan çaj ose një qen. Historikisht, megjithatë, përdorimi i rrjeteve nervore për këto qëllime është shoqëruar me vështirësi të konsiderueshme. Edhe suksesi i vogël kërkonte ndërhyrje njerëzore - njerëzit ndihmuan që programi të përcaktohej karakteristika të rëndësishme imazhe, të tilla si kufijtë e imazhit ose forma të thjeshta gjeometrike. Algoritmet ekzistuese Ata nuk mund të mësonin ta bënin vetë.

Situata ka ndryshuar në mënyrë dramatike falë krijimit të të ashtuquajturit rrjetet nervore me mësim të thellë, i cili tani mund të analizojë një imazh pothuajse me aq efikasitet sa një njeri. Rrjete të tilla nervore përdorin një imazh me cilësi të dobët si hyrje në "neuronet" e nivelit të parë, i cili më pas transmeton "figurën" përmes lidhjeve jolineare në neuronet e nivelit tjetër. Pas një trajnimi të caktuar, "neuronet" janë më shumë nivele të larta mund të përdorë aspekte më abstrakte të një imazhi për njohje. Për shembull, ata mund të përdorin detaje të tilla si kufijtë e imazhit ose veçoritë e vendndodhjes së saj në hapësirë. Çuditërisht, rrjete të tilla mund të mësojnë të vlerësojnë tiparet më të rëndësishme të një imazhi pa ndihmën e njeriut!

Një shembull i shkëlqyer i përdorimit të rrjeteve nervore të të mësuarit të thellë është njohja e objekteve identike të fotografuara nga kënde të ndryshme ose në poza të ndryshme (nëse po flasim për për një person ose një kafshë). Algoritmet që përdorin skanimin pixel pas piksel "mendojnë" se po shikojnë dy imazhe të ndryshme, ndërsa rrjetet nervore "të zgjuara" "kuptojnë" se po shikojnë të njëjtin objekt. Dhe anasjelltas - imazhet e dy qenve të racave të ndryshme, të fotografuar në të njëjtën pozë, mund të perceptohen nga algoritmet e mëparshme si fotografi të të njëjtit qen. Rrjetet nervore me mësim të thellë mund të identifikojë detaje në imazhe që do t'i ndihmojnë ata të bëjnë dallimin midis kafshëve.

Kombinimi i teknikave të të mësuarit të thellë, njohurive dhe fuqisë së avancuar të neuroshkencës kompjuterë modernë hap perspektiva për inteligjencën artificiale që ne as nuk mund t'i vlerësojmë ende. E vërteta tashmë është e qartë se mendja mund të ketë jo vetëm një natyrë biologjike.

Sot, një grafik është një nga mënyrat më të pranueshme për të përshkruar modelet e krijuara në një sistem të mësimit të makinerive. Këta grafikë llogaritës përbëhen nga kulme neuronesh të lidhura nga skajet e sinapsës që përshkruajnë lidhjet midis kulmeve.

Ndryshe nga një procesor grafik qendror ose vektorial skalar, një IPU, një lloj i ri procesori i krijuar për mësimin e makinerive, lejon ndërtimin e grafikëve të tillë. Një kompjuter i krijuar për të manipuluar grafikët është një makinë ideale për llogaritjen e modeleve të grafikëve të krijuar përmes mësimit të makinerive.

Një nga më mënyra të thjeshta Mënyra për të përshkruar procesin e inteligjencës së makinës është ta vizualizoni atë. Ekipi i zhvillimit të Graphcore ka krijuar një koleksion imazhesh të tilla që shfaqen në IPU. Ajo bazohej në software Plepi, i cili vizualizon punën e inteligjencës artificiale. Studiuesit nga kjo kompani zbuluan gjithashtu pse rrjetet e thella kërkojnë kaq shumë memorie dhe cilat zgjidhje ekzistojnë për të zgjidhur problemin.

Poplar përfshin një përpilues grafik që u ndërtua nga themeli për të përkthyer operacionet standarde të mësimit të makinerive në kodin e aplikacionit IPU shumë të optimizuar. Kjo ju lejon të mbledhni këto grafikë së bashku duke përdorur të njëjtin parim si mblidhen POPNN-të. Biblioteka përmban një grup llojesh të ndryshme kulmesh për primitivë të përgjithësuar.

Grafikët janë paradigma mbi të cilën bazohet i gjithë softueri. Në Poplar, grafikët ju lejojnë të përcaktoni një proces llogaritjeje, ku kulmet kryejnë operacione dhe skajet përshkruajnë marrëdhënien midis tyre. Për shembull, nëse doni të shtoni dy numra së bashku, mund të përcaktoni një kulm me dy hyrje (numrat që dëshironi të shtoni), disa llogaritje (një funksion për të shtuar dy numra) dhe një dalje (rezultati).

Në mënyrë tipike, operacionet me kulme janë shumë më komplekse sesa në shembullin e përshkruar më sipër. Ato shpesh përcaktohen nga programe të vogla të quajtura kodelet (emrat e kodeve). Abstraksioni grafik është tërheqës sepse nuk bën supozime për strukturën e llogaritjes dhe e zbërthen llogaritjen në komponentë që IPU mund t'i përdorë për të operuar.

Poplar përdor këtë abstraksion të thjeshtë për të ndërtuar grafikë shumë të mëdhenj që përfaqësohen si imazhe. Gjenerimi i softuerit të grafikut do të thotë që ne mund ta përshtatim atë me llogaritjet specifike të nevojshme për të siguruar sa më shumë përdorim efektiv Burimet e IPU-së.

Përpiluesi i përkthen operacionet standarde të përdorura në sistemet e mësimit të makinerive në kodin e aplikacionit shumë të optimizuar për IPU. Përpiluesi i grafikut krijon një imazh të ndërmjetëm të grafikut llogaritës, i cili vendoset në një ose më shumë pajisje IPU. Përpiluesi mund të shfaqë këtë grafik llogaritës, kështu që një aplikacion i shkruar në nivelin e kornizës së rrjetit nervor shfaq një imazh të grafikut llogaritës që funksionon në IPU.


Grafiku i ciklit të plotë të trajnimit AlexNet në drejtimet përpara dhe prapa

Përpiluesi i grafikëve Poplar e ktheu përshkrimin AlexNet në një grafik llogaritës prej 18.7 milion kulmesh dhe 115.8 milion skajesh. Grumbullimi i dukshëm i qartë është rezultat i komunikimit të fortë midis proceseve në secilën shtresë të rrjetit, me komunikim më të lehtë midis shtresave.

Një shembull tjetër është një rrjet i thjeshtë plotësisht i lidhur, të trajnuar në MNIST - një grup i thjeshtë të dhënash për vizionin kompjuterik, një lloj "Përshëndetje, botë" në mësimin e makinerive. Një rrjet i thjeshtë për të eksploruar këtë grup të dhënash ndihmon për të kuptuar grafikët e drejtuar nga aplikacionet Poplar. Duke integruar bibliotekat e grafikëve me korniza të tilla si TensorFlow, kompania ofron një nga mënyrat më të thjeshta për të përdorur IPU-të në aplikacionet e mësimit të makinerive.

Pasi grafiku të jetë ndërtuar duke përdorur përpiluesin, ai duhet të ekzekutohet. Kjo është e mundur duke përdorur Graph Engine. Shembulli i ResNet-50 tregon funksionimin e tij.


Grafiku ResNet-50

Arkitektura ResNet-50 lejon krijimin e rrjeteve të thella nga ndarjet e përsëritura. Procesori duhet vetëm t'i përcaktojë këto seksione një herë dhe t'i thërrasë përsëri. Për shembull, grupi i nivelit conv4 ekzekutohet gjashtë herë, por vihet në hartë vetëm një herë në grafik. Imazhi gjithashtu tregon shumëllojshmërinë e formave të shtresave konvolucionale, pasi secila prej tyre ka një grafik të ndërtuar sipas formë natyrale llogaritjet.

Motori krijon dhe menaxhon ekzekutimin e një modeli të mësimit të makinës duke përdorur një grafik të krijuar nga përpiluesi. Pasi të vendoset, Graph Engine monitoron dhe u përgjigjet IPU-ve, ose pajisjeve, të përdorura nga aplikacionet.

Imazhi ResNet-50 tregon të gjithë modelin. Në këtë nivel është e vështirë të identifikohen lidhjet midis kulmeve individuale, kështu që ia vlen të shikoni imazhe të zmadhuara. Më poshtë janë disa shembuj të seksioneve brenda shtresave të rrjetit nervor.

Pse rrjetet e thella kanë nevojë për kaq shumë memorie?

Sasi të mëdha të memories së zënë janë një nga më probleme të mëdha rrjete të thella nervore. Studiuesit po përpiqen të luftojnë gjerësinë e kufizuar të brezit të pajisjeve DRAM, të cilat sistemet moderne duhet të përdorin për të ruajtur një numër të madh peshash dhe aktivizimesh në një rrjet të thellë nervor.

Arkitekturat janë projektuar duke përdorur çipe procesori të dizajnuara për përpunim sekuencial dhe optimizim DRAM për memorie me densitet të lartë. Ndërfaqja midis këtyre dy pajisjeve është një pengesë që paraqet kufizime të gjerësisë së brezit dhe shton shpenzime të konsiderueshme në konsumin e energjisë.

Megjithëse nuk kemi ende një kuptim të plotë të trurit të njeriut dhe mënyrës se si funksionon ai, përgjithësisht kuptohet se nuk ka një depo të madhe memorie të veçantë. Funksioni i kujtesës afatgjatë dhe afatshkurtër në trurin e njeriut besohet të jetë i ngulitur në strukturën e neuroneve + sinapset. Madje organizma të thjeshtë si krimbat me një strukturë nervore të trurit prej pak më shumë se 300 neuronesh, një lloj funksioni i kujtesës.

Ndërtimi i memories në procesorët konvencionalë është një mënyrë për të kapërcyer problemin fyte të ngushta memorie, duke zhbllokuar një gjerësi të madhe brezi me konsum shumë më të ulët të energjisë. Megjithatë, memoria në çip është e shtrenjtë dhe nuk është e dizajnuar për sasi vërtet të mëdha të memories që janë bashkangjitur me CPU-të dhe GPU-të që përdoren aktualisht për të trajnuar dhe vendosur rrjete të thella nervore.

Pra, është e dobishme të shikoni se si përdoret memoria sot në CPU dhe sistemet e të mësuarit të thellë të bazuara në GPU dhe pyesni veten: pse ata kërkojnë pajisje kaq të mëdha ruajtjeje memorie kur truri i njeriut funksionon mirë pa to?

Rrjetet nervore kanë nevojë për memorie për të ruajtur të dhënat hyrëse, peshat dhe funksionet e aktivizimit ndërsa hyrja përhapet nëpër rrjet. Gjatë mësimit, aktivizimi në hyrje duhet të mbahet derisa të mund të përdoret për të llogaritur gabimet në gradientët e daljes.

Për shembull, një rrjet ResNet me 50 shtresa ka rreth 26 milionë parametra të peshës dhe llogarit 16 milionë aktivizime për drejtimi përpara. Nëse përdorni një notues 32-bit për të ruajtur çdo peshë dhe aktivizim, do të kërkojë rreth 168 MB hapësirë. Duke përdorur një vlerë më të ulët të saktësisë për të ruajtur këto pesha dhe aktivizime, ne mund ta përgjysmojmë apo edhe katërfishojmë këtë kërkesë ruajtjeje.

Një problem i madh i memories lind nga fakti se GPU-të mbështeten në të dhënat e përfaqësuara si vektorë të dendur. Prandaj ata mund të përdorin fije të vetme udhëzimi (SIMD) për të arritur dendësi të lartë llogaritjet. CPU përdor njësi të ngjashme vektoriale për llogaritje me performancë të lartë.

GPU-të kanë një gjerësi sinapse prej 1024 bit, kështu që ata përdorin të dhëna me pikë lundruese 32-bit, kështu që shpesh i ndajnë ato në mini-grumcë paralele prej 32 mostrash për të krijuar vektorë të të dhënave 1024-bit. Kjo qasje ndaj paralelizmit të vektorit rrit numrin e aktivizimeve me 32 herë dhe nevojën për ruajtje lokale me një kapacitet prej më shumë se 2 GB.

GPU-të dhe makineritë e tjera të krijuara për algjebër matricore janë gjithashtu subjekt i ngarkesës së memories nga pesha ose aktivizimet e rrjetit nervor. GPU-të nuk mund të kryejnë me efikasitet konvolucionet e vogla të përdorura në rrjetet nervore të thella. Prandaj, një transformim i quajtur "reduktim" përdoret për të kthyer këto konvolucione në shumëzimet matricë-matricë(GEMM), të cilin përshpejtuesit grafikë mund ta trajtojnë në mënyrë efektive.

Kërkohet gjithashtu memorie shtesë për të ruajtur të dhënat hyrëse, vlerat e përkohshme dhe udhëzimet e programit. Matja e përdorimit të memories gjatë stërvitjes së ResNet-50 në një GPU të nivelit të lartë tregoi se kërkonte më shumë se 7,5 GB DRAM lokale.

Disa mund të mendojnë se saktësia më e ulët llogaritëse mund të zvogëlojë sasinë e memories së kërkuar, por nuk është kështu. Duke kaluar vlerat e të dhënave në gjysmën e saktësisë për peshat dhe aktivizimet, ju do të mbushni vetëm gjysmën e gjerësisë së vektorit SIMD, duke humbur gjysmën e burimeve llogaritëse të disponueshme. Për të kompensuar këtë, kur kaloni nga saktësia e plotë në gjysmën e saktësisë në GPU, atëherë do t'ju duhet të dyfishoni madhësinë e mini-batch-it për të detyruar paralelizmin e mjaftueshëm të të dhënave për të përdorur të gjithë llogaritjen e disponueshme. Kështu, kalimi në pesha dhe aktivizime me saktësi më të ulët në GPU kërkon ende më shumë se 7,5 GB memorie dinamike me qasje të lirë.

Me këtë një numër i madh të dhënat që duhen ruajtur, është thjesht e pamundur t'i vendosni të gjitha në GPU. Çdo shtresë e rrjetit nervor konvolucional duhet të ruajë gjendjen e DRAM-it të jashtëm, të ngarkojë shtresën tjetër të rrjetit dhe më pas të ngarkojë të dhënat në sistem. Si rezultat, ndërfaqja e memories së jashtme tashmë e kufizuar me gjerësi bande vuan nga barra shtesë e ringarkimit të vazhdueshëm të peshores dhe ruajtjes dhe marrjes së funksioneve të aktivizimit. Kjo ngadalëson ndjeshëm kohën e stërvitjes dhe rrit ndjeshëm konsumin e energjisë.

Ka disa mënyra për të zgjidhur këtë problem. Së pari, operacione të tilla si funksionet e aktivizimit mund të kryhen "në vend", duke lejuar që të dhënat hyrëse të rishkruhen direkt në dalje. Në këtë mënyrë kujtesa ekzistuese mund të ripërdoret. Së dyti, mundësia për ripërdorim memoria mund të merret duke analizuar varësinë e të dhënave ndërmjet operacioneve në rrjet dhe shpërndarjen e së njëjtës memorie për operacionet që nuk e përdorin atë në atë moment.

Qasja e dytë është veçanërisht efektive kur i gjithë rrjeti nervor mund të analizohet në kohën e kompilimit për të krijuar një memorie të caktuar fikse, pasi shpenzimet e menaxhimit të memories reduktohen pothuajse në zero. Doli se kombinimi i këtyre metodave mund të zvogëlojë përdorimin e kujtesës së një rrjeti nervor me dy deri në tre herë.
Një qasje e tretë e rëndësishme u zbulua kohët e fundit nga ekipi i Baidu Deep Speech. Ata aplikuan teknika të ndryshme të kursimit të kujtesës për të arritur një reduktim 16-fish në konsumin e memories së funksioneve të aktivizimit, duke i lejuar ata të trajnojnë rrjetet me 100 shtresa. Më parë, me të njëjtën sasi memorie, ata mund të trajnonin rrjetet me nëntë shtresa.

Kombinimi i memories dhe burimeve të përpunimit në një pajisje të vetme ka potencial të konsiderueshëm për të përmirësuar performancën dhe efikasitetin e rrjeteve nervore konvolucionale, si dhe forma të tjera të mësimit të makinerive. Mund të bëhen shkëmbime ndërmjet memories dhe burimeve llogaritëse për të arritur një ekuilibër të veçorive dhe performancës në sistem.

Rrjetet nervore dhe modelet e njohurive në metodat e tjera të mësimit të makinerive mund të mendohen si grafikë matematikorë. Ka një sasi të madhe paralelizmi të përqendruar në këta grafikë. Një procesor paralel i krijuar për të shfrytëzuar paralelizmin në grafikë nuk mbështetet në mini-batch dhe mund të zvogëlojë ndjeshëm sasinë e kërkuar të ruajtjes lokale.

Rezultatet aktuale të hulumtimit kanë treguar se të gjitha këto metoda mund të përmirësojnë ndjeshëm performancën e rrjeteve nervore. GPU-të dhe CPU-të moderne kanë memorie shumë të kufizuar në bord, vetëm disa megabajt në total. Arkitekturat e reja të procesorit të krijuara posaçërisht për të mësuarit e makinerive balancojnë kujtesën dhe llogaritjen në çip, duke ofruar përmirësime të rëndësishme të performancës dhe efikasitetit mbi teknologjitë aktuale. përpunuesit qendrorë dhe përshpejtuesit grafikë.

Mësimi i thellë po ndryshon paradigmën e punës me tekste, por po shkakton skepticizëm midis gjuhëtarëve kompjuterikë dhe shkencëtarëve të të dhënave. Rrjetet nervore janë një mjet i fuqishëm, por i parëndësishëm për mësimin e makinerive.

03.05.2017 Dmitry Ilvovsky, Ekaterina Chernyak

Rrjetet nervore bëjnë të mundur gjetjen e lidhjeve dhe modeleve të fshehura në tekste, por këto lidhje nuk mund të paraqiten në mënyrë eksplicite. Rrjetet nervore, megjithëse të fuqishme, janë një mjet mjaft i parëndësishëm, duke shkaktuar skepticizëm midis kompanive që zhvillojnë zgjidhje industriale në fushën e analizës së të dhënave dhe midis gjuhëtarëve kryesorë kompjuterikë.

Magjepsja e përgjithshme me teknologjitë e rrjeteve nervore dhe të mësuarit e thellë nuk e ka anashkaluar gjuhësinë kompjuterike - përpunimi automatik i teksteve në gjuhën natyrore. Në konferencat e fundit të Shoqatës për Gjuhësinë Kompjuterike ACL, forumi kryesor shkencor në këtë fushë, shumica dërrmuese e prezantimeve iu kushtuan përdorimit të rrjeteve nervore për të zgjidhur probleme të njohura, dhe për të eksploruar të reja që nuk mund të zgjidheshin duke përdorur mjete standarde të mësimit të makinerive. Rritja e vëmendjes Interesi i gjuhëtarëve për rrjetet nervore është për shkak të disa arsyeve. Përdorimi i rrjeteve nervore, së pari, përmirëson ndjeshëm cilësinë e zgjidhjeve për disa detyra standarde klasifikimi i teksteve dhe sekuencave, së dyti, zvogëlon intensitetin e punës kur punoni drejtpërdrejt me tekste, së treti, ju lejon të zgjidhni probleme të reja (për shembull, të krijoni bot chat). Në të njëjtën kohë, rrjetet nervore nuk mund të konsiderohen si një mekanizëm plotësisht i pavarur për zgjidhjen e problemeve gjuhësore.

Puna e parë në të mësuarit e thellë(të mësuarit e thellë) datojnë në mesin e shekullit të 20-të. Në fillim të viteve 1940, Warren McCulloch dhe Walter Pitts propozuan një model formal të trurit të njeriut - një rrjet nervor artificial, dhe pak më vonë Frank Rosenblatt përgjithësoi punën e tyre dhe krijoi një model të rrjetit nervor në një kompjuter. E para punon në trajnimin e rrjeteve nervore duke përdorur algoritmin prapashumëzimi gabimet datojnë në vitet 1960 (algoritmi llogarit gabimin e parashikimit dhe e minimizon atë duke përdorur teknikat e optimizimit stokastik). Sidoqoftë, doli që, pavarësisht bukurisë dhe elegancës së idesë së simulimit të trurit, trajnimi i rrjeteve nervore "tradicionale" kërkon një kohë të gjatë, dhe rezultatet e klasifikimit në grupe të vogla të dhënash janë të krahasueshme me rezultatet e marra me metoda më të thjeshta. , të tilla si Machines Vector Support (SVM). Si rezultat, rrjetet nervore u harruan për 40 vjet, por sot ato janë bërë përsëri në kërkesë kur punojnë me vëllime të mëdha të dhëna të pastrukturuara, imazhe dhe tekste.

Nga pikëpamja formale, një rrjet nervor është një grafik i drejtuar i një arkitekture të caktuar, kulmet ose nyjet e së cilës quhen neuronet. Niveli i parë i grafikut përmban nyje hyrëse, niveli i fundit përmban nyje dalëse, numri i të cilave varet nga detyra. Për shembull, për t'u klasifikuar në dy klasa, një ose dy neurone mund të vendosen në shtresën dalëse të rrjetit për klasifikim në klasa k, mund të vendosen k neurone. Të gjitha nivelet e tjera në grafikun e rrjetit nervor zakonisht quhen shtresa të fshehura. Të gjithë neuronet e vendosur në një nivel janë të lidhur me skaje me të gjithë neuronet e nivelit tjetër, çdo skaj ka një peshë. Secilit neuron i është caktuar një funksion aktivizimi që modelon funksionimin e neuroneve biologjike: ata janë "të heshtur" kur sinjali i hyrjes është i dobët dhe kur vlera e tij tejkalon një prag të caktuar, ata ndezin dhe transmetojnë vlerën hyrëse më tej përgjatë rrjetit. Detyra e trajnimit të një rrjeti nervor duke përdorur shembuj (d.m.th., duke përdorur çifte "objekt - përgjigje e saktë") është të gjesh peshat e skajeve, në mënyrën më të mirë të mundshme parashikimi i përgjigjeve të sakta. Është e qartë se është arkitektura - topologjia e strukturës së grafikut të rrjetit nervor - ky është parametri i tij më i rëndësishëm. Megjithëse nuk ka ende një përkufizim zyrtar për "rrjetet e thella", përgjithësisht pranohet se të gjitha rrjetet nervore që përbëhen nga numër i madh shtresa ose që kanë shtresa "jo standarde" (për shembull, që përmbajnë vetëm lidhje të zgjedhura ose duke përdorur rekursion me shtresa të tjera).

Një shembull i përdorimit më të suksesshëm të rrjeteve nervore deri më tani është analiza e imazhit, por teknologjitë e rrjeteve nervore gjithashtu kanë ndryshuar rrënjësisht punën me të dhënat e tekstit. Më parë, çdo element i tekstit (shkronjë, fjalë ose fjali) duhej të përshkruhej duke përdorur shumë veçori të natyrës së ndryshme(morfologjike, sintaksore, semantike etj.), atëherë tani në shumë detyra zhduket nevoja për përshkrime komplekse. Teoricienët dhe praktikuesit e teknologjive të rrjeteve nervore shpesh flasin për "të mësuarit e përfaqësimit" - në tekst të papërpunuar, të zbërthyer vetëm në fjalë dhe fjali, një rrjet nervor është në gjendje të gjejë varësi dhe modele dhe të krijojë në mënyrë të pavarur një hapësirë ​​tipare. Fatkeqësisht, në një hapësirë ​​të tillë një person nuk do të kuptojë asgjë - gjatë stërvitjes, rrjeti nervor i cakton secilit element të tekstit një vektor të dendur të përbërë nga numra të caktuar që përfaqësojnë marrëdhëniet "të thella" të zbuluara. Theksi kur punoni me tekstin kalon nga ndërtimi i një nëngrupi karakteristikash dhe kërkimi i bazave të jashtme të njohurive në zgjedhjen e burimeve të të dhënave dhe shënimin e teksteve për trajnimin e mëvonshëm të një rrjeti nervor, i cili kërkon shumë më shumë të dhëna në krahasim me metoda standarde. Është pikërisht për shkak të nevojës për të përdorur sasi të mëdha të dhënash dhe për shkak të interpretueshmërisë dhe paparashikueshmërisë së dobët që rrjetet nervore nuk janë të kërkuara në aplikacionet reale të shkallës industriale, ndryshe nga algoritmet e tjera të njohura mirë të të mësuarit si pyjet e rastësishme dhe makinat vektoriale mbështetëse. Megjithatë, rrjetet nervore përdoren në një sërë detyrash të përpunimit automatik të tekstit (Fig. 1).

Një nga aplikimet më të njohura të rrjeteve nervore është ndërtimi i vektorëve të fjalëve që lidhen me fushën e semantikës shpërndarëse: besohet se kuptimi i një fjale mund të kuptohet nga kuptimi i kontekstit të saj, nga fjalët përreth. Në të vërtetë, nëse nuk jemi të njohur me ndonjë fjalë në tekst në gjuha e njohur, atëherë në shumicën e rasteve mund ta merrni me mend kuptimin e tij. Vektorët e fjalëve shërbejnë si një model matematikor i kuptimit të një fjale: rreshtat në një matricë të madhe "fjalë-kontekst", të ndërtuar nga një korpus mjaft i madh tekstesh. Fjalët fqinje, fjalët e përfshira në të njëjtin ndërtim sintaksor ose semantik me fjalën e dhënë, etj., mund të veprojnë si "kontekste" për një fjalë të caktuar Frekuencat mund të regjistrohen në qelizat e një matrice të tillë (sa herë është ndeshur fjala në. në këtë kontekst), por më shpesh përdorin koeficientin e informacionit të ndërsjellë pozitiv në çift (Positive Pointwise Mutual Information, PPMI), i cili tregon se sa jo e rastësishme ishte shfaqja e një fjale në një kontekst të caktuar. Matrica të tilla mund të përdoren me mjaft sukses për grupimin e fjalëve ose për kërkimin e fjalëve që janë afër kuptimit me fjalën e kërkimit.

Në vitin 2013, Tomas Mikolov botoi një punim në të cilin ai propozoi përdorimin e rrjeteve nervore për të trajnuar vektorët e fjalëve, por për një dimension më të vogël: një rrjet nervor i arkitekturës më të thjeshtë u trajnua duke përdorur tuples (fjalë, kontekste), dhe në dalje çdo fjalë ishte caktoi një vektor prej 300 elementësh. Doli se vektorë të tillë përcjellin më mirë afërsinë semantike të fjalëve. Për shembull, mbi to mund të përcaktoni veprimet aritmetike të mbledhjes dhe zbritjes së kuptimeve dhe të merrni ekuacionet e mëposhtme: "Paris - Francë + Rusi = Moskë"; "mbret - burrë + grua = mbretëreshë." Ose gjeni fjalë shtesë në rresht "mollë, dardhë, qershi, kotele". Puna prezantoi dy arkitektura, skip-gram dhe CBOW (Continuous Bag of Words), me emrin e përgjithshëm word2vec. Siç u tregua më vonë në , word2vec nuk është gjë tjetër veçse një faktorizim i një matrice të kontekstit fjalësh me peshat PPMI. Tani është zakon të klasifikohet word2vec si semantikë shpërndarëse dhe jo si mësim i thellë, por shtysa fillestare për krijimin e këtij modeli ishte përdorimi i një rrjeti nervor. Për më tepër, rezultoi se vektorët word2vec shërbejnë si një paraqitje e përshtatshme e kuptimit të një fjale, e cila mund të futet si hyrje në rrjetet nervore të thella të përdorura për klasifikimin e tekstit.

Detyra e klasifikimit të tekstit është një nga më të ngutshmet për tregtarët, veçanërisht kur bëhet fjalë për analizimin e opinioneve ose qëndrimeve të konsumatorëve ndaj një produkti ose shërbimi, kështu që studiuesit po punojnë vazhdimisht për të përmirësuar cilësinë e zgjidhjes së tij. Megjithatë, analiza e opinionit është një detyrë e klasifikimit të fjalive dhe jo teksteve - në një rishikim pozitiv, përdoruesi mund të shkruajë një ose dy fjali negative, dhe është gjithashtu e rëndësishme që të jetë në gjendje t'i identifikojë dhe analizojë ato. Një vështirësi e njohur në klasifikimin e fjalive qëndron në gjatësinë e ndryshueshme të hyrjes - meqenëse fjalitë në tekste mund të jenë me gjatësi arbitrare, nuk është e qartë se si t'i dorëzohen ato në hyrjen e një rrjeti nervor. Një qasje është huazuar nga fusha e analizës së imazhit dhe përfshin përdorimin e rrjeteve nervore konvolucionale (CNN) (Fig. 2).

Hyrja e rrjetit nervor konvolucional është një fjali në të cilën çdo fjalë përfaqësohet tashmë nga një vektor (vektor i vektorëve). Në mënyrë tipike, modelet word2vec të trajnuara paraprakisht përdoren për të përfaqësuar fjalët si vektorë. Një rrjet nervor konvolucional përbëhet nga dy shtresa: një shtresë konvolucioni "e thellë" dhe një shtresë e rregullt e fshehur. Shtresa e konvolucionit, nga ana tjetër, përbëhet nga filtra dhe një shtresë "nën-kampionimi". Një filtër është një neuron, hyrja e të cilit formohet duke përdorur dritare që lëvizin nëpër tekst dhe zgjedhin një numër të caktuar fjalësh në mënyrë sekuenciale (për shembull, një dritare me gjatësi "tre" do të zgjedhë tre fjalët e para, fjalët nga e dyta në të katërtën, nga e treta në të pestën, etj.) . Në daljen e filtrit, formohet një vektor që grumbullon të gjithë vektorët e fjalëve të përfshira në të. Më pas, një vektor i vetëm që korrespondon me të gjithë propozimin gjenerohet në shtresën e nën-kampioneve, i cili llogaritet si maksimumi i komponentëve të të gjithë vektorëve të filtrit në dalje. Rrjetet nervore konvolucionale janë të lehta për t'u trajnuar dhe zbatuar. Për t'i trajnuar ato, përdoret një algoritëm standard i përhapjes së pasme, dhe për shkak të faktit se peshat e filtrave shpërndahen në mënyrë uniforme (pesha e fjalës së i-të nga dritarja është e njëjtë për çdo filtër), numri i parametrave për një rrjet nervor konvolucionist është i vogël. Nga pikëpamja e gjuhësisë kompjuterike, rrjetet neurale konvolucionale janë mjet i fuqishëm për klasifikim, i cili megjithatë nuk ka ndonjë intuitë gjuhësore pas vetes, gjë që e ndërlikon ndjeshëm analizën e gabimeve të algoritmit.

Klasifikimi i sekuencës është një detyrë në të cilën çdo fjalë duhet t'i caktohet një etiketë: analiza morfologjike (çdo fjale i caktohet një pjesë e të folurit), nxjerrja e entitetit të emërtuar (përcaktimi nëse secila fjalë është pjesë e emrit të një personi, emri gjeografik, etj.) etj. Gjatë klasifikimit të sekuencave, përdoren metoda që marrin parasysh kontekstin e fjalës: nëse fjala e mëparshme është pjesë e emrit të një personi, atëherë edhe ajo aktuale mund të jetë pjesë e emrit, por nuk ka gjasa të jetë pjesë e emri i organizatës. Rrjetet nervore të përsëritura, të cilat zgjerojnë idenë e modeleve gjuhësore të propozuara në fund të shekullit të kaluar, ndihmojnë në zbatimin e kësaj kërkese në praktikë. Modeli i gjuhës klasike parashikon probabilitetin që fjala i të shfaqet pas fjalës i-1. Modelet gjuhësore mund të përdoren gjithashtu për të parashikuar fjalën tjetër: me cilën fjalë me shumë gjasa do të takohen pas kësaj?

Për të trajnuar modele gjuhësore, nevojiten korpuse të mëdha - sa më i madh të jetë korpusi i trajnimit, aq më shumë çifte fjalësh modeli "di". Përdorimi i rrjeteve nervore për të zhvilluar modele gjuhësore redukton sasinë e të dhënave të ruajtura. Le të imagjinojmë një arkitekturë të thjeshtë rrjeti në të cilën fjalët i-2 dhe i-1 janë hyrëse, dhe në dalje rrjeti nervor parashikon fjalën i. Në varësi të numrit të shtresave të fshehura dhe numrit të neuroneve në to, rrjeti i trajnuar mund të ruhet si një numër matricash të dendura me dimension relativisht të vogël. Me fjalë të tjera, në vend të një korpusi trajnimi dhe të gjitha çiftet e fjalëve, ai mund të ruajë vetëm disa matrica dhe një listë fjalë unike. Megjithatë, një model i tillë i gjuhës nervore nuk lejon që të merren parasysh lidhjet e gjata midis fjalëve. Ky problem zgjidhet nga rrjetet nervore të përsëritura (Fig. 3), në të cilat gjendja e brendshme e shtresës së fshehur jo vetëm që përditësohet pasi një fjalë e re arrin në hyrje, por kalohet edhe në hapin tjetër. Kështu, shtresa e fshehur e rrjetit të përsëritur pranon dy lloje hyrjesh: gjendjen e shtresës së fshehur në hapin e mëparshëm dhe fjalën e re. Nëse një rrjet nervor i përsëritur përpunon një fjali, atëherë gjendjet e fshehura lejojnë që lidhjet e gjata në fjali të mbahen mend dhe të transmetohen. Është verifikuar vazhdimisht në mënyrë eksperimentale që rrjetet nervore të përsëritura kujtojnë gjininë e subjektit në një fjali dhe zgjedhin përemrat e duhur (ajo - ajo, ai - i tij) kur gjenerojnë një fjali, por tregojnë qartë se si ruhet saktësisht ky lloj informacioni në një rrjet nervor apo mënyra se si përdoret, ende nuk ka pasur sukses.

Rrjetet nervore të përsëritura përdoren gjithashtu për klasifikimin e tekstit. Në këtë rast, rezultatet nga hapat e ndërmjetëm nuk përdoren dhe dalja e fundit e rrjetit nervor kthen klasën e parashikuar. Sot, rrjetet e përsëritura dydrejtimëshe (që transmetojnë gjendjen e fshehur jo vetëm "në të djathtë", por edhe "në të majtë"), që kanë disa dhjetëra neurone në shtresën e fshehur, janë bërë një mjet standard për zgjidhjen e problemeve të klasifikimit të tekstit dhe sekuencës, si. si dhe gjenerimin e tekstit, dhe në thelb kanë zëvendësuar algoritme të tjera.

Zhvillimi i rrjeteve nervore të përsëritura janë bërë arkitektura të tipit Seq2seq, të përbërë nga dy rrjete të lidhura periodike, njëra prej të cilave është përgjegjëse për përfaqësimin dhe analizimin e hyrjes (për shembull, një pyetje ose fjali në një gjuhë), dhe e dyta për gjenerimin rezultati (një përgjigje ose fjali në një gjuhë tjetër) . Rrjetet Seq2seq qëndrojnë në themel sistemet moderne"pyetje-përgjigje", robotët e bisedave dhe sistemet e përkthimit me makinë.

Përveç rrjeteve neurale konvolucionale, të ashtuquajturat autoenkoderë përdoren për analizën e tekstit, të cilët përdoren, për shembull, për të krijuar efekte në imazhe në Photoshop ose Instagram dhe kanë gjetur aplikim në gjuhësi në problemin e reduktimit të dimensioneve (kërkimi i projeksionit të një vektori që përfaqëson tekstin në një hapësirë ​​të një dimensioni më të ulët). Projeksioni në një hapësirë ​​dydimensionale bën të mundur përfaqësimin e tekstit si një pikë në një plan dhe ju lejon të përshkruani vizualisht një koleksion tekstesh si një grup pikash, domethënë shërben si një mjet. analiza paraprake përpara grupimit ose klasifikimit të teksteve. Ndryshe nga detyra e klasifikimit, detyra e zvogëlimit të dimensionalitetit nuk ka kritere të qarta të cilësisë, por imazhet e marra kur përdoren kodifikuesit automatikë duken mjaft "bindës". ME pikë matematikore Një autoenkoder është një rrjet nervor i pambikëqyrur që mëson funksionin linear f(x) = x dhe përbëhet nga dy pjesë: një kodues dhe një dekoder. Një kodues është një rrjet me shtresa të shumta të fshehura me një numër në rënie të neuroneve. Dekoderi është një rrjet i ngjashëm me një numër në rritje të neuroneve. Ato janë të lidhura me një shtresë të fshehur, e cila ka aq shumë neurone sa duhet të ketë dimensione në një hapësirë ​​të re me dimensionalitet më të ulët dhe është kjo shtresë që është përgjegjëse për zvogëlimin e dimensionalitetit. Ashtu si rrjetet nervore konvolucionale, një autoenkoder nuk ka ndonjë interpretim gjuhësor, kështu që mund të konsiderohet një mjet inxhinierik dhe jo një mjet analitik.

Pavarësisht nga rezultatet mbresëlënëse, një rrjet nervor nuk mund të konsiderohet një mjet i pavarur për analizën e tekstit (kërkimi i modeleve në gjuhë), aq më pak për të kuptuar tekstin. Po, rrjetet nervore bëjnë të mundur gjetjen e lidhjeve të fshehura midis fjalëve dhe zbulimin e modeleve në tekste, por derisa këto lidhje të paraqiten në një formë të interpretueshme, rrjetet nervore do të mbeten mjete mjaft të parëndësishme të mësimit të makinerisë. Për më tepër, në industriale zgjidhje analitike mësimi i thellë nuk është ende i kërkuar, pasi kërkon kosto të paarsyeshme për përgatitjen e të dhënave dhe paparashikueshmërinë e rezultateve. Edhe në komunitetin e kërkimit, ka kritika për përpjekjet për t'i bërë rrjetet nervore një mjet universal. Në vitin 2015, Chris Manning, kreu i grupit të gjuhësisë kompjuterike në Stanford dhe president i ACL, përshkroi qartë zbatueshmërinë e rrjeteve nervore. Në të ai përfshiu detyrat e klasifikimit të tekstit, klasifikimit të sekuencës dhe zvogëlimit të dimensioneve. Megjithatë, falë marketingut dhe popullarizimit të mësimit të thellë, vëmendja ndaj vetë gjuhësisë kompjuterike dhe aplikimeve të saj të reja është rritur.

Letërsia

  1. Tomas Mikolov etj. al. Vlerësimi efikas i paraqitjeve të fjalëve në hapësirën vektoriale, arxiv.org. URL: http://arxiv.org/pdf/1301.3781.pdf
  2. Levy Omer, Yoav Goldberg, Ido Dagan. Përmirësimi i ngjashmërisë së shpërndarjes me mësimet e nxjerra nga futja e fjalëve. Transactions of Association for Computational Linguistics 3. - 2015. - F. 211–225. URL: https://www.transacl.org/ojs/index.php/tacl/article/view/570/124 (data e hyrjes: 05/18/2017).
  3. Pavel Velikhov. Mësimi i makinerisë për të kuptuarit e gjuhës natyrore // Open Systems.DBMS. - 2016. - Nr. 1. - F.18–21. URL: (data e hyrjes: 18.05.2017).
  4. Christopher Manning. Gjuhësia kompjuterike dhe mësimi i thellë. Gjuhësia Kompjuterike. - 2016. URL: http://www.mitpressjournals.org/doi/full/10.1162/COLI_a_00239#.WQH8MBhh2qA (data e hyrjes: 18.05.2017).

Dmitry Ilvovsky ([email i mbrojtur]) - punonjës i Laboratorit Ndërkombëtar sisteme inteligjente Dhe analiza strukturore, Ekaterina Chernyak ([email i mbrojtur]) - mësues i qendrës edukimin e vazhdueshëm, Fakulteti i Shkencave Kompjuterike, Universiteti Kombëtar i Kërkimeve Shkolla e Lartë Ekonomike (Moskë). Puna u krye në kuadër të Programit kërkimi bazë Shkolla e Lartë e Ekonomisë e Universitetit Kombëtar të Kërkimeve.





Ju pëlqeu artikulli? Ndani me miqtë tuaj!