1. ProgrammeerimineBig DataData ScienceData teaduse programmeerimine Mannekeenide jaoks kõik-ühes petuleht
Andmeteaduse programmeerimiskoodi mõiste
  1. ProgrammeerimineBig DataData ScienceMachine Learning vs Deep Learning: sügava õppimise erinevuste selgitamine muudest AI vormidest

Autorid John Paul Mueller, Luca Mueller

Arvestades AI-d tervikuna puudutavate rikkuste, näiteks suurte andmemahtude, kõigile kättesaadava uue ja võimsa arvutusriistvara ning paljude era- ja avaliku sektori investeeringutega, võite olla skeptiline süvaõppe taga oleva tehnoloogia suhtes, mis koosneb närvivõrkude hulgast, kus on rohkem neuroneid ja varjatud kihte kui varem. Sügavad võrgud on kontrastiks mineviku lihtsamate, madalamate võrkudega, millel oli parimal juhul üks või kaks varjatud kihti. Paljud lahendused, mis muudavad sügava õppimise tänapäeval võimalikuks, pole sugugi uued, kuid sügav õppimine kasutab neid uuel viisil.

Sügav õppimine pole lihtsalt vana tehnoloogia - perceptroni - ümbernimetamine, mille avastas 1957. aastal Frank Rosenblatt Cornelli aeronavigatsiooni laboris. Süvaõpe töötab paremini tänu ekstra keerukusele, mida see lisab tänu võimsate arvutite täielikule kasutamisele ja paremate (mitte ainult rohkemate) andmete kättesaadavusele. Sügav õppimine tähendab ka tehnoloogia pakutavate võimaluste põhjalikku kvalitatiivset muutust koos uute ja hämmastavate rakendustega. Nende võimete olemasolu ajakohastab vanu, kuid häid närvivõrke, muutes need millekski uueks. Järgmine artikkel kirjeldab, kuidas sügav õpe oma ülesande saavutab.

Veel kihtide lisamine sügavaks õppimiseks

Võite küsida, miks süvaõpe on õitsenud alles nüüd, kui süvaõppe alusena kasutatud tehnoloogia eksisteeris juba ammu. Arvutid on tänapäeval võimsamad ja sügav õppimine pääseb juurde tohutule hulgale andmetele. Need vastused osutavad siiski ainult sügava õppimisega seotud olulistele probleemidele minevikus ning väiksem arvutusvõimsus koos väiksema andmemahuga polnud ainsad ületamatud takistused. Kuni viimase ajani kannatas sügav õppimine ka peamise tehnilise probleemi käes, mis takistas närvivõrkudel piisavalt kihte tõeliselt keerukate ülesannete täitmiseks.

Kuna see võib kasutada paljusid kihte, saab sügav õppimine lahendada masinõppest väljas olevad probleemid, näiteks pildituvastus, masintõlge ja kõnetuvastus. Ainult mõne kihiga varustatud närvivõrk on täiuslik universaalfunktsiooni lähendaja, mis on süsteem, mis võimaldab luua mis tahes võimalikke matemaatilisi funktsioone. Kui see on paigaldatud paljudele muudele kihtidele, saab närvivõrk maatriksi korrutamise sisemises ahelas luua keeruka esindussüsteemi keerukate probleemide lahendamiseks. Sellise keeruka ülesande nagu pildi tuvastamine toimimise mõistmiseks kaaluge seda toimingut.

  1. Piltide äratundmiseks koolitatud sügav õppesüsteem (näiteks võrk, mis suudab eristada koerte fotosid kassidest) määratleb sisemised raskused, mis suudavad pilditeema ära tunda. Pärast pildi iga kontuuri ja nurga tuvastamist koondab süvaõppe võrk kõik sellised põhijooned komposiitomadusteks. Võrk sobitab sellised funktsioonid ideaalse esitusega, mis pakub vastuse.

Teisisõnu, sügavõppimisvõrgustik suudab koeri kassidest eristada, kasutades sisemisi raskusi, et määratleda kujutis, mis ideaalis peaks koer ja kass sarnanema. Seejärel kasutab ta neid sisemisi raskusi, et sobitada iga teie pakutav uus pilt.

Üks sügava õppimise varasemaid saavutusi, mis teadvustas avalikkust selle potentsiaalist, on kassi neuron. Sel ajal Andrew Ngi ja Jeff Deani juhitud Google Braini meeskond pani kokku 16 000 arvutit, et arvutada rohkem kui miljardi raskusega sügavõppimisvõrk, võimaldades seega YouTube'i videotest ilma juhendamata õppimist. Arvutivõrk võis ilma inimese sekkumiseta isegi ise kindlaks teha, mis kass on ja Google'i teadlastel õnnestus võrgust välja kaevata kujutis selle kohta, kuidas võrk ise kassi välja peaks nägema (vt närvivõrgustikke käsitlevat artiklit Wired) .

Selle aja jooksul, mil teadlased ei suutnud arvutiriistvara piiratuse tõttu rohkem kihte närvivõrku laduda, jäi tehnoloogia potentsiaal maha ja teadlased eirasid närvivõrke. Edu puudumine lisas sügavat skepsist, mis tekkis tehnoloogia ümber eelmisel AI talvel. Mis aga takistas teadlasi midagi keerukamat looma, oli kaduvate gradientide probleem.

Kaduv gradient tekib siis, kui proovite signaali edastada läbi närvivõrgu ja signaal kaob kiiresti nullini lähedale; see ei saa läbi aktiveerimisfunktsioonide. See juhtub seetõttu, et närvivõrgud on aheldatud korrutised. Iga nullist väiksem korrutamine vähendab kiiresti sissetulevaid väärtusi ja aktiveerimisfunktsioonid vajavad signaali edastamiseks piisavalt suuri väärtusi. Mida kaugemad neuronikihid asuvad väljundist, seda suurem on tõenäosus, et nad lukustatakse värskendustest, kuna signaalid on liiga väikesed ja aktiveerimisfunktsioonid peatavad need. Järelikult lõpetab teie võrk õppimise tervikuna või õpib uskumatult aeglases tempos.

Kõik katsed keerukate võrkude kokkupanekuks ja testimiseks lõppesid ebaõnnestumisega, kuna tagasitootmise algoritm ei suutnud kihte sisendile lähemal värskendada, muutes keerukatest andmetest õppimise, isegi kui sellised andmed olid sel ajal kättesaadavad, peaaegu võimatuks. Tänapäeval on sügavad võrgustikud võimalikud tänu Kanada Toronto ülikooli teadlaste, näiteks Geoffrey Hintoni uuringutele, kes nõudsid närvivõrkudes töötamist ka siis, kui need tundusid enamiku jaoks vanamoodsad masinõppe lähenemisviisid.

Neuraalvõrkude väljaõppe veteran professor Hinton (ta aitas määratleda tagasi paljunemise algoritmi) ja tema meeskond Torontos töötasid välja mõned meetodid gradientide kadumise probleemist kõrvalehoidmiseks. Ta avas valdkonna uute lahenduste läbimõtlemiseks, mis tegid närvivõrgud masinõppes ja AI-s taas ülioluliseks tööriistaks.

Professor Hinton ja tema meeskond on meeldejäävad ka selle poolest, et olid esimeste seas, kes testisid GPU kasutamist, et kiirendada sügava närvivõrgu väljaõpet. 2012. aastal võitsid nad ravimiettevõtte Merck ja Kaggle (viimane on andmeteaduste võistluste veebisait) korraldatud avatud konkursi, kasutades oma viimaseid sügava õppimise avastusi. See sündmus tõi nende tööle suurt tähelepanu. Selle Hoffoni intervjuust saate lugeda kõiki üksikasju Hintoni meeskonna revolutsiooniliste saavutuste kohta närvivõrgu kihtidega.

Aktiveerimise muutmine sügavaks õppimiseks

Geoffrey Hintoni meeskond suutis närviarhitektuurile lisada rohkem kihte kahe lahenduse tõttu, mis takistasid paljunemisega seotud probleeme:

  • Nad hoidsid ära plahvatusohtlike gradientide probleemi, kasutades nutikamat võrgu initsialiseerimist. Plahvatav gradient erineb kaduvast gradiendist seetõttu, et see võib panna võrgu puhuma, kuna plahvatav gradient muutub käitlemiseks liiga suureks. Teie võrk võib plahvatada, kui te pole võrku õigesti vormindanud, et see ei saaks arvutada suuri kaalunumbreid. Siis lahendate hävimisprobleemid võrgu aktiveerimise muutmisega. Meeskond mõistis, et signaali edastamine läbi erinevate aktiveerimiskihtide kippus summutama tagasiulatuva signaali, kuni pärast sigmoidi aktiveerimise toimimise uurimist muutub see enam liiga nõrgaks, et see enam läbi saaks. Nad kasutasid selle probleemi lahendusena uut aktiveerimist. Valitava algoritmi valik langes ReLU vana aktiveerimistüübi poole, mis tähistab puhastatud lineaarseid ühikuid. ReLU aktiveerimine peatas vastuvõetud signaali, kui see oli alla nulli, tagades närvivõrkude mittelineaarsuse karakteristiku ja lastes signaalil edasi liikuda, nagu see oleks, kui üle nulli. (Seda tüüpi aktiveerimise kasutamine on näide vana, kuid siiski hea tehnoloogia ühendamisest praeguse tehnoloogiaga.) Allolev pilt näitab, kuidas see protsess töötab.
ReLU aktiveerimise funktsioon sügavas õppes

ReLU töötas uskumatult hästi ja laskis tagasiulatuvuse signaalil jõuda algsete sügavate võrgukihtideni. Kui signaal on positiivne, on selle tuletis 1. Vaadates leiate ka tõestusi ReLU tuletise kohta. Pange tähele, et muutumiskiirus on konstantne ja samaväärne ühikuga, kui sisendsignaal on positiivne (kui aga signaal on negatiivne, siis tuletis on 0, takistades seega signaali möödumist).

ReLU funktsiooni saab arvutada f (x) = max (0, x) abil. Selle algoritmi kasutamine suurendas treenimise kiirust palju, võimaldades veelgi sügavamate võrkude kiiret treenimist ilma surnud neuroneid tekitamata. Surnud neuron on see, mida võrk ei saa aktiveerida, kuna signaalid on liiga nõrgad.

Lisamine süvendatud õppimise jaoks väljalangemise järgi

Teine sissejuhatus sügavasse õppesse, mille tegi Hintoni meeskond, et viia lõpule algne sügava õppe lahendus, mille eesmärk on võrgu seadistamine. Reguleeritud võrk piirab võrgukaalu, mis hoiab võrku sisendandmete meeldejätmise ja pealtnägitud andmemustrite üldistamise.

Pidage meeles, et teatud neuronid jätavad meelde konkreetse teabe ja sunnivad teisi neuroneid sellele tugevamale neuronile tuginema, põhjustades nõrkade neuronite loobumist iseenda kasuliku õppimisest (olukorda, mida nimetatakse kooskohanemiseks). Kohanemise vältimiseks lülitab ajutine kood ajutiselt välja neuronite juhusliku osa aktiveerimise võrgus.

Nagu näete allpool oleva pildi vasakpoolsest servast, töötavad kaalud tavaliselt nende sisendeid korrutades väljunditeks aktiveerimiseks. Aktiveerimise väljalülitamiseks korrutab kood maski, mis koosneb juhuslikust segudest nullidest ja tulemustest. Kui neuron korrutatakse ühega, edastab võrk selle signaali. Kui neuron korrutatakse nulliga, peatub võrk selle signaali, sundides teisi neuroneid selles protsessis mitte lootma.

sügav õppimisest loobumine

Väljalangemine töötab ainult treenimise ajal ega puuduta ühtegi raskuse osa. See lihtsalt maskeerib ja peidab osa võrku, sundides maskeerimata osa võtma aktiivsema rolli andmemustrite õppimisel. Prognoosimise ajal väljalangemine ei tööta ja raskused on arvuliselt ümber arvestatud, et võtta arvesse asjaolu, et nad ei töötanud treenimise ajal kõik koos.

  1. ProgrammingBig DataData ScienceSentimentide analüüsi AI kasutamine

Autorid John Paul Mueller, Luca Mueller

Sentimentide analüüs tuleneb arvutuslikult kirjutatud tekstist, kasutades kirjaniku suhtumist (kas positiivset, negatiivset või neutraalset) tekstiteemale. Selline analüüs osutub kasulikuks turunduse ja kommunikatsiooni valdkonnas töötavatele inimestele, kuna see aitab neil mõista, mida kliendid ja tarbijad tootest või teenusest arvavad, ja tegutseda vastavalt (näiteks proovida rahulolematuid kliente tagasi tuua või otsustada kasutada muud müügistrateegiat). ). Kõik teostavad sentimentide analüüsi. Näiteks proovivad inimesed teksti lugedes kindlaks teha seda meelt, mis teksti kirjutanud inimese liigutas. Kui aga loetavate ja arusaadavate tekstide arv on liiga suur ning tekst kuhjub pidevalt, nagu sotsiaalmeedias ja klientide e-kirjades, on oluline sentimentide analüüsi automatiseerimine.

AI-arvamuse analüüs

Eelseisvaks näiteks on RNN-ide katsesõit Kerase ja TensorFlow abil, mis loob sentimentaalanalüüsi algoritmi, mis on võimeline klassifitseerima filmiülevaates väljendatud hoiakuid. Andmed on IMDb-andmekogu valim, mis sisaldab 50 000 filmi arvustust (jagatud pooleks rongi ja katsekomplektide vahel) koos filmi lisamisega, mis väljendab arvustuse meelsust (0 = negatiivne, 1 = positiivne). IMDb on suur veebiandmebaas, mis sisaldab teavet filmide, teleseriaalide ja videomängude kohta. Algselt fännide baasi hallata, nüüd haldab seda Amazoni tütarettevõte. IMDb-st leiavad inimesed vajaliku teabe oma lemmiksaate kohta ning postitavad oma kommentaarid või kirjutavad arvustuse, et teised külastajad saaksid seda lugeda.

Keras pakub allalaaditavat ümbrist IMDb-andmete jaoks. Saate need andmed ette valmistada, segada ja korraldada rongiks ja katsekomplektiks. Eelkõige puhastatakse Kerase pakutavad IMDb tekstilised andmed kirjavahemärkidest, normaliseeritakse väiketähtedeks ja teisendatakse arvväärtusteks. Iga sõna on kodeeritud numbriks, mis tähistab selle järjekorda sageduses. Kõige sagedamini on sõnadel vähe numbreid; harvemini esinevatel sõnadel on suurem arv.

Alustuseks impordib kood Kerasest imdb-funktsiooni ja kasutab seda andmete Internetist hankimiseks (umbes 17,5 MB allalaadimine). Parameetrid, mida näites kasutatakse, hõlmavad kõige populaarsemat 10 000 sõna ja Keras peaks andmeid konkreetse juhusliku seemne abil segama. (Seemne tundmine võimaldab juhuslikku taasesitamist vastavalt vajadusele.) Funktsioon tagastab kaks rongi- ja testikomplekti, mis mõlemad on tehtud tekstijadadest ja sentimentaalsest tulemusest.

saidilt keras.datasets import imdb
top_words = 10000
((x_õpe, y_õpe),
(x_test, y_test)) = imdb.load_data (num_words = top_words,
seeme = 21)

Pärast eelmise koodi täitmist saate kontrollida näidete arvu järgmise koodi abil:

print ("Koolitusnäited:% i"% len (x_train))
print ("Testinäited:% i"% len (x_test))

Pärast närvivõrgu treenimis- ja testimisfaasis kasutatavate haigusjuhtude arvu uurimist väljastab kood vastuse 25 000 näidet iga faasi kohta. (See andmestik on keeleprobleemide jaoks suhteliselt väike; selgelt on see andmestik peamiselt tutvustamise eesmärkidel.) Lisaks määrab kood kindlaks, kas andmestik on tasakaalus, mis tähendab, et sellel on peaaegu võrdne arv positiivsete ja negatiivsete arvamuste näiteid.

impordi numpy kui np
print (np.unique (y_train, return_counts = True))

Tulemus, massiiv ([12500, 12500]), kinnitab, et andmekogum jaotatakse ühtlaselt positiivsete ja negatiivsete tulemuste vahel. Selline tasakaal vastusklasside vahel tuleneb eranditult andmestiku demonstreeritavusest. Päris maailmas leiate harva tasakaalustatud andmekogumeid. Järgmine samm loob mõned Pythoni sõnastikud, mida saab teisendada andmekogumis kasutatud koodi ja päris sõnade vahel. Tegelikult on selles näites kasutatud andmekogum eeltöödeldud ja pakub sõnu esindavaid numbrijadasid, mitte sõnu ise. (Kerasest leitud LSTM- ja GRU-algoritmid eeldavad numbrijadade arvudena.)

word_to_id = {w: i ​​+ 3 w jaoks, i failis imdb.get_word_index (). items ()}
id_to_word = {0: '', 1: '', 2: ''}
id_to_word.update ({i + 3: w for w, i in imdb.get_word_index (). items ()})
def teisendustekst (jada):
return '' .join ([id_to_word [s] s järjestuses, kui s> = 3])
printimine (teisenda_tekstiks (x_õpe [8]))

Eelmine koodilõik määratleb kaks teisendussõnastikku (sõnadest numbrilisteks koodideks ja vastupidi) ja funktsiooni, mis tõlgib andmestiku näited loetavaks tekstiks. Näitena prindib kood üheksanda näite: “see film oli nagu halb rongivrakk, nii õudne kui see ka polnud…”. Sellest katkendist saate hõlpsalt arvata, et selle filmi suhtes valitsev sentiment pole positiivne. Sellised sõnad nagu halb, vrakk ja jube edastavad tugevat negatiivset tunnet ning see muudab õige sentimendi ära arvamise lihtsaks.

Selles näites saate numbrilised jadad ja muudate need sõnadeks tagasi, kuid tavaline on vastupidine. Tavaliselt saate sõnadest koosnevaid fraase ja muudate need täisarvudeks, et sisestada RNN-kihti. Keras pakub spetsiaalset funktsiooni Tokenizer, mis suudab seda teie jaoks teha. See kasutab meetodeid fit_on_text, et õppida sõnu treeningandmetest täisarvudeni kaardistama, ja text_to_matrix, teksti teisendamiseks jadaks.

Kuid teistes fraasides ei pruugi te tunnete analüüsiks selliseid paljastavaid sõnu leida. Tunnet väljendatakse peenemal või kaudsemal viisil ning mõistmise mõistmine teksti alguses ei pruugi olla võimalik, sest paljastavad fraasid ja sõnad võivad diskursuses ilmneda palju hiljem. Sel põhjusel peate otsustama ka selle, kui palju fraasi soovite analüüsida.

Tavaliselt võtate teksti algosa ja kasutate seda kogu ülevaate esinemisena. Mõnikord on mõtte mõistmiseks vaja vaid mõnda algsõna - näiteks esimesed 50 sõna; mõnikord vajate rohkem. Eriti pikad tekstid ei selgita nende orientatsiooni varakult. Seetõttu on teie ülesanne mõista teksti tüüpi, millega töötate, ja otsustada, kui palju sõnu süvaõppe abil analüüsida. Selles näites käsitletakse ainult esimesi 200 sõna, millest peaks piisama.

Olete märganud, et kood hakkab andma koodiga sõnu, mis algavad numbriga 3, jättes koodid vahemikku 0 kuni 2. Madalamate numbrite jaoks kasutatakse spetsiaalseid silte, nagu näiteks fraasi alguse märkimine, tühjade tühikute täitmine, et jada fikseeritaks teatud pikkuses ja märkides välja jäetud sõnad, kuna need pole piisavalt sagedased. Selles näites on toodud kõige sagedamini 10 000 sõna. Siltide kasutamine alguse, lõpu ja tähelepanuväärsete olukordade märkimiseks on trikk, mis töötab RNN-idega, eriti masintõlke korral.

saidist keras.preprocessing.sequence impordi pad_sequences
max_pad = 200
x_train = pad_ tagajärjed (x_train,
maxlen = max_pad)
x_test = pad_ tagajärjed (x_test,
maxlen = max_pad)
prindi (x_õpe [0])

Kasutades Kerase funktsiooni pad_sequences, kui max_pad on seatud 200-le, võtab kood iga ülevaate kakssada sõna. Juhul, kui ülevaade sisaldab vähem kui kakssada sõna, eelneb jadale vajalik arv jadaelementide arvu saavutamiseks nii palju nullväärtusi kui vaja. Jadade teatud pikkuseks lõikamist ja tühikute täitmist nullväärtustega nimetatakse sisendpolstriks - see on oluline töötlemistegevus RNN-ide (nt süvaõppe algoritmid) kasutamisel. Nüüd kujundab kood arhitektuuri:

alates keras.models import Sequential
alates keras.layers impordib Bidirectional, Dense, Dropout
alates keras.layers impordib GlobalMaxPool1D, LSTM
saidilt keras.layers.embeddings importige manustamine
embed_vector_length = 32
mudel = järjestikune ()
model.add (manustamine (top_words,
embed_vector_length,
sisend_pikkus = max_pad))
mudel.add (kahesuunaline (LSTM (64, tagasituleku tagajärjed = tõene)))
mudel.add (GlobalMaxPool1D ())
model.add (tihe (16, aktiveerimine = "relu"))
model.add (Tihe (1, aktiveerimine = "sigmoid"))
mudel.compile (kaotus = 'binaarne_krossentropia',
optimeerija = 'adam',
mõõdikud = ['täpsus'])
prindi (mudel.summary ())

Eelmine koodilõik määratleb süvaõppe mudeli kuju, kus see kasutab Kerasest loodusliku keele töötlemiseks mõnda spetsiaalset kihti. Selles näites on vaja ka mudeli kokkuvõtet (käsk model.summary ()), et erinevate närvikihtide abil kindlaks teha, mis arhitektuuriga toimub.

Teil on manustamiskiht, mis muudab numbrilised jadad tihedaks sõnade manustamiseks. Seda tüüpi sõna manustamine on sobivam RNN-kihtide õppimiseks. Keras pakub manustamiskihti, mis lisaks sellele, et see peab tingimata olema võrgu esimene kiht, suudab täita kaht ülesannet:

  • Eeltöödeldud sõna manustamise (nt Word2vec või GloVe) rakendamine jadasisestusele. Peate lihtsalt manustamist sisaldava maatriksi üle andma selle parameetrikaaludele. Nullist manustatava sõna loomine saadud sisendite põhjal nullist.

Teisel juhul peab manustamine lihtsalt teadma:

  • input_dim: andmetest oodatav sõnavara suurus output_dim: loodava manustamisruumi suurus (nn dimensioonid) input_length: eeldatav jada suurus

Pärast parameetrite kindlaksmääramist leitakse manustamisel paremad kaalud, et muuta järjestused treeningu ajal tihedaks maatriksiks. Tihe maatriksi suurus antakse järjestuste pikkuse ja manustamise mõõtme järgi.

Kui kasutate Kerase pakutavat manustamiskihti, peate meeles pidama, et funktsioon pakub soovitud manustamise mõõtme järgi ainult sõnavara suuruse kaalu maatriksit. See kaardistab sõnad maatriksi veergudesse ja häälestab maatriksi kaalu esitatud näidete järgi. Ehkki see lahendus on ebastandardsete keeleprobleemide jaoks praktiline, ei ole see analoogne eelnevalt käsitletud manustamisviisidega, mis on välja õpetatud teistmoodi ja miljonite näidete alusel.

Näites kasutatakse kahesuunalist pakkimist - LSTM kiht, mis koosneb 64 lahtrist. Kahesuunaline muudab tavalise LSTM-i kihi kahekordistades: Esimesel küljel rakendatakse teie sisestatud sisendite tavalist jada; teisel juhul läbib see jada tagurpidi. Kasutate seda lähenemisviisi, kuna mõnikord kasutate sõnu erinevas järjekorras ja kahesuunalise kihi ehitamisel kasutatakse ükskõik millist sõnamustrit, sõltumata järjekorrast. Kerase rakendamine on tõepoolest lihtne: rakendate selle lihtsalt kihina, mille soovite kahesuunaliselt renderdada, funktsioonina.

Kahesuunaline LSTM on seatud tagastama jadasid (return_sequences = True); see tähendab, et iga lahtri kohta tagastatakse tulemus pärast jada iga elemendi nägemist. Tulemused iga jada kohta on väljundmaatriks suurusega 200 x 128, kus 200 on jadaelementide arv ja 128 on kihis kasutatud LSTM rakkude arv. See meetod takistab RNN-il võtmast iga LSTM-lahtri viimast tulemust. Vihjed teksti sentimentaalsuse kohta võivad tegelikult esineda manustatud sõnade jadas.

Lühidalt, oluline on mitte võtta iga lahtri viimast tulemust, vaid pigem selle parimat tulemust. Seetõttu tugineb kood järgmisele kihile GlobalMaxPool1D, et kontrollida iga LSTM-lahtri pakutavat tulemuste jada ja säilitada ainult maksimaalne tulemus. See peaks tagama, et näide valib tugevaima signaali igast LSTM-kärjest, mis on loodetavasti spetsialiseerunud oma koolitusele tähenduslike signaalide valimiseks.

Pärast närvisignaalide filtreerimist on näites 128 väljundkihti, üks iga LSTM-lahtri kohta. Kood vähendab ja segab signaale, kasutades järjestikku tihedat 16 neuroni kihti koos ReLU aktiveerimisega (muutes seega ainult positiivsed signaalid läbi). Arhitektuur lõpeb viimase sõlmega, kasutades sigmoidi aktiveerimist, mis pigistab tulemused vahemikku 0–1 ja muudab need tõenäoliseks.

Olles määratlenud arhitektuuri, saate nüüd võrku sentimentaalianalüüsi treenida. Piisab kolmest ajastust (andmete edastamine kolm korda läbi võrgu, et see saaks mustreid õppida). Kood kasutab iga kord 256 arvustust sisaldavaid partiisid, mis võimaldab võrgul enne kaalude värskendamist tagasiulatuvust kasutades iga kord näha piisavalt erinevaid sõnu ja tundeid. Lõpuks keskendub kood valideerimisandmete pakutavatele tulemustele (mis ei kuulu treeningandmete hulka). Valideerimisandmetest hea tulemuse saamine tähendab, et närvivõrk töötleb sisendit õigesti. Kood teatab valideerimisandmetest kohe pärast iga ajastu lõppu.

ajalugu = mudel.fail (x_õpe, y_õpe,
valideerimise andmed = (x_test, y_test),
ajajärgud = 3, partii suurus = 256)

Tulemuste saamine võtab küll mõne aja, kuid kui kasutate GPU-d, siis saab see aega tassi kohvi joomiseks. Sel hetkel saate tulemusi valideerimisandmete abil uuesti hinnata. (Tulemused ei tohiks olla üllatusi ega erinevusi sellest, mida kood koolituse ajal teatas.)

kaotus, meeter = mudel.evaluate (x_test, y_test, verbose = 0)
print ("Testi täpsus:% 0.3f"% mõõdik)

Lõplik täpsus, mis on sügavate närvivõrkude õigete vastuste protsent, on umbes 85–86 protsenti. Tulemus muutub pisut iga kord, kui eksperimenteerite, juhuslikkuse tõttu närvivõrgu ehitamisel. See on täiesti normaalne, arvestades teie töötavate andmete väiksust. Kui alustada õigete õnnelike kaaludega, on õppimine nii lühikese treeningu korral lihtsam.

Lõpuks on teie võrk sentimentaalanalüsaator, mis suudab umbes 85 protsenti ajast õigesti arvata, kas filmi ülevaates väljendatud tunne on õigesti. Arvestades veelgi rohkem koolitusandmeid ja keerukamaid närviarhitektuure, saate veelgi muljetavaldavamaid tulemusi. Turunduses kasutatakse sarnast tööriista paljude protsesside automatiseerimiseks, mis nõuavad teksti lugemist ja toimingute tegemist. Jällegi võiksite sellise võrgu siduda närvivõrguga, mis kuulab häält ja muudab selle tekstiks. (See on veel üks RNN-ide rakendus, mis annab nüüd jõudu Alexale, Siri-le, Google Voice'ile ja paljudele teistele isiklikele abilistele.) Üleminek võimaldab rakendusel mõista sentimenti isegi häälväljendustes, näiteks kliendi telefonikõnes.

  1. ProgrammingBig DataData Science10 Sügavat õppimist kasutavate tööde tüübid

Autorid John Paul Mueller, Luca Mueller

Sügavaks õppimiseks on palju erinevaid kasutusvõimalusi - kõike alates teie digitaalassistendi häälega aktiveeritavatest funktsioonidest kuni isesõitvate autodeni välja. Süvaõppe kasutamine oma igapäevaelu parandamiseks on muidugi kena, kuid enamik inimesi vajavad tehnoloogia omaksvõtmiseks muid põhjuseid, näiteks tööd. Õnneks ei mõjuta sügav õppimine ainult teie võimet teavet kiiremini leida, vaid pakub ka tõeliselt huvitavaid töövõimalusi ning koos vau-teguriga, mida ainult sügav õppimine pakub. See artikkel annab teile ülevaate kümnest huvitavast ametist, mis tuginevad tänapäeval mingil määral süvaõppele. See materjal tähistab siiski ainult jäämäe tippu; tekib rohkem ameteid, mis kasutavad sügavat õppimist kiiresti, ja neid lisandub iga päev.

Inimeste juhtimisel võib aidata sügav õppimine

Hirmuäratav film nimega The Circle paneks sind uskuma, et moodne tehnoloogia on veelgi sissetungiv suurem kui George Orwelli 1984. aasta raamatus Big Brother. Osa filmi loost hõlmab kaamerate paigaldamist kõikjale - isegi magamistubadesse. Peategelane ärkab igal hommikul, et tervitada kõiki, kes teda jälgivad. Jah, see võib teile tahtmist pakkuda, kui lubate.

Päris sügav õppimine ei tähenda aga enamasti inimeste jälgimist ja hindamist. See sarnaneb rohkem Oracle'i globaalse inimressursside pilvega. Kaugeltki mitte hirmutav, see konkreetne tehnoloogia võib muuta teid nutikaks ja kõigi oma päeva tegevuste tippu. Video on pisut ülaosas, kuid annab teile hea ettekujutuse sellest, kuidas sügav õppimine võib teie töö praegu lihtsamaks teha.

Selle tehnoloogia idee on muuta edu inimestele lihtsamaks. Kui vaatate Oracle'i videot ja sellega seotud materjale, leiate, et see tehnoloogia aitab juhtkonnal välja pakkuda potentsiaalseid teid töötajate eesmärkide saavutamiseks organisatsioonis. Mõnel juhul meeldib töötajatele nende praegune olukord, kuid tarkvara võib siiski soovitada võimalusi, kuidas oma tööd huvitavamaks ja lõbusamaks muuta. Tarkvara hoiab töötajad süsteemist ära eksimast ja aitab töötajat kohandatud tasemel juhtida, nii et iga töötaja saab individuaalse sisendi.

Sügav õppimine parandab meditsiini

Sügav õppimine mõjutab meditsiini praktikat mitmel viisil, nagu näete arsti juurde minnes või haiglas aega veetes. Sügav õppimine aitab diagnoosida haigusi ja leida nende õige ravi. Sügavat õppimist kasutatakse isegi raskesti tuvastatavate probleemide, sealhulgas silmaga seotud probleemide diagnoosimisprotsessi parandamiseks. Meditsiini süvaõppe üks olulisemaid kasutusvõimalusi on aga teadusuuringud.

Pealtnäha lihtne teadusuuringute jaoks õigete patsientide leidmine pole tegelikult nii lihtne. Patsiendid peavad vastama rangetele kriteeriumidele või võivad testi tulemused osutuda kehtetuks. Teadlased tuginevad nüüd selliste ülesannete täitmiseks nagu õige patsiendi leidmine, uuringukriteeriumide kujundamine ja tulemuste optimeerimine sügavale õppimisele. Ilmselt vajab meditsiin palju inimesi, kes on koolitatud nii meditsiini kui ka meditsiini süvaõppe tehnikate kasutamiseks, et jätkata oma praeguses tempos edasiminekut.

Sügav õppimine aitab välja töötada uusi seadmeid

Uuendused mõnes arvutitehnoloogia valdkonnas, näiteks põhisüsteem, mis on nüüd kaup, on aastate jooksul aeglustunud. Kuid uuendustegevus valdkondades, mis alles hiljuti muutusid elujõuliseks, on märkimisväärselt suurenenud. Leiutajal on tänapäeval rohkem võimalusi uute seadmete turustamiseks kui kunagi varem. Üks neist uutest valdkondadest on vahendid sügava õppe ülesannete täitmiseks. Suurema keerukusega sügavate õppimisülesannete täitmise potentsiaali loomiseks kasutavad paljud organisatsioonid nüüd spetsiaalset riistvara, mis ületab GPU-de võimalusi - praegu süvaõppe jaoks eelistatud töötlemistehnoloogia.

Süvaõppe tehnoloogia on alles lapsekingades, nii et nutikas leiutaja võiks midagi huvitavat välja pakkuda, ilma et see nii kõvasti tööd teeks. See artikkel räägib uutest AI-tehnoloogiatest, kuid isegi need tehnoloogiad ei hakka mõistma, mis juhtuda võib.

Sügav õppimine on pälvinud nii leiutajate kui ka investorite tähelepanu, kuna sellel on võimalus kasutada kehtivat patendiseadust ja seda, kuidas inimesed loovad uusi asju. Huvitav osa enamiku sedalaadi artiklite kohta on see, et nad ennustavad töökohtade märkimisväärset kasvu, mis on seotud mitmesuguste süvaõppega, millest enamik hõlmab midagi uue loomist. Põhimõtteliselt, kui saate mingil viisil kasutada süvaõpet ja ühendada see praeguse elujõulise ametiga, võite leida endale töökoha või arendada oma ettevõtet.

Sügav õppimine võib pakkuda kliendituge

Paljud sügava õppimisega seotud arutelud käsitlevad vestlusprogramme ja muid klienditoe vorme, sealhulgas tõlketeenuseid. Kui teil on huvi, saate veebipoest Pandorabots.com interaktiivset kogemust kasutada vestlusbotiga. Vestlusbottide ja muude klienditoe tehnoloogiate kasutamine on siiski muret tekitanud.

Mõned tarbijarühmad, kes väidavad, et inimeste klienditugi on hukule määratud, nagu selles Forbesi artiklis. Kui aga olete kunagi pidanud mõne keeruka toimingu tegemiseks vestlusbotiga tegelema, teate, et kogemus on vähem kui ahvatlev. Uus paradigma on inimeste ja chatboti kombinatsioon.

Väidetavalt asendab suur osa tänapäeval kasutatavast tehnoloogiast inimest, kuid enamasti ei saa seda. Praegu peaksite eeldama, et näete paljusid olukordi, kus inimesed ja robotid töötavad koos meeskonnana. Bot vähendab nii füüsiliselt intensiivsete ülesannete täitmise koormust kui ka igapäevaseid, igavaid töid. Inimene teeb huvitavamaid asju ja pakub loomingulisi lahendusi ootamatutele olukordadele. Järelikult peavad inimesed omandama nendes piirkondades töötamiseks vajaliku väljaõppe ja tundma end kindlalt, et jätkavad tasustatavat tööd.

Sügav õppimine aitab teil andmeid näha uutel viisidel

Vaadake mitmeid veebisaite ja muid andmeallikaid ning märkate ühte: kõik esitavad andmeid erinevalt. Arvuti ei mõista esitluse erinevusi ja teda ei mõjuta üks ega teine ​​välimus. See ei saa tegelikult andmetest aru; see otsib mustreid. Süvaõpe võimaldab rakendustel iseseisvalt rohkem andmeid koguda, tagades, et rakendus näeb sobivaid mustreid ka siis, kui need mustrid erinevad rakendusest varem nähtutest. Ehkki sügav õppimine parandab ja kiirendab andmete kogumist, peab inimene siiski andmeid tõlgendama. Tegelikult peavad inimesed ikkagi tagama, et rakendus kogub häid andmeid, kuna rakendus ei saa andmetest tegelikult midagi aru.

Teine viis andmete nägemiseks uutel viisidel on andmete suurendamine. Rakendus teeb jällegi nurinat, kuid inimene otsustab, millist laiendamist pakkuda. Teisisõnu, inimene teeb loova, huvitava osa ja rakendus lihtsalt trudib kaasa, tagades, et asjad töötavad.

Need kaks esimest süvaõppe kasutamist on huvitavad ja loovad jätkuvalt töökohti, kuid süvaõppe kõige huvitavam kasutamine on tegevused, mida veel ei ole. Loov inimene saab vaadata viise, kuidas teised kasutavad sügavat õppimist, ja tulla välja millegi uuega. Vaadake mõnda huvitavat AI kasutamist, masinõpet ja sügavat õpet, mis on alles nüüd praktiliseks muutumas.

Sügav õppimine võimaldab analüüsi kiiremini läbi viia

Kui enamik inimesi räägib analüüsist, mõtlevad nad uurijale, mingile teadlasele või spetsialistile. Mõnes huvitavas kohas on juurdunud sügav õppimine, mille täielikuks kasutamiseks on vaja inimeste osalust, näiteks liiklusõnnetuste ennustamine.

Kujutage ette, et politseiosakond eraldaks liiklusvoogude põhjal ressursse nii, et ametnik ootab juba eeldatava õnnetuse kohas. Politsei leitnant peaks teadma, kuidas seda tüüpi rakendust kasutada. Muidugi pole seda konkreetset kasutamist veel juhtunud, kuid see võib tõenäoliselt juhtuda, kuna see on juba olemasoleva tehnoloogia abil teostatav. Nii et analüüside tegemine ei ole enam töö neile, kelle nime ees on “Dr.”; see on kõigile.

Analüüs iseenesest pole veel nii kasulik. Kasulikuks saab analüüsi ühendamine konkreetse keskkonna konkreetse vajadusega. See, mida teete analüüsiga, määratleb selle analüüsi mõju teile ja teie ümbritsevatele. Inimene saab aru analüüsi kontseptsioonist eesmärgiga; süvaõppelahendus saab läbi viia ainult analüüsi ja anda väljundi.

Sügav õppimine aitab luua paremat töökeskkonda

Sügav õppimine muudab teie elu paremaks ja töötamise nauditavamaks, kui teil on oskusi, mis võimaldavad teil AI-ga edukalt suhelda. Selles artiklis kirjeldatakse, kuidas AI võiks tulevikus töökohta muuta. Selle arutelu oluline element on muuta töö kutsuvamaks.

Inimajaloo ühel hetkel oli töö enamikule inimestele tegelikult nauditav. Pole nii, et nad jooksid kogu aeg lauldes ja naerdes ringi, kuid paljud inimesed ootasid iga päev alustamist. Hiljem, tööstusrevolutsiooni ajal, panid teised inimesed töösse, muutes iga päev töölt eemal olemise ainsaks rõõmuks, mida mõned inimesed nautisid. Probleem on muutunud nii tõsiseks, et selle kohta saate leida populaarseid lugusid, näiteks „Weekendi nimel töötamine“. Töökohalt eemaldamise kaudu võib sügav õppimine muuta töö jälle nauditavaks.

Sügav õppimine mõjutab töökeskkonda mitmel viisil, mitte ainult töö tegelikku tulemuslikkust. Näiteks süvaõppel põhinevad tehnoloogiad võivad parandada teie tervist ja seega ka tootlikkust. See on võit kõigile, sest saate elust ja tööst rohkem rõõmu, samal ajal kui teie ülemus saab teie pingutustest selle varjatud potentsiaali rohkem ära.

Üks asi, mida te sageli ei näe, on arenenud riikide sündivuse languse mõju tootlikkusele. Selles McKinsey artiklis käsitletakse seda küsimust mingil määral ja antakse diagramm, mis näitab süvaõppe võimalikku mõju erinevatele tööstusharudele. Kui praegune suundumus jätkub, tähendab vähem vabade töötajate olemasolu vajadust töökoha laiendamise järele.

Siiski võite oma tuleviku üle imestada, kui muretsete, et te ei pruugi uue reaalsusega kohaneda. Probleem on selles, et te ei pruugi tegelikult teada saada, kas olete ohutu. John Paul Muelleri ja Luca Massaroni [Wiley] ajakirjas Mannekeenid tehisintellekt näete arutelusid AI jaoks ohututest ametitest ja uutest ametitest, mida AI loob. Võite isegi teada saada, kuidas võite mingil hetkel kosmoses töötada. Kahjuks ei taha kõik seda teha, seda enam, kui ludiididel tööstusrevolutsiooni ajal polnud. Kindlasti on sellel, mida AI lubab, tagajärjed veelgi suuremad, kui seda tegi tööstusrevolutsioon (loe tööstusrevolutsiooni mõjude kohta), ja see on veelgi häirivam. Mõned poliitikud, näiteks Andrew Wang, vaatavad juba selliseid lühiajalisi parandusi nagu põhiline universaalne sissetulek. Need põhimõtted, kui need kehtestatakse, aitaksid vähendada AI mõju, kuid need ei paku pikaajalist lahendust. Mingil hetkel muutub ühiskond AI tulemusel oluliselt teistsuguseks kui see on täna - sama palju kui tööstusrevolutsioon on ühiskonda juba muutnud.

Sügav õppimine aitab uurida varjatud või üksikasjalikku teavet

Arvutid saavad teha ühte asja - mustrite sobitamist - erakordselt hästi (ja palju paremini kui inimesed.) Kui teil on kunagi olnud tunne, et hõljub teavet ja ükski see ei seostu teie praeguse vajadusega, pole te üksi. Teave ülekoormus on aastaid olnud probleem ja süveneb iga aastaga. Te võite leida palju nõuandeid teabe üleküllusega tegelemiseks. Probleem on selles, et upitate endiselt teavet. Sügav õppimine võimaldab teil nõela heinakuhjas leida, Kuude asemel võiks hea sügava õppe lahendus leida enamikul juhtudel vajaliku teabe tundide jooksul.

Kuid teadmine, et teave on olemas, ei ole tavaliselt piisav. Teie küsimusele täielikuks vastamiseks vajate piisavalt üksikasjalikku teavet, mis tähendab sageli mitme allika leidmist ja teabe koondamist. Jällegi võiks sügava õppe lahendus leida mustreid ja jagada andmed teie jaoks kokku, nii et te ei pea mitmest allikast saadud andmeid käsitsi ühendama.

Pärast seda, kui AI leiab andmed ja ühendab mitu allikat ühte sidusasse aruandesse (loodate), on ta teinud teie jaoks kõik endast oleneva. Inimese ülesanne on ikkagi seda teavet mõtestada ja otsustada, kuidas seda edukalt kasutada. Arvuti ei eemalda ülesande loomingulist osa; see eemaldab ülesande loomingulise osa täitmiseks vajalike ressursside leidmise tujukuse. Kuna teabe edasine kasv jätkub, võib oodata inimeste arvu kasvu, kes on spetsialiseerunud üksikasjaliku või varjatud teabe leidmisele.

Teabevahendajast on saamas ühiskonna oluline osa ja see esindab huvitavat karjääriteed, millest paljud inimesed pole isegi kuulnud. See artikkel pakub hea kokkuvõtte sellest, mida teabevahendajad teevad.

Sügav õppimine võib aidata hooneid kujundada

Enamik inimesi peab arhitektuuri loominguliseks kaubanduseks. Kujutage ette järgmise Empire State Buildingu või mõne muu ehitise kavandamist, mis peab ajaproovile vastu. Varem võttis sellise hoone projekteerimine aastaid. Kummalisel kombel ehitas töövõtja Empire State Buildingu veidi üle aasta, kuid see pole enamasti nii. Sügav õppimine ja arvutitehnoloogia võivad aidata oluliselt vähendada hoonete kavandamise ja ehitamise aega, võimaldades selliseid asju nagu virtuaalsed läbikäigud. Tegelikult parandab sügava õppe kasutamine arhitektide elu märkimisväärsel viisil.

Kujunduse muutmine virtuaalseks ringreisiks ei ole aga isegi sügava õppe õppimise kõige muljetavaldavam omadus selles valdkonnas. Süvaõppe kasutamine võimaldab disaineritel leida võimalikud inseneriprobleemid, teostada stressitestid ja tagada muul viisil ohutus, enne kui disain kunagi joonestustahvlist lahkub. Need võimalused vähendavad pärast hoone kasutuselevõtmist tekkivate probleemide arvu ja arhitekt saab pigem ebaõnnestumise võimaliku tragöödia asemel edu loorbereid nautida.

Sügav õppimine võib turvalisust suurendada

Õnnetused juhtuvad! Sügav õppimine võib siiski aidata õnnetusi vältida - vähemalt enamasti. Analüüsides keerukaid mustreid reaalajas, võib sügav õppimine aidata inimesi, kes on seotud turvalisuse tagamise eri aspektidega. Näiteks jälgides mitmesuguseid liiklusharjumusi ja ennustades õnnetuse potentsiaali aegsasti, võiks sügava õppe lahendus pakkuda ohutuse ekspertidele soovitusi õnnetuse üldse ärahoidmiseks. Inimene ei saanud analüüsi läbi viia liiga paljude muutujate tõttu. Süvaõppelahendus võib aga analüüsi läbi viia ja seejärel inimesele väljundi potentsiaalseks rakendamiseks.

Nagu kõigi teiste sügava õppimisega seotud ametite puhul, toimib inimene lahenduse mõistva osana. Mitmesugused õnnetused takistavad iga sügavõppelahenduse võimet pakkuda iga kord täpseid lahendusi. Inimesed ei ole etteaimatavad, kuid teised inimesed suudavad õige teabe olemasolul vähendada midagi kohutavat. Süvaõppe lahendus pakub seda õiget teavet, kuid teabe õigesti tõlgendamiseks on vaja inimlikku ettenägelikkust ja intuitsiooni.

  1. ProgrammingBig DataData Science10 rakendused, mis vajavad sügavat õppimist

Autorid John Paul Mueller, Luca Mueller

See artikkel on liiga lühike. See ei saa isegi hakata kirjeldama viise, kuidas sügav õppimine teid tulevikus mõjutab. Mõelge sellele, et see artikkel pakub teile ahvatlevat viset - eelroogi, mis võib teie isu süvendatud maailma põhjalikumaks õppimiseks uurida.

Need sügava õppe rakendused on mõnel juhul juba tavalised. Kasutasite täna tõenäoliselt vähemalt ühte neist ja üsna tõenäoliselt rohkem kui ühte. Ehkki tehnoloogia on hakanud levima laialt, on see tõesti alles algus. Oleme millegi alguses ja AI on sellel hetkel tegelikult üsna ebaküps.

taastage fotodele värv sügavate õpperakendustega

Selles artiklis ei käsitleta tapmisroboteid, düstoopilisi futuure, AI-d läbi ajada ega ühtegi sensatsioonilist stsenaariumi, mida võite filmides näha. Siit leiate teavet päriselu, olemasolevate AI-rakenduste kohta, millega saate tänapäeval suhelda.

Sügavat õppimist saab kasutada mustvalgete videote ja piltide värvi taastamiseks

Tõenäoliselt on teil must-valgeid videoid või pilte pereliikmetest või erilisi sündmusi, mida teile meeldiks näha värvilisena. Värv koosneb kolmest elemendist: toon (tegelik värv), väärtus (värvi tumedus või heledus) ja küllastus (värvi intensiivsus). Kummalisel kombel on paljud kunstnikud värvipimedad ja kasutavad oma loomingus värviväärtust. Seega, kui puudub toon (element, millel mustvalge kunst puudub), pole veel maailma lõpp. Vastupidi, mõned kunstnikud peavad seda eeliseks.

Midagi mustvalgelt vaadates näete väärtust ja küllastust, kuid mitte värvi. Värvimine on tooni uuesti lisamise protsess. Kunstnikud viivad selle protsessi üldjuhul läbi hoolikalt valides üksikuid värve. Kuid AI on selle protsessi automatiseerinud, kasutades konvolutsioonseid närvivõrke (CNN).

CNN-i värvimiseks on lihtsaim viis leida raamatukogu, mis teid abistaks. Algorithmia sait pakub sellist teeki ja näitab mõnda näidiskoodi. Samuti saate rakendust proovida, kleepides URL-i kaasasolevale väljale. See Petapixel.com artikkel kirjeldab, kui hästi see rakendus töötab. See on täiesti hämmastav!

Sügav õppimine võimaldab inimesel reaalajas läheneda

Isikupositsioon ei räägi teile sellest, kes on videovoos, vaid pigem sellest, millised inimese elemendid videovoogus sisalduvad. Näiteks võiks inimese poseerimise abil teada saada, kas videos on inimese küünarnukk ja kus see ilmub. See artikkel räägib teile lähemalt, kuidas see kogu visualiseerimistehnika töötab. Tegelikult näete süsteemi toimimist lühikese animatsiooni kaudu, mis koosneb ühest inimesest ja teisel juhul kolmest inimesest.

Inimeste poseerimisel võib olla igasuguseid kasulikke eesmärke. Näiteks võite kasutada inimese poseerimist, et aidata inimestel parandada oma vormi mitmesuguste spordialade jaoks - kõike golfist bowlinguni. Inimese poseerimine võiks võimaldada ka uut tüüpi videomänge. Kujutage ette, et saaksite jälgida inimese positsiooni mängu jaoks ilma tavapärase tülikas varustuse sortimendita. Teoreetiliselt võiksite kasutada isikuasendeid kuriteopaigaanalüüsi tegemiseks või kuriteo toimepanija võimaluse kindlakstegemiseks.

Veel üks huvitav poseerimise tuvastamise rakendus on meditsiinilisel ja taastusravi eesmärgil. Süvaõppe abil töötav tarkvara võiks teile öelda, kas teete harjutusi õigesti, ja jälgida oma täiustusi. Seda tüüpi rakendus võiks toetada professionaalse rehabilitaatori tööd, hoolitsedes teie eest, kui te ei viibi meditsiiniasutuses (tegevus, mida nimetatakse telerehabilitatsiooniks).

Õnneks saate täna vähemalt inimestega poseerimisega tegelema hakata, kasutades tfjs-models (PoseNet) teeki. Seda näete koos veebikaameraga koos lähtekoodiga. Näite laadimine võtab natuke aega, nii et peate olema kannatlik.

Sügav õppimine võib viia läbi reaalajas käitumise analüüsi

Käitumisanalüüs läheb sammu kaugemale sellest, mida inimene analüüsi põhjal teeb. Käitumisanalüüsi tehes pole küsimus ikkagi selles, kes, vaid kuidas. See konkreetne AI-rakendus mõjutab seda, kuidas müüjad tooteid ja veebisaite kujundavad. Sellised artiklid nagu käesolev Amplituud, ulatuvad väga pikaks, et käitumise analüüsi kasutamist täielikult määratleda ja iseloomustada. Enamikul juhtudel aitab käitumisanalüüs näha, kuidas protsess, mida toote kujundaja eeldas, et järgite, ei vasta tegelikult kasutatavale protsessile.

Käitumise analüüsil on oma roll ka teistes eluvaldkondades. Näiteks võib käitumise analüüs aidata meditsiinitöötajatel tuvastada võimalikke probleeme inimestega, kellel on konkreetsed haigusseisundid, näiteks autism, ja aidata patsiendil neist probleemidest üle saada. Käitumise analüüs võib aidata ka kehalise kunsti õpetajatel näidata õpilastele, kuidas oma oskusi lihvida. Võite näha, et seda kasutatakse juristide kutsealal motiivi kindlakstegemisel. (Süü on ilmne, kuid see, miks inimene midagi teeb, on soovimatu käitumise õiglaseks heastamiseks hädavajalik.)

Õnneks saate juba Pythoni abil käitumise analüüsi tegema hakata.

Keelte tõlkimiseks saab kasutada sügavat õppimist

Internet on loonud keskkonna, mis ei lase teil teada saada, kellega te tegelikult räägite, kus see inimene on või mõnikord isegi siis, kui inimene teiega räägib. Üks asi pole siiski muutunud: vajadus tõlkida üks keel teise, kui kaks osapoolt ei räägi ühist keelt. Mõnel juhul võib väärtõlge olla humoorikas, eeldades, et mõlemal poolel on huumorimeel.

Vale tõlkimine on aga toonud kaasa ka kõiksugu tõsiseid tagajärgi, sealhulgas sõja. Järelikult, isegi kui tõlketarkvara on Internetis äärmiselt juurdepääsetav, on oluline hoolikalt valida, millist toodet kasutada. Üks populaarsemaid neist rakendustest on Google Translate, kuid saadaval on ka palju muid rakendusi, näiteks DeepL. Forbesi sõnul on masintõlge üks valdkond, milles AI silma paistab.

Tõlkerakendused toetuvad tavaliselt kahesuunalistele korduvatele närvivõrkudele (BRNN). Te ei pea oma BRNN-i looma, kuna teil on palju olemasolevaid API-sid, mille vahel valida. Näiteks saate teegi abil Pythoni juurdepääsu Google'i tõlke API-le. Asi on selles, et tõlkimine on tõenäoliselt üks populaarsemaid süvaõpperakendusi ja seda, mida paljud inimesed kasutavad, isegi sellele mõtlemata.

Päikese säästmise potentsiaali hindamiseks saab kasutada sügavat õppimist

Püüda kindlaks teha, kas päikeseenergia teie asukohas tegelikult töötab, on keeruline, kui seda ei kasuta ka paljud teised inimesed. Lisaks on veelgi raskem teada saada, millist säästu võite kasutada. Muidugi ei soovi te päikeseenergiat installida, kui see ei täida teie eesmärke selle kasutamiseks, mis ei pruugi tegelikult tähendada pikaajalist kulude kokkuhoidu (ehkki üldiselt see nii on). Mõned sügava tugevdamise õppeprojektid, sealhulgas Project Sunroof, aitavad teil nüüd arvata päikeseenergiast. Õnneks saate ka Pythoni rakenduses sedalaadi ennustamiseks tuge saada.

AI suudab inimesi arvutimängudes peksa saada

AI-versus inimesed-võistlus köidab jätkuvalt huvi. Alates male võitmisest kuni Go-s võitmiseni näib AI olevat võitmatu - vähemalt ühes mängus ületamatu. Erinevalt inimestest on AI spetsialiseerunud ja AI, mis võib Go-l võita, ei teeni males tõenäoliselt hästi. Isegi siis peetakse 2017. aastat sageli mängude AI-ga inimeste jaoks lõpu alguseks. Muidugi, võistlus on juba mõnda aega kestnud, ja võite tõenäoliselt leida võistlusi, mille AI võitis palju varem kui 2017. Tõepoolest, mõned allikad määravad Go võidu kuupäeva juba oktoobriks 2015. Artikkel huvitavas ehituses kirjeldab veel 11 korda, mille AI võitis.

Probleemiks on kohandatud AI loomine, mis võib kindla mängu võita ja mõista, et sellele mängule spetsialiseerumisel ei pruugi AI teistel mängudel hästi minna. Ainult ühe mängu jaoks AI loomise protsess võib tunduda keeruline. Selles artiklis kirjeldatakse, kuidas ehitada lihtne male AI, mis tegelikult ei võtaks malemeest alla, kuid saaks vahepeamängijaga hästi hakkama.

Tegelikult on aga õige pea öelda, et inimesed on mängust väljas. Tulevikus võivad inimesed AI vastu võistelda rohkem kui ühe mänguga. Näiteid sellist laadi võistlusest on juba palju, näiteks inimesi, kes osalevad mängude triatlonil, mis koosneb pigem kolmest spordiüritusest. Võistlus muutuks sel juhul paindlikkuseks: AI ei saaks lihtsalt jahimeest maha õppida ja ainult ühte mängu õppida, nii et inimesel oleks paindlikkus. Niisugune AI kasutamine näitab, et inimesed ja AI võivad tulevikus teha koostööd, kuna AI on spetsialiseerunud konkreetsetele ülesannetele ja inimene pakub kõigi nõutavate ülesannete täitmiseks vajalikku paindlikkust.

Häälte genereerimiseks saab kasutada sügavat õppimist

Teie auto võib juba teiega rääkida; paljud autod räägivad nüüd regulaarselt inimestega. Kummaline on see, et häälte genereerimine on sageli nii hea, et genereeritud häält on raske tõeliselt hääldada. Mõni artikkel räägib sellest, kuidas üsna reaalseks kõlavate arvutihäälte leidmise kogemus muutub üha tavalisemaks. See probleem köidab piisavalt tähelepanu nüüd, kui paljud kõnekeskused ütlevad teile, et räägite pigem arvutiga kui inimesega.

Ehkki kõneväljund tugineb skriptitud vastustele, võimaldades genereerida äärmiselt kõrge usaldusastmega vastuseid, on hääletuvastust pisut raskem teostada (kuid see on oluliselt paranenud). Häältuvastusega edukaks töötamiseks peate sageli piirduma konkreetsete põhiterminitega. Kasutades märksõnu, mille häältuvastus on mõeldud mõistmiseks, väldite kasutaja vajadust päringut korrata. Spetsiifiliste terminite vajadus loobub sellest, et räägite arvutiga - küsige lihtsalt midagi ootamatut ja arvuti ei tea, mida sellega teha.

Lihtne viis oma kõnesüsteemi rakendamiseks on tugineda olemasolevale API-le, näiteks pilvekõnest tekstini. Muidugi võib vaja minna midagi, mida saate kohandada. Sel juhul osutub kasulikuks API kasutamine. See artikkel räägib sellest, kuidas Pythoni abil oma häälepõhine rakendus üles ehitada.

Demograafia ennustamiseks saab kasutada sügavat õppimist

Demograafia, see oluline või sotsiaalne statistika, mis rühmitab inimesi teatud tunnuste järgi, on alati olnud osa kunstist ja osaliselt teadusest. Leiate arvukalt artikleid selle kohta, kuidas teie arvuti klientide (või potentsiaalsete klientide) jaoks demograafilisi andmeid genereerida. Demograafilisi andmeid kasutatakse laialdaselt, kuid näete, et neid kasutatakse näiteks selleks, et ennustada, millist toodet konkreetne rühm osutab (võrreldes konkurentsi tootega). Demograafia on oluline vahend inimeste kategoriseerimiseks ja nende rühmituste põhjal mõne tegevuse ennustamiseks. Siin on meetodid, mida näete demograafiliste andmete kogumisel sageli AI-dena viidates:

  • Ajalooline: varasemate toimingute põhjal AI üldistab, milliseid toiminguid võiksite tulevikus teha. Praegune tegevus: praeguse toimingu ja võib-olla muude omaduste (nt sugu) põhjal ennustab arvuti teie järgmist toimingut. Omadused: Võttes aluseks teid määratlevad omadused, nagu sugu, vanus ja piirkond, kus te elate, ennustab arvuti tõenäoliselt tehtavaid valikuid.

Leiate artikleid AI ennustamisvõimaluste kohta, mis tunduvad peaaegu liiga head, et tõsi olla. Näiteks öeldakse selles keskmises artiklis, et AI võib nüüd ennustada teie demograafilisi andmeid ainult teie nime põhjal. Selle artikli ettevõte Demografy väidab, et pakub sugu, vanust ja kultuurilist sugulust üksnes nime põhjal. Ehkki sait väidab, et see on 100 protsenti täpne, on see statistika äärmiselt ebatõenäoline, kuna mõned nimed on sugude vahel mitmetähenduslikud, näiteks Renee, ja teised on mõnes riigis määratud ühe soo jaoks, teistes aga sugu. Jah, demograafiline prognoosimine võib toimida, kuid olge ettevaatlik, enne kui usute kõike, mida need saidid teile ütlevad.

Kui soovite katsetada demograafilise ennustamisega, leiate veebis mitmeid API-sid. Näiteks lubab DeepAI API aidata teil ennustada vanust, sugu ja kultuurilist tausta inimese video ilmumise põhjal. Kõik veebipõhised API-liigid on spetsialiseerunud, seega peate valima API, pidades silmas seda, milliseid sisendandmeid saate pakkuda.

AI saab luua kunsti reaalsetest piltidest

Süvaõppes saab kasutada reaalainete pildi ja olemasoleva meistri stiili, et luua nende kahe kombinatsioon. Tegelikult määravad mõned selle lähenemisviisi abil loodud kunstiteosed oksjoniplokis kõrgeid hindu. Selle konkreetse kunstiliigi kohta võite leida igasuguseid artikleid, näiteks seda juhtmega artiklit.

Ehkki pildid on kenasti seinale riputamiseks, võiksite siiski toota muud kunsti. Näiteks saate luua oma pildist 3D-versiooni, kasutades selliseid tooteid nagu Smoothie 3-D. See ei ole sama kui skulptuuri loomine; pildi 3D-versiooni loomiseks kasutate pigem 3D-printerit. Vaadake katset, mida saate läbi viia, et näha, kuidas protsess töötab.

AI väljund ei pea samuti koosnema millestki visuaalsest. Näiteks võimaldab sügav õpe luua muusikat pildi sisu põhjal. See kunstivorm muudab AI kasutatud meetodi selgemaks. AI muudab sisu, mida ta ei mõista, ühest vormist teise. Inimestena näeme ja mõistame transformatsiooni, kuid kõik arvuti näevad numbreid, mida töödelda teiste inimeste loodud nutikate algoritmide abil.

Süvaõppimist saab kasutada loodusõnnetuste prognoosimiseks

Inimesed on loodusõnnetusi proovinud ennustada nii kaua, kui on olnud inimesi ja looduskatastroofe. Keegi ei taha olla osa maavärinast, tornaadost, vulkaanipurskest ega muust looduskatastroofist. Võimalus kiiresti ära pääseda on sel juhul peamine kaalutlus, arvestades, et inimesed ei saa looduskeskkonna katastroofide ennetamiseks oma keskkonda piisavalt hästi kontrollida.

Sügav õppimine annab võimaluse otsida äärmiselt peent mustrit, mis inimeste meeli segab. Vastavalt Google'i lahendust käsitlevale artiklile aitavad need mustrid ennustada loodusõnnetust. See, et tarkvara suudab üldse ette näha katastroofi, on lihtsalt hämmastav. See artikkel hoiatab siiski, et ainult sellisele tarkvarale toetumine oleks viga.

Tehnoloogiaga liialdamine on pidev teema, nii et ärge imestage, et sügav õppimine on täiuslik ka loodusõnnetuste ennustamisel.

  1. ProgrammingBig DataData ScienceDeep õppimine ja korduvad närvivõrgud

Autorid John Paul Mueller, Luca Mueller

Neuraalvõrgud pakuvad teie sisendi teisendamist soovitud väljundiks. Isegi sügavas õppes on protsess sama, ehkki ümberkujundamine on keerulisem. Erinevalt lihtsamast närvivõrgust, mis koosneb vähestest kihtidest, tugineb sügav õppimine keerukate teisenduste tegemiseks rohkematele kihtidele. Andmeallikast saadav väljund ühendatakse närvivõrgu sisendkihiga ja sisendkiht alustab andmete töötlemist. Peidetud kihid kaardistavad mustrid ja seostavad neid konkreetse väljundiga, mis võib olla väärtus või tõenäosus. See protsess töötab suurepäraselt igasuguse sisendi korral ja eriti hästi piltide puhul.

Pärast seda, kui iga kiht oma andmeid töötleb, väljastab ta muundatud andmed järgmisele kihile. Järgmine kiht töötleb andmeid eelmistest kihtidest täiesti sõltumatult. Selle strateegia kasutamine tähendab, et kui toidate videot oma närvivõrku, töötleb võrk igat pilti üksteise järel ja tulemus ei muutu üldse, isegi kui pakutavate piltide järjekorda segatakse . Selliselt võrgu käitamisel ei saa te infotöötluse järjekorrast eeliseid.

Kuid kogemus õpetab ka seda, et protsessi mõistmiseks peate mõnikord jälgima sündmusi järjest. Kui kasutate uue sammu uurimiseks eelmisest sammust saadud kogemusi, saate vähendada õppimiskõverat ja vähendada iga sammu mõistmiseks vajalikku aega ja vaeva.

Korduvad närvivõrgud: jadade modelleerimine mälu abil

Mõned neuraalsed arhitektuurid ei võimalda teil elementide jada samaaegselt töödelda, kasutades ühte sisestust. Näiteks kui teil on mitu kuud müüdavaid tooteid, mahutate müüginumbrid kaheteistkümne sisendi abil, üks iga kuu kohta, ja laske närvivõrgul neid korraga analüüsida. Sellest järeldub, et kui teil on pikemaid jadasid, peate need mahutama suurema arvu sisendite abil ja teie võrk muutub üsna tohutuks, kuna iga sisend peaks olema ühendatud iga teise sisendiga. Lõpuks on teil võrk, mida iseloomustab suur arv ühendusi (mis tähendab palju kaalu).

Korduvad närvivõrgud (RNN) on alternatiiviks perceptronile ja CNN-dele. Need ilmusid esmakordselt 1980-ndatel ja mitmesugused teadlased on nende parendamise nimel tööd teinud, kuni hiljuti populaarsuse saavutasid tänu süvaõppe ja arvutusvõimekuse arengule.

RNN-ide idee on lihtne, nad uurivad jada igat elementi üks kord ja säilitavad selle mälu, et nad saaksid seda jada järgmise elemendi uurimisel uuesti kasutada. See sarnaneb sellega, kuidas inimese mõistus teksti lugemisel töötab: inimene loeb teksti tähe kaupa, kuid mõistab sõnu, kui jätab meelde iga sõna tähes. Sarnasel viisil saab RNN sõna seostada tulemusega, kui meenub saadud tähtede jada. Selle meetodi laiendamine võimaldab RNN-il paluda tuvastada, kas fraas on positiivne või negatiivne - laialt kasutatav analüüs, mida nimetatakse sentimentaalianalüüsiks. Võrgustik ühendab positiivse või eitava vastuse teatud sõnajadadele, mida ta on koolitusnäidetes näinud.

Esitate RNN-i graafiliselt neuraalse ühikuna (tuntud ka kui lahter), mis ühendab sisendi väljundiga, aga ka iseendaga. See iseühendus esindab rekursiooni mõistet, mis on funktsioon, mida rakendatakse iseendale, kuni see saavutab kindla väljundi. Rekursiooni üks sagedamini kasutatavaid näiteid on faktoriaalarvutamine. Allolev pilt näitab konkreetset RNN-i näidet, kasutades sõna jazziks tähejärjestust. Alloleva pildi paremal küljel on kujutatud RNN-üksuse käitumist, mis võtab sisendina vastu džässi, kuid tegelikult on seal ainult üks seade, nagu vasakul näidatud.

sügav õppimine ja korduvad närvivõrgud

See pilt näitab vasakul rekursiivset lahtrit ja laiendab seda voltimata ühikute seeriana, mis võtab paremal pool oleva sõna jazz tähed vastu. See algab j-ga, millele järgnevad teised tähed. Selle protsessi toimumisel väljastab RNN väljundi ja muudab sisemisi parameetreid. Oma sisemisi parameetreid muutes õpib seade saadud andmetest ja eelmiste andmete mälust. Selle õppimise summa on RNN-i lahtri olek.

Neuraalvõrkude üle arutledes kuulete palju arutelusid raskuste üle. RNN-ide puhul peate teadma ka terminit olek. Kaalud aitavad RNN-i väljundisse sisendeid töödelda, kuid olek sisaldab RNN-i seni nähtud teabe jälgi, seega mõjutab olek RNN-i toimimist. Olek on mingi lühiajaline mälu, mis lähtestatakse pärast jada lõppemist. Kuna RNN-lahter saab jada tükke, teeb see järgmist:

  1. Töötleb neid, muutes oleku iga sisestusega. Väljastab väljundi. Pärast viimase väljundi nägemist õpib RNN parimaid kaalu sisendi õigeks väljundiks kaardistamiseks, kasutades tagasitoomist.

Korduvad närvivõrgud: kõne äratundmine ja tõlkimine

Keelte äratundmise ja tõlkimise oskus muutub iga päevaga olulisemaks, kuna majandused kõikjal globaliseeruvad. Keeletõlge on valdkond, kus AI-l on inimeste ees kindel eelis - sedavõrd, et Digitalist Magazine'i ja Forbesi artiklid hakkavad kahtlema, kui kaua jääb inimese tõlkija elujõuliseks.

Muidugi peate tõlkeprotsessi sügava õppe abil elujõuliseks muutma. Neuraalse arhitektuuri seisukohast on teil paar valikut:

  • Hoidke kõik RNN-lahtri pakutavad väljundid Hoidke viimast RNN-lahtri väljundit

Viimane väljund on kogu RNN-i väljund, kuna see on toodetud pärast järjestuse uurimist. Kuid võite kasutada eelnevaid väljundeid, kui peate ennustama mõnda muud järjestust või kui soovite kausta rohkem RNN-i lahtrid pärast praegust, näiteks töötades konvolutsiooniliste närvivõrkudega (CNN-idega). RNN-ide vertikaalne panus võimaldab võrgul õppida keerulisi järjestusmustreid ja muutuda prognooside koostamisel efektiivsemaks.

Samas kihis saate RNN-e horisontaalselt ka virnastada. Mitme RNN-i jadast õppimise võimaldamine aitab sellel andmetest rohkem saada. Mitme RNN-i kasutamine sarnaneb CNN-idega, milles iga üksik kiht kasutab pildi detailide ja mustrite õppimiseks konvolutsioonisügavusi. Mitme RNN-i puhul suudab kiht haarata uuritava järjestuse erinevaid nüansse.

RNN-ide võrede projekteerimine nii horisontaalselt kui ka vertikaalselt parandab ennustatavaid tulemusi. Väljundi kasutamise üle otsustamine määrab aga ära, mida RNN-ide toega sügava õppimise arhitektuur saavutada võib. Võti on sisenditena kasutatavate elementide arv ja väljundina eeldatav jada pikkus. Kuna süvaõppevõrk sünkroniseerib RNN-i väljundeid, saate soovitud tulemuse.

Mitme RNN-i kasutamisel on mõned võimalused, nagu on kujutatud alloleval pildil:

  • Üks ühele: kui teil on üks sisend ja eeldate ühte väljundit. Nad võtavad ühe juhtumi, mis koosneb teatavast arvust informatiivsetest muutujatest, ja annavad hinnangu, näiteks arvu või tõenäosuse. Üks paljudele: siin on teil üks sisend ja selle tulemusel eeldate väljundite jada. Neuraalvõrkude automaatsed pealdised kasutavad seda lähenemisviisi: sisestate ühe pildi ja koostate pildi sisu kirjeldava fraasi. Paljud ühele: klassikaline näide RNNidest. Näiteks sisestate tekstijada ja ootate väljundina ühte tulemust. Näete seda lähenemisviisi sentimentaalanalüüsi hinnangu või teksti muu klassifikatsiooni koostamiseks. Paljud paljudele: sisestad jada sisendina ja eeldad, et tulemuseks olev jada on väljund. See on paljude kõige muljetavaldavamate sügava õppimisega töötavate AI-rakenduste põhiarhitektuur. Seda lähenemisviisi kasutatakse masintõlkeks (näiteks võrk, mis suudab fraasi automaatselt tõlkida inglise keelest saksa keelde), vestlusbottide jaoks (närvivõrk, mis suudab teie küsimustele vastata ja teiega vaielda) ning jadade sildistamiseks (kõigi piltide klassifitseerimiseks video).
korduva närvivõrgu sisend ja väljund

Masintõlge on masina võime tõlkida õigesti ja tähenduslikult ühte inimkeelt teise. See võime on midagi, mida teadlased on püüdnud pikka aega saavutada, eriti sõjalistel eesmärkidel. Kõigist põnevat lugu kõigist USA ja Vene teadlaste masintõlke katsetest saate lugeda Vassili Zubarevi artiklist. Tõeline läbimurre toimus alles pärast seda, kui Google käivitas oma Google'i närvimasina tõlke (GNMT), mille kohta saate rohkem lugeda Google AI ajaveebist. GNMT tugineb reale RNN-dele (kasutades paljudest-paljudele paradigmat), et lugeda sõnajada keeles, millest soovite tõlkida (seda nimetatakse kodeerijakihiks), ja tagastada tulemused teisele RNN-i kihile (dekoodri kihile), mis teisendab selle tõlgitud väljundiks.

Neuraalne masintõlge vajab kahte kihti, kuna ühe keele grammatika ja süntaks võivad teisest erineda. Üks RNN ei saa korraga haarata kahte keelesüsteemi, seega on kahe keele käsitlemiseks vaja kodeerija-dekoodri paari. Süsteem pole täiuslik, kuid see on uskumatu samm edasi Vassili Zubarevi artiklis kirjeldatud varasemate lahendustega, vähendades oluliselt sõnajärje vigu, leksikaalseid vigu (valitud tõlkesõna) ja grammatikat (kuidas sõnu kasutatakse).

Lisaks sõltub tulemuslikkus koolitusest, kaasatud keelte erinevustest ja nende eripäradest. Näiteks investeerib Jaapani valitsus lauseehituse ehituse tõttu reaalajas häältõlkesse, et aidata 2020. aasta Tokyo olümpiamängudel ja edendada turismi, arendades täiustatud närvivõrgulahendust.

RNN-id on põhjus, miks teie hääleassistent saab teile vastata või teie automaatne tõlk anda teile võõrkeelse tõlke. Kuna RNN on lihtsalt korduv korrutamise ja liitmise toiming, ei saa süvaõppevõrgud tegelikult mingit tähendust mõista; nad lihtsalt töötlevad sõnu ja fraase koolitusel õpitu põhjal.

Korduvad närvivõrgud: piltidele õige pealdise panemine

Veel üks RNN-ide rakendamine, kasutades paljudest-paljudele lähenemisviisi, on pealdise loomine, mis hõlmab kujutise pakkumist närvivõrku ja tekstikirjelduse saamist, mis selgitab pildil toimuvat. Vastupidiselt jututubadele ja masintõlkijatele, kelle väljundit tarbivad inimesed, töötab tiitrite genereerimine robootikaga. See pole midagi enamat kui lihtsalt piltide või videote kirjelduste genereerimine.

Tiitrite loomine võib aidata nägemispuudega inimestel oma keskkonda tajuda, kasutades selliseid seadmeid nagu Horus kantavad, või luua silla robotite jaoks piltide ja teadmisbaaside (mis on tekstipõhised) vahel - võimaldades neil oma ümbrust paremini mõista. Alustate spetsiaalselt välja töötatud andmekogumitest, näiteks Pascal Sentence Dataset; Flickr 30K, mis koosneb Flickri piltidest, millele on lisatud rahvahulga hankimine; või MS Coco andmestik. Kõigis neis andmekogudes sisaldab iga pilt ühte või mitut fraasi, mis selgitavad pildi sisu. Näiteks näete MS Coco andmestiku proovinumbris 5947 nelja lendavat lennukit, mida saaksite õigesti allkirjastada järgmiselt:

  • Neli lennukit on pilves päeval taevas pea kohal Pilves päeval õhus on neli ühe mootoriga lennukit Koosseisus lendav neljast lennukist koosnev rühm Rühm taevast lendavaid lennukeid Lennukipark lendab läbi taeva

Hästi koolitatud närvivõrk peaks suutma toota analoogseid lauseid, kui neile esitatakse sarnane foto. Google avaldas esmakordselt selle probleemi lahenduse kohta dokumendi nimega Show and Tell network ehk NIC (Võrgu kuvamise pealdis) ja seejärel ajakohastas seda aasta hiljem.

Pärast seda on Google NIC-i hankinud ja pakkunud seda TensorFlow-raamistiku osana. Neuraalvõrgustikuna koosneb see eelkoolitatud CNN-ist (näiteks Google LeNet, ImageNeti konkursi 2014. aasta võitja), mis töötleb pilte sarnaselt õppe ülekandmiseks.

Pilt muudetakse väärtuste jadaks, mis tähistab CNN-i tuvastatud kõrgetasemelisi kujutise tunnuseid. Treeningu ajal läheb manustatud pilt RNN-i kihti, mis jätab meelde pildi omadused nende sisemises olekus. CNN võrdleb RNN-ide tulemusi kõigi treeningpildi jaoks võimalike kirjeldustega ja arvutatakse viga. Seejärel levib viga tagasi RNN-i võrku, et kohandada RNN-i kaalu ja aidata tal õppida, kuidas pilte õigesti pildistada. Pärast selle protseduuri korduvat kordamist erinevate piltide abil on võrk valmis uute piltide nägemiseks ja nende uute piltide kirjeldamiseks.

Korduvad närvivõrgud pakuvad võimalusi täpsemaks innovatsiooniks ja võiksid aidata vajalikke toiminguid automatiseerida.

  1. ProgrammeerimineBig DataData ScienceSügav õppimine ja loomuliku keele töötlemine

Autorid John Paul Mueller, Luca Mueller

Lihtsustatult võite keelt vaadata kui tähtedest koosnevat sõnajada (nagu ka kirjavahemärke, sümboleid, emotikone jne). Süvaõpe töötleb keelt kõige paremini RNN-kihtide, näiteks LSTM või GRU abil. Kuid RNN-ide kasutamise teadmine ei ütle teile, kuidas kasutada järjestusi sisendina; peate määrama jadade tüübid. Tegelikult aktsepteerivad süvaõppe võrgud ainult numbrilisi sisendväärtusi. Arvutid kodeerivad teile arusaadavaid tähtede jadasid numbriteks vastavalt protokollile, näiteks Unicode Transformation Format-8 bit (UTF-8). UTF-8 on kõige laialdasemalt kasutatav kodeering.

Süvaõppes saab tekstilisi andmeid töödelda ka RNN-ide asemel konvolutsioonneuraalvõrkude (CNN) abil, esindades jadasid maatriksitena (sarnaselt pilditöötlusega). Keras toetab CNN-i kihte, näiteks Conv1D, mis saavad aja jooksul töötada järjestatud funktsioonidega - see tähendab sõnajadade või muude signaalide jadadega. 1D konvolutsiooniväljundile järgneb tavaliselt MaxPooling1D kiht, mis võtab väljundid kokku. Jadadele rakendatud CNN-id leiavad piiri nende tundmatuses järjestuse globaalse korra suhtes. (Nad kipuvad märkama kohalikke mustreid.) Sel põhjusel on neid kõige parem kasutada järjestuste töötlemisel koos RNN-dega, mitte nende asendajana.

Looduslik keele töötlemine (NLP) koosneb protseduuride seeriast, mis parandavad sõnade ja fraaside töötlemist statistilise analüüsi jaoks, masinõppe algoritme ja sügavat õppimist. NLP võlgneb juured arvutilingvistikale, mis toitis AI reeglitel põhinevaid süsteeme, näiteks ekspertsüsteeme, mis tegid otsuseid inimese teadmiste, kogemuste ja mõtteviisi arvutitõlke põhjal. NLP lõi struktureerimata tekstuaalse teabe struktureeritumaks andmeks, nii et ekspertsüsteemid saaksid seda hõlpsalt manipuleerida ja hinnata.

Sügav õppimine on tänapäeval võimust võtnud ja ekspertsüsteemid piirduvad konkreetsete rakendustega, mille puhul otsustusprotsesside tõlgendatavus ja kontroll on ülitähtis (näiteks meditsiiniliste rakenduste ja mõne isesõitva auto juhtimisharjumuste süsteemide puhul). Ometi on NLP torujuhe paljude sügava õppe rakenduste jaoks endiselt üsna asjakohane.

Looduslik keele töötlemine: mõistmise määratlemine kui tokeniseerimine

NLP torujuhtmes on esimene samm toore teksti hankimine. Tavaliselt salvestate selle mällu või pääsete sellele juurde kettalt. Kui andmed on liiga suured, et neid mällu ära mahutada, säilitate kursori sellele kettale (näiteks katalooginimi ja failinimi). Järgmises näites kasutate loendis talletatud kolme dokumenti (mida tähistavad stringi muutujad) (dokumendi konteiner on korpus

impordi numpy kui np
text = ["Minu koer saab kassidega läbi",
"See kass on tige",
"Mu koer on lõunasöögi ajal õnnelik"]

Pärast teksti hankimist töötlete seda. Iga fraasi töötlemisel eraldate tekstist vastavad funktsioonid (tavaliselt loote sõnade kotimaatriksi) ja annate kõik edasi õppemudelile, näiteks sügava õppe algoritmile. Teksti töötlemise ajal saate teksti manipuleerimiseks kasutada erinevaid teisendusi (tokeniseerimine on ainus kohustuslik teisendus):

  • Normaliseerimine: eemaldage suurtähed. Puhastamine: eemaldage mittetekstuaalsed elemendid, nagu kirjavahemärgid ja numbrid. Märgistamine: jagage lause üksikuteks sõnadeks. Sõna eemaldamise peatamine: eemaldage tavalised mitteinformatiivsed sõnad, mis ei lisa lausele tähendust, näiteks artiklid a ja a. Negatiivide eemaldamine, näiteks mitte, võib olla kahjulik, kui soovite arvamist arvata. Tüvevorm: vähendage sõna selle tüvele (see on sõna vorm enne käändefiksioonide lisamist). Algoritm, mida nimetatakse tüveks, saab seda teha rea ​​reeglite alusel. Lemmatiseerimine: teisendage sõna selle sõnastikuvormi (lemma). See on alternatiiv varitsemisele, kuid on keerukam, kuna te ei kasuta algoritmi. Selle asemel kasutate sõnade teisendamiseks iga sõna selle lemmaks. Pos-sildistamine: sildistage fraasi iga sõna selle grammatiline roll lauses (nt sõna sildistamine tegusõna või nimisõnaga). N-gramm: seostage iga sõna kindla arvuga (n n-grammis) järgmistest sõnadest ja käsitlege neid kordumatu kogumina. Tavaliselt töötavad analüüsi jaoks kõige paremini kaks grammi (kahe külgneva elemendi või žetooni seeria) ja kolm grammi (kolme külgneva elemendi või märgi seeria).

Nende teisenduste saavutamiseks peate vajama spetsiaalset Pythoni paketti, näiteks NLTK või Scikit-learning. Süvaõppe ja suure hulga näidetega töötades vajate ainult põhilisi teisendusi: normaliseerimist, puhastamist ja märgistamist. Süvaõppe kihid saavad määrata, millist teavet kaevandada ja töödelda. Väheste näidetega töötades peate pakkuma võimalikult palju NLP-töötlust, et aidata süvaõppe võrgustikul otsustada, mida teha, hoolimata vähestest näidetest, mida vähe pakub.

Keras pakub funktsiooni keras.preprocessing.text.Tokenizer, mis normaliseerub (kasutades madalamat parameetrit, mille väärtus on True), puhastab (filtrite parameeter sisaldab eemaldatavate märkide jada, tavaliselt neid: '!' # $% & ( ) * +, -. / :; <=>? @ [\] ^ _ `{|} ~ ') ja märgid.

Looduskeele töötlemine: kõigi dokumentide kotti panemine

Pärast teksti töötlemist peate välja tõmbama vastavad funktsioonid, mis tähendab järelejäänud teksti teisendamist numbriliseks teabeks närvivõrgu töötlemiseks. Tavaliselt kasutatakse seda sõnade pakkimise meetodil, mis saadakse teksti sageduse või binaarse kodeerimise teel. See protsess võrdub iga sõna teisendamisega maatriksveeruks, mis on sama lai kui sõnade arv, mida peate esindama. Järgmine näide näitab, kuidas seda protsessi saavutada ja mida see tähendab. Esimese sammuna valmistate põhilise normaliseerimise ja märgistuse, kasutades mõnda Pythoni käsku, et määrata sõna sõnavara suurus töötlemiseks:

unikaalsed_ märksõnad = seatud (sõna.lower () fraasile teksti jaoks
sõna fraasis.split (""))
print (f "Seal on {len (unique_words)} unikaalseid sõnu")

Kood teatab 14 sõna. Nüüd laadite Kekelist funktsiooni Tokenizer ja määrate teksti töötlemiseks, pakkudes eeldatava sõnavara suuruse:

saidist keras.preprocessing.text import Tokenizer
sõnavara_suurus = len (ainulaadsed_ märksõnad) + 1
tokenizer = tokenizer (num_words = sõnavara_suurus)

Liiga väikese sõnavara kasutamine võib olulised sõnad õppeprotsessist välja jätta. See, mis on liiga suur, võib tarbida arvutimälu. Peate esitama Tokenizerile tekstiloendis sisalduvate selgete sõnade arvu õige hinnangu. Lisate alati sõnavarale_suurus ka 1, et fraasi alguse jaoks lisada lisasõna (termin, mis aitab süvaõppevõrku). Sel hetkel kaardistab Tokenizer tekstides olevad sõnad indeksiteks, mis on numbrilised väärtused, mis tähistavad teksti sõnu:

tokenizer.fit_on_texts (tekstid)
printimine (tokenizer.index_word)

Saadud indeksid on järgmised:

{1: 'on', 2: 'minu', 3: 'koer', 4: 'saab', 5: 'mööda',
6: 'koos', 7: 'kassid', 8: 'see', 9: 'kass', 10: 'tige',
11: 'õnnelik', 12: 'millal', 13: 'see', 14: 'lõuna'}

Indeksid tähistavad veeru numbrit, kus asub sõna teave:

print (tokenizer.texts_to_matrix (tekstid))

Saadud maatriks on järgmine:

[[0. 0. 1. 1. 1. 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[0 1. 0. 0. 0. 0. 0. 0. 1. 1. 1. 0. 0. 0. 0.]
[0 1. 1. 1. 0. 0. 0. 0. 0. 0. 0. 0. 1. 1. 1. 1.]]

Maatriks koosneb 15 veerust (14 sõna pluss lause osuti algusest) ja kolmest reast, mis tähistavad kolme töödeldud teksti. See on teksti maatriks, mida töödeldakse pinnapealse närvivõrgu abil (RNN-id vajavad teistsugust vormingut, nagu hiljem arutatud), mis on tekstide arvu järgi alati sõnastiku_suurus. Maatriksi sees olevad numbrid tähistavad, mitu korda sõna fraasis ilmub. See pole siiski ainus võimalik esitusviis. Siin on teised:

  • Sageduse kodeerimine: loeb fraasis esinevate sõnade arvu. üks kuum või binaarne kodeering: märgib sõna olemasolu fraasis, olenemata sellest, mitu korda see ilmub. Termini sagedus - pöörddokumendi sageduse (TF-IDF) skoor: kodeerib mõõtme, selle järgi, mitu korda sõna dokumendis kuvatakse, võrreldes maatriksi sõnade üldarvuga. (Kõrgema hindega sõnad on eristatavamad; madalama hindega sõnad on vähem informatiivsed.)

TF-IDF-i teisendust Kerast saate kasutada otse. Tokenizer pakub meetodit text_to_matrix, mis kodeerib vaikimisi teie teksti ja muudab selle maatriksiks, milles veerud on teie sõnad, read on teie tekstid ja väärtused on sõna sagedus tekstis. Kui rakendate teisenduse, täpsustades mode = 'tfidf', kasutab maatriksväärtuste täitmiseks teisendus sõna sageduste asemel TF-IDF:

print (np.round (tokenizer.texts_to_matrix) (tekstid,
režiim = 'tfidf'), 1))

Pange tähele, et maatriksi esituse kasutamisel, sõltumata sellest, kas kasutate binaarset, sageduslikku või keerukamat TF-IDF-i, olete kaotanud fraasis esineva sõnajärjekorra mõistmise. Töötlemise ajal hajuvad sõnad erinevatesse veergudesse ja närvivõrk ei suuda fraasis sõnajärjekorda ära arvata. Selle korra puudumise tõttu kutsute seda sõnade kott-lähenemiseks.

Sõnade kott-lähenemist kasutatakse paljudes masinõppe algoritmides, sageli tulemustega, mis ulatuvad heast kuni õiglaseni, ja saate seda rakendada tihedas arhitektuurikihti kasutades närvivõrgus. N_grammideks kodeeritud sõnade teisendused (mida eelmises lõigus käsitleti kui NLP-d töötlevat teisendust) annavad veel lisateavet, kuid jällegi ei saa te sõnu seostada.

RNN-id jälgivad jadasid, nii et nad kasutavad endiselt ühte tulist kodeeringut, kuid nad ei kodeeri kogu fraasi, pigem kodeerivad nad iga sümboolikat (see võib olla sõna, märk või isegi hunnik märke) eraldi. Sel põhjusel ootavad nad fraasile vastavat indeksite jada:

printimine (tokenizer.texts_to_sequences (text))

Kuna iga fraas läheb indeksnumbrite jadana närvivõrgu sisendisse, muudetakse number ühe kuumusega kodeeritud vektoriks. Seejärel suunatakse ühe kuumusega kodeeritud vektorid RNN-i kihtidesse ükshaaval, muutes need hõlpsasti õpitavaks. Näiteks maatriksi esimese fraasi teisendus on järgmine:

[[0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0. 0.]
[0 0. 0. 0. 0. 0. 0. 1. 0. 0. 0. 0. 0. 0. 0.]]

Selles esituses saate iga tekstiosa jaoks eraldi maatriksi. Iga maatriks tähistab üksikuid tekste eraldiseisvate sõnadena veergude abil, kuid nüüd tähistavad read sõna välimuse järjekorda. (Esimene rida on esimene sõna, teine ​​rida on teine ​​sõna jne).

Seda põhikäsitlust kasutades on andmeteadlased võimelised kasutama loodusõppe töötlemiseks sügavat õppimist.

  1. ProgrammeerimineBig DataData ScienceNeural Networks and Deep Learning: Neuraalvõrkude diferentseerimine

Autorid John Paul Mueller, Luca Mueller

Kui teate, kuidas närvivõrgud põhimõtteliselt toimivad, peate mõistma nende rolli süvaõppes paremini mõistma, mis neid eristab. Lisaks erinevatele närvivõrguarhitektuuridele võivad aktiveerimisfunktsioonide, optimeerijate ja närvivõrgu õppimiskiiruse valimine olla erinev. Põhitoimingute tundmisest ei piisa, kuna te ei saa soovitud tulemusi. Neuraalvõrgu kapoti alt vaadates saate aru, kuidas saate oma lahendust konkreetsete probleemide modelleerimiseks häälestada. Lisaks aitab närvivõrgu loomiseks kasutatud erinevate algoritmide mõistmine saavutada paremaid tulemusi väiksema vaevaga ja lühema aja jooksul. Järgmine artikkel keskendub kolmele närvivõrkude eristamise valdkonnale.

Neuraalvõrgu jaoks õige aktiveerimisfunktsiooni valimine

Aktiveerimisfunktsioon on närvivõrgu osa, mis lihtsalt määratleb neuroni vallandamise. Mõelge sellele teatud tüüpi tipuna: teatud väärtuse sisestamine ei põhjusta neuroni tulekahju, kuna sellest ei piisa, vaid ainult pisut suurem sisend võib põhjustada neuroni tulekahju. Neuron määratletakse lihtsal viisil järgmiselt:

y = ∑ (kaal * sisend) + kallutatus

Väljund y võib olla mis tahes väärtus vahemikus + lõpmatus ja - lõpmatus. Probleem on siis otsustada, milline y väärtus on tulistamisväärtus, st kus teie närvivõrgus aktiveeritakse funktsioon. Aktiveerimisfunktsioon määrab, milline väärtus on piisavalt kõrge või madal, et kajastada konkreetse neuroni või neuronite rühma närvivõrgu otsustuspunkti.

Nagu kõigil muudel närvivõrkudes, pole teil ka ainult ühte aktiveerimisfunktsiooni. Kasutate aktiveerimisfunktsiooni, mis töötab kindla stsenaariumi korral kõige paremini. Seda silmas pidades saate jaotada aktiveerimisfunktsioonid järgmistesse kategooriatesse:

  • Samm: astmefunktsioon (mida nimetatakse ka binaarfunktsiooniks) tugineb aktiveerimise või mitteaktiveerimise otsuse tegemisel konkreetsele lävele. Sammfunktsiooni kasutamine tähendab, et teate, milline konkreetne väärtus aktiveerimise põhjustab. Astmefunktsioonid on siiski piiratud, kuna nad on kas täielikult aktiveeritud või täielikult desaktiveeritud - halli varjundit pole. Järelikult, kui proovitakse kindlaks teha, milline klass antud sisendi põhjal on kõige tõenäolisem õige, siis sammfunktsioon ei tööta. Lineaarne: Lineaarne funktsioon (A = cx) võimaldab aktiveerimist sirgjooneliselt määrata sisendi põhjal. Lineaarse funktsiooni kasutamine aitab teil otsustada, millist väljundit aktiveerida, lähtudes sellest, milline väljund on kõige õigem (väljendatuna kaaluga). Lineaarsed funktsioonid töötavad siiski ainult ühe kihina. Kui te virnastaksite mitu lineaarset funktsioonikihti, oleks väljund sama kui ühe kihi kasutamisel, mis lükkab edasi närvivõrkude kasutamise eesmärgi. Järelikult võib lineaarne funktsioon esineda ühe kihina, kuid mitte kunagi mitme kihina. Sigmoid: Sigmoidfunktsioon (A = 1/1 + e-x), mis tekitab C- või S-tähe kujulise kõvera, on mittelineaarne. Alustuseks otsitakse omamoodi sammufunktsiooni, välja arvatud see, et kahe punkti vahelised väärtused eksisteerivad tegelikult kõveral, mis tähendab, et sigmoidfunktsioonid saate virnastada mitme väljundiga klassifitseerimise jaoks. Sigmoidfunktsiooni vahemik on 0 kuni 1, mitte - lõpmatuseni + lõpmatuseni nagu lineaarse funktsiooni korral, seega on aktiveerimised seotud kindla vahemikuga. Sigmoidfunktsiooni all kannatab aga probleem, mida nimetatakse kaduvaks gradiendiks, mis tähendab, et funktsioon keeldub pärast teatud punkti õppimist, sest leviv viga kahaneb nullile lähenedes kaugetele kihtidele. Tanh: tanh-funktsioon (A = (2/1 + e-2x) - 1) on tegelikult skaleeritud sigmoidfunktsioon. Selle vahemik on vahemikus –1 kuni 1, nii et see on jällegi täpne meetod neuronite aktiveerimiseks. Suur erinevus sigmoidfunktsioonide ja tanh-funktsioonide vahel on see, et tanh-funktsiooni gradient on tugevam, mis tähendab, et väikeste erinevuste tuvastamine on lihtsam, muutes klassifitseerimise tundlikumaks. Nagu sigmoidne funktsioon, kannatab ka tanh gradientide probleemide kadumise tõttu. ReLU: funktsioon ReLU ehk puhastatud lineaarsed ühikud (A (x) = max (0, x)) pakub väljundit vahemikus 0 kuni lõpmatuseni, seega sarnaneb see lineaarse funktsiooniga, välja arvatud see, et see on ka mittelineaarne, võimaldades teil ReLU funktsioonide virnastamiseks. ReLU eeliseks on see, et see nõuab vähem töötlemisvõimsust, kuna vähem neuroneid põleb. Aktiivsuse puudumine, kui neuron läheneb rea 0 osale, tähendab, et potentsiaalseid väljundeid on vähem, mida vaadata. See eelis võib aga muutuda ka miinuseks, kui teil on probleem, mida nimetatakse surevaks ReLU-ks. Mõne aja pärast ei anna närvivõrgu kaal enam soovitud efekti (see lihtsalt peatab õppimise) ja mõjutatud neuronid surevad - nad ei reageeri ühelegi sisendile.

Samuti on ReLU-l mõned variandid, mida peaksite kaaluma:

  • ELU (eksponentsiaalne lineaarühik): erineb ReLU-st, kui sisendid on negatiivsed. Sel juhul ei lähe väljundid nulli, vaid vähenevad aeglaselt kuni eksponentsiaalselt –1. PReLU (parameetriliselt puhastatud lineaarühik): erineb ReLU-st, kui sisendid on negatiivsed. Sel juhul on väljund lineaarne funktsioon, mille parameetrid õpitakse sama tehnikat kasutades nagu kõigi teiste võrgu parameetrite jaoks. LeakyReLU: Sarnaselt PReLU-ga, kuid lineaarse külje parameeter on fikseeritud.

Tuginedes oma närvivõrgu nutikale optimeerijale

Optimeerija eesmärk on tagada, et teie närvivõrk toimib kiiresti ja õigesti mis tahes probleemi, mida soovite lahendada, muutes närvivõrgu eelarvamusi ja kaalu (masinõppe mudelite täiustamiseks lugege seda artiklit). Selgub, et seda ülesannet täidab algoritm, kuid oodatud tulemuste saamiseks peate valima õige algoritmi. Nagu kõigi närvivõrgustsenaariumide puhul, on teil valida mitmete valikuliste algoritmide tüüpide vahel:

Stohhastiline gradiendi laskumine (SGD)

  • RMSProp AdaGrad AdaDelta AMSGrad Adam ja selle variandid, Adamax ja Nadam

Optimeerija toimib minimeerides või maksimeerides objektiivfunktsiooni (tuntud ka kui tõrkefunktsiooni) väljundi, mida tähistatakse kui E (x). See funktsioon sõltub mudeli sisemistest õpitavatest parameetritest, mida kasutatakse sihtväärtuste (Y) arvutamiseks ennustajate (X) abil. Kaks sisemist õpitavat parameetrit on kaal (W) ja diagonaal (b). Erinevatel algoritmidel on erinevad eesmärgi funktsiooni käsitlemise meetodid.

Optimeerija funktsioone saab liigitada tuletisinstrumentide käsitlemise viisi järgi (dy / dx), mis on y hetkeline muutus x suhtes. Siin on tuletisinstrumentide käsitsemise kaks taset:

  • Esimene järjekord: need algoritmid minimeerivad või maksimeerivad eesmärgi funktsiooni, kasutades parameetrite suhtes gradiendiväärtusi. Teine järjekord: need algoritmid minimeerivad või maksimeerivad objekti funktsiooni, kasutades parameetrite suhtes teise järgu tuletusväärtusi. Teise järgu tuletis võib anda vihje selle kohta, kas esimese järgu tuletis suureneb või väheneb, mis annab teavet joone kumeruse kohta.

Tavaliselt kasutate närvivõrkudes esimese astme optimeerimise tehnikaid, näiteks Gradient Descent, kuna need nõuavad vähem arvutusi ja suures andmekogudes töötamisel lähevad need suhteliselt kiiresti heaks lahenduseks.

Töötava õppimiskiiruse määramine närvivõrgus

Igal optimeerijal on teie närvivõrgu häälestamiseks täiesti erinevad parameetrid. Üks konstant on õppimiskiiruse fikseerimine, mis tähistab kiirust, millega kood värskendab võrgu kaalu (näiteks alfa-parameeter). Õppimiskiirus võib mõjutada nii aega, mida närvivõrk hea lahenduse (ajajärkude arv) õppimiseks võtab, kui ka tulemust. Tegelikult, kui õppimise määr on liiga madal, võtab teie võrk igavesti õppimist. Liiga kõrge väärtuse seadmine põhjustab raskuste värskendamisel ebastabiilsust ja võrk ei lähe kunagi hea lahenduse juurde.

Töötava õppimiskiiruse valimine ja närvivõrgu koolitamine on hirmutav, kuna võite tõhusalt proovida väärtusi vahemikus 0,000001 kuni 100. Parim väärtus erineb optimeerijalt optimeerijale. Valitud väärtus sõltub sellest, millist tüüpi andmeid teil on. Teooriast võib siin vähe abi olla; peate enne närvivõrgu edukaks treenimiseks sobivaima õppimismäära leidmist katsetama erinevaid kombinatsioone.

Vaatamata kogu ümbritsevale matemaatikale on närvivõrkude häälestamine ja nende parimal viisil toimimine enamasti empiiriliste pingutuste küsimus arhitektuuride ja parameetrite erinevate kombinatsioonide proovimisel.

Võtke aega õppimismäära hindamiseks ja seadke see sobivalt, et tagada närvivõrgu optimaalne toimimine.

  1. ProgrammeerimineBig DataData ScienceKuidas masinõpe töötab?

Autorid John Paul Mueller, Luca Mueller

Masinõpe on AI rakendus, mida saab automaatselt õppida ja kogemustest paremaks muuta, ilma et oleks seda selgesõnaliselt programmeeritud. Masinõpe toimub pidevalt kasvava andmemahu analüüsimise tulemusel, nii et põhialgoritmid ei muutu, vaid koodi sisemised kaalud ja eelarvamused, mida kasutatakse konkreetse vastuse valimisel, ei muutu. Muidugi pole miski nii lihtne. Järgmine artikkel räägib lähemalt sellest, mis on masinõpe, et saaksite aru selle kohast AI maailmas ja mida sügav õppimine sellest omandab.

Andmeteadlased viitavad algoritmidena sageli masinõppe rakendamiseks kasutatavale tehnoloogiale. Algoritm on sammhaaval toimingute seeria, tavaliselt arvutused, mis suudavad määratletud probleemi lahendada piiratud arvu sammudega. Masinõppes kasutavad algoritmid rea lõplike sammude abil probleemi lahendamist andmetest õppides.

Masinõppe toimimise mõistmine

Masinõppe algoritmid õpivad, kuid termini õppimine jaoks on sageli raske täpset tähendust leida, kuna andmetest teabe eraldamiseks on erinevaid viise, sõltuvalt sellest, kuidas masinõppe algoritm on üles ehitatud. Üldiselt nõuab õppeprotsess tohutul hulgal andmeid, mis annab konkreetsete sisendite korral eeldatava vastuse. Iga sisend- / vastusepaar esindab näidet ja rohkem näiteid lihtsustab algoritmi õppimist. Selle põhjuseks on asjaolu, et iga sisend- / vastusepaar sobib rea, klastri või muu statistilise esitusega, mis määratleb probleemsed domeenid.

Masinõpe on mudeli optimeerimine, mis kujutab endast andmete matemaatilist ja kokkuvõtlikku esitust, nii et see suudab ennustada või muul viisil määrata sobivat vastust ka siis, kui ta saab sisendi, mida ta pole varem näinud. Mida täpsemini mudel saab õigeid vastuseid pakkuda, seda parem on mudel esitatud andmesisenditest õppinud. Algoritm sobib mudeliga andmetele ja see sobitusprotsess on koolitus.

Alloleval pildil on äärmiselt lihtne graafik, mis simuleerib masinõppes toimuvat. Alustades sisendväärtustega 1, 4, 5, 8 ja 10 ning paarides need vastavate väljunditega 7, 13, 15, 21 ja 25, määrab masinõppe algoritm, et parim viis sisendi ja väljundi suhe on valem 2x + 5. See valem määratleb mudeli, mida kasutatakse sisendandmete - isegi uute, nähtamatute andmete - töötlemiseks vastava väljundväärtuse arvutamiseks. Trendijoon (mudel) näitab selle algoritmi moodustatud mustrit nii, et uus sisend 3 annab ennustatud väljundi 11. Ehkki enamik masinõppe stsenaariume on sellest palju keerulisemad (ja algoritm ei saa luua reeglid, mis kaardistavad iga sisendi täpselt täpse väljundini), see näide annab teile põhilise ettekujutuse toimuvast. Selle asemel, et 3-sisendile vastust eraldi programmeerida, suudab mudel õpitud sisend- / vastuspaaride põhjal arvutada õige vastuse.

põhiline masinõppe stsenaarium

Arusaamine, et masinõpe on puhas matemaatika

Masinõppe keskne idee on see, et saate tegelikkust esindada, kasutades matemaatilist funktsiooni, mida algoritm ei tea ette, kuid mida ta võib pärast mõne teabe nägemist ära arvata (alati paarissisendite ja -väljundite kujul). Saate väljendada reaalsust ja kogu selle keerulist keerukust tundmatute matemaatiliste funktsioonide osas, mille masinõppe algoritmid leiavad ja mis on kättesaadavad nende sisemise matemaatilise funktsiooni modifikatsioonina. See tähendab, et iga masinõppe algoritm on üles ehitatud modifitseeritava matemaatikafunktsiooni ümber. Funktsiooni saab muuta, kuna sellel on selle jaoks sisemised parameetrid või raskused. Selle tulemusel saab algoritm kohandada funktsiooni andmetest võetud konkreetse teabega. See kontseptsioon on igasuguste masinõppe algoritmide põhiidee.

Masinõppes õppimine on puhtalt matemaatiline ja see lõpeb teatud sisendite seostamisel teatud väljunditega. Sellel pole pistmist algoritmi õpitud mõistmisega. (Kui inimesed andmeid analüüsivad, ehitame andmetest teatud määral arusaama.) Õppimisprotsessi kirjeldatakse sageli kui koolitust, kuna algoritm treenitakse vastama õigele vastusele (väljund) igale pakutavale küsimusele (sisendile). (John Paul Muelleri ja Luca Massaroni masinõpe mannekeenidele kirjeldab selle protsessi toimimist üksikasjalikult.)

Vaatamata teadliku mõistmise ja matemaatilise protsessi puudumisele võib masinõpe osutuda kasulikuks paljudes ülesannetes. See annab paljudele AI rakendustele võimaluse jäljendada ratsionaalset mõtlemist, arvestades teatud konteksti, kui õppimine toimub õigete andmete abil.

Erinevad masinõppe strateegiad

Masinõpe pakub andmetest õppimiseks mitmeid erinevaid viise. Sõltuvalt eeldatavast väljundist ja pakutud sisendi tüübist saate algoritme kategoriseerida õpistiili järgi. Valitud stiil sõltub teie olemasolevatest andmetest ja oodatavast tulemusest. Algoritmide loomisel kasutatud neli õpistiili on:

  • Juhendatud masinõpe Juhendamata masinõpe Enesekontrollitud masinõpe Armeerimismasinate õppimine

Järgmistes osades käsitletakse neid masinõppe stiile.

Juhendatud masinõpe

Juhendatud masinõppe algoritmidega töötades on sisendandmed märgistatud ja neil on konkreetne oodatav tulemus. Treeningu abil saate luua mudeli, mille algoritm sobib andmetega. Treeningu edenedes muutuvad ennustused või klassifikatsioonid täpsemaks. Siin on mõned näited juhendatud masinõppe algoritmidest:

  • Lineaarne või logistiline regressioon Toetage vektormasinaid (SVM) Naiivsed Bayes K-Lähimad naabrid (KNN)

Peate eristama regressiooniprobleeme, mille sihtmärk on arvväärtus, ja klassifitseerimisprobleeme, mille sihtmärk on kvalitatiivne muutuja, näiteks klass või silt. Regressioonülesanne võis kindlaks määrata majade keskmised hinnad Bostoni piirkonnas, samas kui klassifitseerimisülesande näites eristatakse iirise lilli nende sepaalse ja kroonlehe mõõtmete põhjal. Siin on mõned näited juhendatud masinõppest:

Juhendamata masinõpe

Kui töötate juhendamata masinõppe algoritmidega, siis sisendandmeid ei sildistata ja tulemusi ei teata. Sel juhul saadakse andmete struktuuride analüüsil vajalik mudel. Struktuurianalüüsil võib olla mitmeid eesmärke, näiteks koondamise vähendamine või sarnaste andmete rühmitamine. Näited juhendamata masinõppest on

  • Klastrid Anomaalia tuvastamine Närvivõrgud

Enesekontrollitud masinõpe

Leiate Internetis igasuguseid õppimisvõimalusi, kuid ise juhendatud õpe kuulub omaette kategooriasse. Mõned inimesed kirjeldavad seda kui iseseisvat juhendatud õppimist, mis annab teile juhendatud õppe eelised, kuid ilma kogu andmete sildistamiseks vajaliku tööta.

Teoreetiliselt võiks isejuhatav lahendada probleeme seoses muude õppimisviisidega, mida praegu võite kasutada. Järgnevas loendis võrreldakse enesekontrolli all õppimist muud tüüpi õppimisega, mida inimesed kasutavad.

  • Juhendatud masinõpe: enesekontrolliga õppimisega seotud kõige lähedasem õppevorm on juhendatud masinõpe, sest mõlemad õppeliigid sõltuvad sisendite paarist ja märgistatud väljundist. Lisaks on mõlemad õppimisvormid seotud regressiooni ja klassifitseerimisega. Erinevus on aga see, et isejuhendatud õppimine ei nõua inimeselt väljundi sildistamist. Selle asemel tugineb väljundmärgise kontekstipõhiseks leidmiseks sisestusandmetesse manustatud korrelatsioonid, manustatud metaandmed või domeeniteadmised. Juhendamata masinõpe: nagu ka juhendamata masinõpe, ei vaja ka isejuhendatud õppimine andmete märgistamist. Siiski keskendub juhendamata õpe andmestruktuurile - st andmetes sisalduvatele mustritele. Seetõttu ei kasuta te ise juhendatud õppimist selliste ülesannete täitmiseks nagu rühmitamine, rühmitamine, mõõtmete vähendamine, soovitusmootorid vms. Pooljuhendatud masinõpe: pooljuhendatud õppelahendus toimib nagu juhendamata õppelahendus, kuna see otsib andmemudeleid. Pooljuhendatud õpe tugineb märgistatud ja sildistamata andmete segule, et oma ülesandeid kiiremini täita, kui see on rangelt sildistamata andmete kasutamisel võimalik. Enesekontrolli all õppimine ei nõua kunagi silte ja kasutab ülesande täitmiseks konteksti, nii et see ignoreeriks silte nende tarnimisel.

Armeerimismasinate õppimine

Tugevdusõpet saate vaadata isejuhendatud õppe laiendusena, kuna mõlemad vormid kasutavad sarnaste eesmärkide saavutamiseks sama lähenemisviisi sildistamata andmetega õppimisel. Tugevdusõpe lisab aga segule tagasisidet. Kui tugevdusõppelahendus täidab ülesande õigesti, saab see positiivset tagasisidet, mis tugevdab mudelit eesmärgi sisendite ja väljundi ühendamisel. Samuti võib see saada negatiivse tagasiside valede lahenduste eest. Mõnes mõttes töötab süsteem paljuski samamoodi nagu koeraga töötamine, mis põhineb hüvitussüsteemil.

Andmete koolitus, kinnitamine ja testimine masinõppe jaoks

Masinõpe on protsess, samamoodi nagu kõik arvutite maailmas on protsess. Eduka masinõppelahenduse loomiseks täidate neid ülesandeid vastavalt vajadusele ja nii sageli kui vaja:

  • Koolitus: masinõpe algab siis, kui koolitate mudelit, kasutades konkreetset algoritmi konkreetsete andmete alusel. Treeningu andmed on muudest andmetest eraldi, kuid need peavad olema ka esinduslikud. Kui koolitusandmed ei kajasta tõepoolest probleemivaldkonda, ei saa saadud mudel anda kasulikke tulemusi. Treeningprotsessi ajal näete, kuidas mudel vastab treeningu andmetele ja teete vastavalt vajadusele muudatusi teie kasutatavatele algoritmidele ja viisile, kuidas te masseerite andmeid enne algoritmi sisestamist. Valideerimine: paljud andmekogumid on piisavalt suured, et jaguneda koolitusosaks ja testimisosaks. Esmalt koolitate mudelit koolitusandmete abil ja seejärel kinnitate seda katseandmete abil. Muidugi peavad testimisandmed jällegi probleemset domeeni täpselt esindama. Samuti peab see olema statistiliselt ühilduv treeningu andmetega. Vastasel juhul ei näe te tulemusi, mis kajastaksid, kuidas mudel tegelikult töötab. Testimine: pärast mudeli koolitamist ja valideerimist peate seda ikkagi katsetama, kasutades reaalmaailma andmeid. See samm on oluline, kuna peate kontrollima, kas mudel töötab tegelikult suurema andmestiku korral, mida te pole treenimiseks ega testimiseks kasutanud. Nagu koolituse ja valideerimise etappide puhul, peavad ka kõik selle toimingu ajal kasutatavad andmed kajastama probleemi domeeni, millega soovite masinõppe mudeli abil suhelda.

Koolitus pakub masinõppe algoritmi, kus on kõikvõimalikud näited nendest sisenditest oodatavate sisendite ja väljundite kohta. Seejärel kasutab masinõppe algoritm seda sisendit matemaatikafunktsiooni loomiseks. Teisisõnu, koolitus on protsess, mille käigus algoritm töötab välja funktsiooni kohandamise andmetele. Sellise funktsiooni väljund on tavaliselt teatud väljundi tõenäosus või väljundina lihtsalt arvväärtus.

Treeningprotsessis toimuva kohta ettekujutluse saamiseks kujutlege last õppimas puid objektide, loomade ja inimeste vahel eristama. Enne kui laps saab seda iseseisvalt teha, tutvustab õpetaja lapsele teatud arvu puupilte koos kõigi faktidega, mis muudavad puu teistest maailma objektidest eristatavaks. Sellisteks faktideks võivad olla omadused, näiteks puu materjal (puit), selle osad (tüvi, oksad, lehed või nõelad, juured) ja asukoht (mulda istutatud). Laps loob teadmise, kuidas puu välja näeb, vastandades puu tunnuste kuvamise muude, erinevate näidete piltidega, näiteks mööbliesemetega, mis on valmistatud puust, kuid millel pole muid puu tunnuseid.

Masinõppe klassifikaator töötab sama. Klassifikaatori algoritm pakub teile väljundina klassi. Näiteks võib see teile öelda, et sisendina esitatud foto vastab puuklassile (mitte loomale ega inimesele). Selleks ehitab ta oma kognitiivsed võimalused, luues matemaatilise formulatsiooni, mis sisaldab kõiki antud sisendfunktsioone viisil, mis loob funktsiooni, mis eristab ühte klassi teisest.

Otsitakse üldistust masinõppes

Kasulikkuseks peab masinõppe mudel esindama esitatud andmete üldvaadet. Kui mudel ei jälgi andmeid piisavalt täpselt, on see alakomplekteeritud - st pole koolituse puudumise tõttu piisavalt paigaldatud. Teisest küljest, kui mudel jälgib andmeid liiga tähelepanelikult, on see liiga kohandatud, jälgides andmepunkte nagu kinnas liiga suure koolituse tõttu. Ala- ja ületalitlus tekitavad probleeme, kuna mudel pole piisavalt üldistatud, et saada kasulikke tulemusi. Arvestades tundmatuid sisendandmeid, sisaldavad saadud ennustused või klassifikatsioonid suuri veaväärtusi. Ainult siis, kui mudel on andmetele õigesti paigaldatud, annab see tulemusi mõistliku veavahemiku piires.

Kogu see üldistamise küsimus on oluline ka masinaõppe kasuks otsustamisel. Masinõppelahendus üldistab alati konkreetsetest näidetest samasuguste näideteni. Kuidas see seda ülesannet täidab, sõltub masinõppelahenduse orientatsioonist ja selle toimimiseks kasutatavatest algoritmidest.

Andmeteadlaste ja teiste masinõpet ja süvaõppe tehnikaid kasutavate inimeste probleem on see, et arvuti ei kuva silti, mis ütleb teile, et mudel sobib andmetega õigesti. Sageli on inimese intuitsiooni küsimus otsustada, millal mudel on piisavalt üldistatud tulemuse saamiseks piisavalt treenitud. Lisaks peab lahenduse looja valima olemasolevate tuhandete hulgast õige algoritmi. Ilma õige algoritmita, mis sobitaks mudeli andmetega, on tulemused pettumust valmistavad. Valimisprotsessi toimimiseks peab andmeteadlane seda valdama

  • Tugevad teadmised saadaolevatest masinõppe algoritmidest Kogemused selliste andmete käsitlemisel Soovitud väljundi mõistmine Soov katsetada erinevaid masinõppe algoritme

Viimane nõue on kõige olulisem, kuna pole kiireid ja kiireid reegleid, mis ütlevad, et konkreetne algoritm töötab igasuguste andmetega igas võimalikus olukorras. Kui see nii oleks, poleks nii palju algoritme saadaval. Parima algoritmi leidmiseks eksperimenteerib andmeteadlane sageli paljude algoritmidega ja võrdleb tulemusi.

Eelarvamuste piiride tundmaõppimine

Teie arvutis pole eelarvamusi. Sellel pole maailma domineerimise eesmärki ega teie elu keeruliseks tegemist. Tegelikult pole arvutitel mingisuguseid eesmärke. Ainus, mida arvuti suudab pakkuda, on sisenditel ja töötlemistehnikal põhinev väljund. Kuid eelarvamused satuvad ikkagi arvutisse ja rikuvad selle tulemusi mitmel viisil:

  • Andmed: andmed ise võivad sisaldada valet või lihtsalt valesid esitusi. Näiteks kui konkreetne väärtus ilmub andmetes kaks korda sagedamini kui reaalses maailmas, rikutakse masinõppe lahenduse väljundit, ehkki andmed ise on õiged. Algoritm: Vale algoritmi kasutamisel sobitatakse masinõppelahendus mudeliga valesti. Koolitus: liiga palju või liiga vähe koolitust muudab seda, kuidas mudel sobib andmetega ja seega ka tulemusega. Inimese tõlgendus: isegi kui masinõppelahendus annab õige tulemuse, võib seda väljundit kasutav inimene seda valesti tõlgendada. Tulemused on natuke sama halvad ja võib-olla halvemad kui siis, kui masinõppe lahendus ei tööta ootuspäraselt.

Peate arvestama eelarvamuste mõjuga, olenemata sellest, millise masinõppe lahenduse loote. Oluline on teada, milliseid piiranguid need kallutused teie masinõppelahendusele seavad ja kas lahendus on piisavalt usaldusväärne, et pakkuda kasulikku väljundit.

Masinõppes silmas pidades mudeli keerukust

Lihtsam on alati parem, kui asi puudutab masinõpet. Paljud erinevad algoritmid võivad pakkuda teile masinõppelahendusest kasulikku väljundit, kuid parim kasutatav algoritm on kõige lihtsamini arusaadav ja kõige sirgemaid tulemusi pakkuv. Occami raseerijat peetakse üldiselt parimaks strateegiaks, mida järgida. Põhimõtteliselt soovitab Occam’s Razor teil kasutada lihtsamat lahendust, mis konkreetse probleemi lahendab. Keerukuse kasvades suureneb ka vigade võimalus.

Algoritmi valimisel peaks kõige olulisem suunav tegur olema lihtsus.