1. ProgramovanieVeľké údajeData ScienceData Science Programovanie All-in-One pre Dummies Cheat Sheet
Koncept programovacieho kódu pre vedu o údajoch
  1. ProgramovanieVeľké údaje Dáta ScienceVzdelávanie strojov vs. Hlboké vzdelávanie: Vysvetlenie rozdielov v hlbokom učení od iných foriem AI

Autor: John Paul Mueller, Luca Mueller

Vzhľadom na rozpaky z bohatstva, ktoré sa týkajú AI ako celku, ako sú veľké množstvá údajov, nový a výkonný výpočtový hardvér, ktorý je k dispozícii každému, a množstvo súkromných a verejných investícií, môžete byť skeptickí voči technológii hlbokého učenia sa, ktorá spočíva neurónových sietí, ktoré majú viac neurónov a skrytých vrstiev ako v minulosti. Hlboké siete kontrastujú s jednoduchšími, plytšími sieťami minulosti, ktoré mali nanajvýš jednu alebo dve skryté vrstvy. Mnohé riešenia, ktoré dnes umožňujú hlboké vzdelávanie, nie sú vôbec nové, ale hlboké vzdelávanie ich využíva novými spôsobmi.

Hlboké vzdelávanie nie je iba rebranding starej technológie, perceptrónu, ktorý objavil v roku 1957 Frank Rosenblatt v Leteckom laboratóriu Cornell. Hlboké vzdelávanie funguje lepšie vďaka mimoriadnej sofistikovanosti, ktorú prináša vďaka plnému využitiu výkonných počítačov a dostupnosti lepších (nielen ďalších) údajov. Hlboké vzdelávanie tiež znamená hlbokú kvalitatívnu zmenu schopností ponúkaných technológiou spolu s novými a úžasnými aplikáciami. Prítomnosť týchto schopností modernizuje staré, ale dobré neurónové siete a mení ich na niečo nové. Nasledujúci článok popisuje, ako hlboké vzdelávanie dosahuje svoju úlohu.

Pridanie ďalších vrstiev pre hlboké učenie

Možno sa čudujete, prečo hlboké vzdelávanie kvitlo až teraz, keď technológia použitá ako základ hlbokého vzdelávania existovala už dávno. Počítače sú dnes výkonnejšie a hĺbkové vzdelávanie má prístup k obrovskému množstvu údajov. Tieto odpovede však poukazujú iba na dôležité problémy s hlbokým učením v minulosti a nižší výpočtový výkon spolu s menším počtom údajov neboli jedinými neprekonateľnými prekážkami. Až donedávna hlboké vzdelávanie tiež trpelo kľúčovým technickým problémom, ktorý bránil neurónovým sieťam mať dostatok vrstiev na vykonávanie skutočne zložitých úloh.

Keďže môže využívať mnoho vrstiev, hlboké vzdelávanie môže vyriešiť problémy, ktoré sú mimo dosahu strojového učenia, ako napríklad rozpoznávanie obrázkov, strojový preklad a rozpoznávanie reči. Ak je nervová sieť vybavená iba niekoľkými vrstvami, je dokonalým aproximátorom univerzálnych funkcií, čo je systém, ktorý dokáže obnoviť akúkoľvek možnú matematickú funkciu. Keď je nervová sieť vybavená mnohými ďalšími vrstvami, je schopná vytvoriť vo svojom vnútornom reťazci maticových násobení sofistikovaný systém reprezentácií na riešenie zložitých problémov. Ak chcete pochopiť, ako funguje zložitá úloha, napríklad rozpoznávanie obrázkov, zvážte tento postup:

  1. Hlboký vzdelávací systém vyškolený na rozpoznávanie obrázkov (napríklad sieť schopná rozlíšiť fotografie psov od tých, ktoré majú mačky) definuje vnútorné závažia, ktoré dokážu rozpoznať tému obrázka. Po zistení každého jednotlivého obrysu a rohu v obraze sieť hlbokého učenia spojí všetky takéto základné vlastnosti do zložených charakteristických znakov. Sieť spája takéto funkcie s ideálnym zobrazením, ktoré poskytuje odpoveď.

Inými slovami, hlboká vzdelávacia sieť môže odlíšiť psy od mačiek pomocou vnútorných váh, aby definovala, čo by sa malo psa a mačke v ideálnom prípade podobať. Tieto vnútorné váhy potom použije na prispôsobenie sa každému novému obrázku, ktorý mu poskytnete.

Jedným z prvých úspechov hlbokého učenia, ktoré zvýšili informovanosť verejnosti o jej potenciáli, je mačací neurón. Tím Google Brain, ktorý v tom čase riadili Andrew Ng a Jeff Dean, dal dohromady 16 000 počítačov na výpočet hĺbkovej vzdelávacej siete s viac ako miliardou váh, čím umožnil nekontrolované učenie z videí YouTube. Počítačová sieť by sama mohla bez akéhokoľvek ľudského zásahu určiť, čo je to mačka, a vedcom spoločnosti Google sa podarilo vyťažiť zo siete zobrazenie toho, ako by mala sieť vyzerať samotná sieť (pozri článok o káblových sieťach diskutujúci o neurónových sieťach). ,

V čase, keď vedci nemohli na neurónovú sieť uložiť viac vrstiev z dôvodu obmedzení počítačového hardvéru, potenciál technológie zostal pochovaný a vedci ignorovali neurónové siete. Nedostatok úspechu prispel k hlbokému skepticizmu, ktorý vznikol okolo technológie počas poslednej zimy AI. To, čo vedcom skutočne bránilo vo vytváraní niečoho sofistikovanejšieho, bol však problém s miznutím gradientov.

Keď sa pokúsite prenášať signál cez neurónovú sieť, dochádza k miznúcemu gradientu a signál sa rýchlo stráca na takmer nulových hodnotách; nemôže sa dostať cez aktivačné funkcie. Deje sa tak preto, že neurónové siete sú pripútané násobením. Každé násobenie pod nulou rýchlo znižuje prichádzajúce hodnoty a aktivačné funkcie potrebujú dostatočne veľké hodnoty, aby signál prešiel. Čím sú ďalšie neurónové vrstvy na výstupe, tým vyššia je pravdepodobnosť, že sa zablokujú aktualizácií, pretože signály sú príliš malé a aktivačné funkcie ich zastavia. V dôsledku toho sa vaša sieť prestane učiť ako celok alebo sa učí neuveriteľne pomaly.

Každý pokus o zostavenie a testovanie zložitých sietí skončil neúspechom, pretože algoritmus backpropagation nemohol aktualizovať vrstvy blížiace sa vstupu, čím sa takmer znemožnilo akékoľvek učenie sa zo zložitých údajov, aj keď boli v tom čase dostupné. Dnes sú hlboké siete možné vďaka štúdiám vedcov z University of Toronto v Kanade, ako je Geoffrey Hinton, ktorí trvali na práci na neurónových sieťach, aj keď sa zdalo, že väčšina z nich je staromódnym prístupom k strojovému vzdelávaniu.

Profesor Hinton, veterán z oblasti neurónových sietí (prispel k definovaniu algoritmu backpropagation), a jeho tím v Toronte vymyslel niekoľko metód, ako obísť problém miznúcich gradientov. Otvoril pole, aby prehodnotil nové riešenia, vďaka ktorým sa neurónové siete stali opäť kľúčovým nástrojom strojového učenia a umelej inteligencie.

Profesor Hinton a jeho tím sú nezabudnuteľní aj preto, že boli medzi prvými, ktorí testovali používanie GPU, aby urýchlili výcvik hlbokej neurónovej siete. V roku 2012 zvíťazili v otvorenej súťaži, ktorú usporiadali farmaceutická spoločnosť Merck a Kaggle (internetová stránka pre súťaže v oblasti vedy o údajoch) pomocou najnovších objavov hlbokého vzdelávania. Táto udalosť pritiahla veľkú pozornosť na ich prácu. Všetky rozhovory o revolučnom úspechu tímu Hinton si môžete prečítať pomocou vrstiev neurónovej siete z tohto rozhovoru s Geoffrey Hintonom.

Zmena aktivácie pre hlboké učenie

Tím Geoffrey Hinton bol schopný pridať viac neurónovej architektúry z dôvodu dvoch riešení, ktoré zabránili problémom s backpropagáciou:

  • Pomocou inteligentnejšej inicializácie siete zabránili problému s explodujúcimi gradientmi. Výbuchový gradient sa líši od miznúceho gradientu, pretože môže spôsobiť, že sa sieť vyhodí do vzduchu, pretože explodujúci gradient je príliš veľký na to, aby sa s ním mohlo narábať. Vaša sieť môže explodovať, pokiaľ sieť neinicializujete správne, aby ste zabránili vo výpočte veľkých čísel hmotnosti. Potom vyriešite problém miznutia gradientov zmenou sieťových aktivácií. Tím si uvedomil, že prechod signálu cez rôzne aktivačné vrstvy mal tendenciu tlmiť signál backpropagácie, až kým sa nestal príliš slabým na to, aby prešiel po preskúmaní, ako funguje aktivácia sigmoidov. Ako riešenie tohto problému použili novú aktiváciu. Výber algoritmu, ktorý sa má použiť, padol na starý typ aktivácie ReLU, ktorý znamená rektifikované lineárne jednotky. Aktivácia ReLU zastavila prijatý signál, ak bol pod nulou, čím sa zaistila nelineárna charakteristika neurónových sietí a nechal signál prejsť tak, ako keby bol nad nulou. (Použitie tohto typu aktivácie je príkladom kombinácie starej, ale stále dobrej technológie so súčasnou technológiou.) Obrázok nižšie ukazuje, ako tento proces funguje.
Funkcia aktivácie reLU pri hlbokom učení

ReLU pracoval neuveriteľne dobre a nechal signál backpropagation doraziť na počiatočné hlboké sieťové vrstvy. Ak je signál kladný, jeho derivát je 1. Môžete tiež nájsť dôkaz o deriváte ReLU pri hľadaní. Pamätajte, že rýchlosť zmeny je konštantná a ekvivalentná jednotke, keď je vstupný signál pozitívny (zatiaľ čo keď je signál negatívny, derivát je 0, čím sa zabráni prechodu signálu).

Funkciu ReLU môžete vypočítať pomocou f (x) = max (0, x). Použitie tohto algoritmu veľa zvýšilo rýchlosť tréningu, čo umožnilo rýchly tréning ešte hlbších sietí bez toho, aby vznikli mŕtve neuróny. Mŕtvy neurón je ten, ktorý sieť nemôže aktivovať, pretože signály sú príliš slabé.

Pridanie regularizácie výpadkom pre hlboké učenie

Ďalší úvod do hlbokého vzdelávania, ktorý uskutočnil tím Hintona na dokončenie počiatočného riešenia hlbokého vzdelávania, bol zameraný na regularizáciu siete. Pravidelná sieť obmedzuje váhy siete, čo bráni sieti zapamätať si vstupné údaje a zovšeobecniť svedecké dátové vzorce.

Pamätajte, že určité neuróny si zapamätajú konkrétne informácie a donútia ostatné neuróny, aby sa spoliehali na tento silnejší neurón, čo spôsobuje, že slabé neuróny sa vzdajú učenia sa všetkého užitočného samého seba (situácia nazývaná spoločná adaptácia). Aby sa predišlo spoločnej adaptácii, kód dočasne vypne aktiváciu náhodnej časti neurónov v sieti.

Ako vidíte z ľavej strany obrázku nižšie, váhy normálne fungujú tak, že vynásobia svoje vstupy do výstupov pre aktivácie. Ak chcete vypnúť aktiváciu, kód vynásobí masku vytvorenú z náhodných kombinácií výsledkov a núl. Ak je neurón vynásobený jedným, sieť odovzdá svoj signál. Keď je neurón vynásobený nulou, sieť zastaví svoj signál, čo núti ostatných neurónov, aby sa naň v tomto procese nespoliehali.

hlboké predčasné ukončenie štúdia

Vypadnutie funguje iba počas tréningu a nedotýka sa žiadnej časti závažia. Jednoducho maskuje a skryje časť siete a núti nevymaskovanú časť, aby zohrávala aktívnejšiu úlohu pri učení vzorov údajov. Počas predikčnej doby nefunguje výpadok a váhy sa číselne upravujú tak, aby sa zohľadnila skutočnosť, že počas tréningu nespolupracovali všetky spolu.

  1. ProgramovanieVeľké dátové dáta ScienceUsing AI na analýzu sentimentu

Autor: John Paul Mueller, Luca Mueller

Analýza sentimentu sa počíta výpočtovo z písomného textu, ktorý využíva postoj autora (či už pozitívny, negatívny alebo neutrálny) k textovej téme. Tento druh analýzy sa ukázal byť užitočným pre ľudí pracujúcich v oblasti marketingu a komunikácie, pretože im pomáha porozumieť tomu, čo si zákazníci a spotrebitelia myslia o produkte alebo službe, a teda konať primerane (napríklad pokúsiť sa získať späť nespokojných zákazníkov alebo sa rozhodnúť použiť inú stratégiu predaja). ). Každý vykonáva analýzu sentimentu. Napríklad pri čítaní textu sa ľudia prirodzene snažia určiť sentiment, ktorý pohol osobu, ktorá ho napísala. Ak je však počet textov na čítanie a porozumenie príliš veľký a text sa neustále hromadí, napríklad v sociálnych médiách a e-mailoch zákazníkov, je dôležitá automatizácia analýzy sentimentu.

Analýza sentimentu AI

Nasledujúcim príkladom je skúšobná prevádzka RNN pomocou Keras a TensorFlow, ktorá vytvára algoritmus analýzy sentimentu schopný klasifikovať postoje vyjadrené v recenzii filmu. Dáta sú vzorkou súboru údajov IMDb, ktorý obsahuje 50 000 recenzií filmov (rozdelených na polovicu medzi vlak a súpravy) sprevádzané štítkom vyjadrujúcim sentiment preskúmania (0 = negatívny, 1 = pozitívny). IMDb je veľká online databáza obsahujúca informácie o filmoch, televíznych seriáloch a videohrách. Pôvodne udržiavaná fanúšikskou základňou, teraz ju prevádzkuje dcérska spoločnosť Amazonu. Na stránkach IMDb ľudia nájdu informácie, ktoré potrebujú o svojej obľúbenej šou, ako aj uverejnia svoje komentáre alebo napíšu recenziu, aby ju mohli prečítať ostatní návštevníci.

Keras ponúka obal na stiahnutie údajov IMDb. Tieto údaje pripravujete, zamiešate a usporiadate do vlaku a do skúšobnej sady. Najmä textové údaje IMDb, ktoré ponúka Keras, sú očistené od interpunkcie, normalizované na malé písmená a transformované do číselných hodnôt. Každé slovo je kódované do čísla, ktoré predstavuje jeho poradie podľa frekvencie. Najčastejšie slová majú nízky počet; menej časté slová majú vyššie čísla.

Ako úvodný bod kód naimportuje funkciu imdb z Kerasu a použije ju na načítanie údajov z internetu (približne 17,5 MB na stiahnutie). Parametre, ktoré príklad používa, zahŕňajú iba prvých 10 000 slov a Keras by mal dáta zamiešať pomocou špecifického náhodného semena. (Poznanie semena umožňuje reprodukciu náhodného výberu podľa potreby.) Funkcia vráti dve sady vlakov a testov, ktoré sú vyrobené z textových sekvencií a výsledku sentimentu.

z keras.datasets import imdb
top_words = 10000
((x_train, y_train),
(x_test, y_test)) = imdb.load_data (num_words = top_words,
semeno = 21)

Po dokončení predchádzajúceho kódu môžete skontrolovať počet príkladov pomocou nasledujúceho kódu:

print ("Príklady školení:% i"% len (x_train))
print ("Príklady testov:% i"% len (x_test))

Po opýtaní sa na počet prípadov, ktoré sú k dispozícii na použitie vo fáze výcviku a testovania neurónovej siete, kód vydá odpoveď 25 000 príkladov pre každú fázu. (Tento dataset je relatívne malý pre jazykový problém; evidentne je to hlavne pre demonštračné účely.) Okrem toho kód určuje, či je dataset vyvážený, čo znamená, že má takmer rovnaký počet pozitívnych a negatívnych príkladov sentimentu.

importovať numpy ako np
tlač (np.unique (y_train, return_counts = True))

Pole výsledkov ([12500, 12500]) potvrdzuje, že množina údajov je rovnomerne rozdelená medzi pozitívne a negatívne výsledky. Takáto rovnováha medzi triedami odpovedí je výlučne kvôli demonštračnej povahe súboru údajov. V skutočnom svete zriedka nájdete vyvážené súbory údajov. Ďalším krokom je vytvorenie niektorých slovníkov Pythonu, ktoré dokážu prevádzať medzi kódom použitým v množine údajov a skutočnými slovami. V skutočnosti je množina údajov použitá v tomto príklade predbežne spracovaná a poskytuje postupnosť čísiel predstavujúcich slová, nie samotné slová. (Algoritmy LSTM a GRU, ktoré nájdete v Kerase, očakávajú sekvencie čísel ako čísla.)

word_to_id = {w: i ​​+ 3 pre w, i v 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 convert_to_text (sekvencia):
návrat '' .join ([id_to_word [s] pre s v poradí, ak s> = 3])
tlačiť (convert_to_text (x_train [8]))

Predchádzajúci úryvok kódu definuje dva slovníky konverzie (od slov k číselným kódom a naopak) a funkciu, ktorá prekladá príklady množiny údajov do čitateľného textu. Napríklad, kód vytlačí deviaty príklad: „Tento film bol ako zlý vrak vlaku tak hrozný, ako to bolo ...“. Z tohto úryvku môžete ľahko očakávať, že sentiment k tomuto filmu nie je pozitívny. Slová ako zlý, troskový a príšerný prejavujú silný negatívny pocit, a preto je ľahké uhádnuť správny sentiment.

V tomto príklade dostanete číselné sekvencie a zmeníte ich späť na slová, ale opak je bežný. Zvyčajne dostanete frázy zložené zo slov a premeníte ich na postupnosť celých čísel, aby sa mohli posúvať do vrstvy RNN. Keras ponúka špecializovanú funkciu Tokenizer, ktorá vám to môže urobiť. Používa metódy fit_on_text, aby sa naučil, ako mapovať slová do celých čísel z tréningových údajov, a documents_to_matrix, aby transformoval text do postupnosti.

V iných frázach však nenájdete takéto odhalujúce slová pre analýzu sentimentu. Pocit je vyjadrený jemnejším alebo nepriamejším spôsobom a pochopenie sentimentu na začiatku textu nemusí byť možné, pretože odhalujúce frázy a slová sa môžu v diskurze objaviť oveľa neskôr. Z tohto dôvodu musíte tiež rozhodnúť, koľko vety chcete analyzovať.

Obvykle si vezmete úvodnú časť textu a použijete ju ako zástupcu pre celú recenziu. Niekedy potrebujete iba niekoľko úvodných slov, napríklad prvých 50 slov, aby ste získali zmysel; niekedy potrebujete viac. Najmä dlhé texty neodhaľujú svoju orientáciu skôr. Je preto na vás, aby ste porozumeli typu textu, s ktorým pracujete, a rozhodli ste sa, koľko slov analyzovať pomocou hlbokého učenia. Tento príklad berie do úvahy iba prvých 200 slov, ktoré by mali stačiť.

Všimli ste si, že kód začína zadávať kód slovám začínajúcim číslom 3, a tak ponecháva kódy od 0 do 2. Nižšie čísla sa používajú pre špeciálne značky, ako napríklad signalizáciu začiatku vety, vyplnenie prázdnych medzier, aby bola sekvencia opravená v určitej dĺžke a označenie slov, ktoré sú vylúčené, pretože nie sú dostatočne časté. Tento príklad zachytáva iba najčastejšie 10 000 slov. Použitie značiek na zdôraznenie počiatočných, koncových a významných situácií je trik, ktorý pracuje s RNN, najmä pri strojovom preklade.

z keras.preprocessing.sequence import pad_sequences
max_pad = 200
x_train = pad_sequences (x_train,
MAXLEN = max_pad)
x_test = pad_sequences (x_test,
MAXLEN = max_pad)
tlač (x_train [0])

Použitím funkcie pad_sequences od Keras s nastavením max_pad na 200 kód berie prvých dvesto slov z každej recenzie. V prípade, že prehľad obsahuje menej ako dvesto slov, pred sekvenciou sa dostane toľko nulových hodnôt, koľko je potrebné, aby sa dosiahol požadovaný počet prvkov sekvencie. Rezanie sekvencií na určitú dĺžku a vyplnenie dutín nulovými hodnotami sa nazýva vstupné odsadenie, čo je dôležitá procesná aktivita pri použití RNN, ako sú algoritmy hlbokého učenia. Teraz kód navrhuje architektúru:

z keras.models import Sequential
z keras.layers importovať Bidirectional, Dense, Dropout
z keras.layers importujte GlobalMaxPool1D, LSTM
z importu keras.layers.embeddings vkladanie
embedding_vector_length = 32
model = sekvenčné ()
model.add (vkladanie (top_words,
embedding_vector_length,
input_length = max_pad))
model.add (obojsmerný (LSTM (64, return_sequences = true)))
model.add (GlobalMaxPool1D ())
model.add (hustá (16, aktivácia = "relu"))
model.add (Hustý (1, aktivácia = "sigmoid"))
model.compile (strata = 'binary_crossentropy',
optimalizácia = 'Adam',
metriky = [ 'presnosť'])
print (model.summary ())

Predchádzajúci úryvok kódu definuje tvar modelu hlbokého učenia, kde používa niekoľko špecializovaných vrstiev na spracovanie prirodzeného jazyka od spoločnosti Keras. Tento príklad tiež vyžadoval zhrnutie modelu (príkaz model.summary ()) na určenie toho, čo sa deje s architektúrou pomocou rôznych neurónových vrstiev.

Máte vrstvu vkladania, ktorá transformuje numerické sekvencie na husté vkladanie slov. Tento typ vkladania slov je vhodnejší na naučenie sa vrstvou RNN. Keras poskytuje vkladaciu vrstvu, ktorá môže byť nevyhnutne prvou vrstvou siete a môže plniť dve úlohy:

  • Aplikácia vopred pripraveného vkladania slov (napríklad Word2vec alebo GloVe) na vstup do sekvencie. Potrebujete iba odovzdať maticu obsahujúcu vloženie do jej hmotností parametrov. Vytvorenie vkladania slova od nuly na základe vstupov, ktoré prijíma.

V tomto druhom prípade musí vkladanie vedieť:

  • input_dim: Veľkosť slovnej zásoby očakávaná od údajov output_dim: Veľkosť vkladacieho priestoru, ktorý sa vytvorí (tzv. rozmery) input_length: Veľkosť sekvencie, ktorú možno očakávať

Keď určíte parametre, vloženie nájde lepšie váhy na transformáciu sekvencií do hustej matrice počas tréningu. Hustá veľkosť matrice je daná dĺžkou sekvencií a rozmernosťou vloženia.

Ak používate vrstvu vkladania, ktorú poskytuje spoločnosť Keras, musíte pamätať na to, že táto funkcia poskytuje iba maticu hmotnosti veľkosti slovnej zásoby podľa rozmeru požadovaného vloženia. Mapuje slová do stĺpcov matice a potom vyladí hmotnosti matíc podľa poskytnutých príkladov. Toto riešenie, aj keď je praktické pre neštandardné jazykové problémy, nie je analogické so slovom embeddings diskutovaným predtým, ktoré sú trénované iným spôsobom a na miliónoch príkladov.

V príklade sa používa obojsmerné balenie - vrstva LSTM s 64 bunkami. Obojsmerný transformuje normálnu vrstvu LSTM jej zdvojnásobením: Na prvej strane použije normálnu postupnosť zadaných vstupov; na druhej strane prechádza opačným smerom. Tento prístup použijete, pretože niekedy používate slová v inom vhodnom poradí a vytvorenie obojsmernej vrstvy zachytí akýkoľvek vzor slova bez ohľadu na poradie. Implementácia Keras je skutočne jednoduchá: stačí ju použiť ako funkciu na vrstvu, ktorú chcete obojsmerne vykresliť.

Obojsmerný LSTM je nastavený na návratové sekvencie (return_sequences = True); to znamená, že pre každú bunku vracia výsledok po zobrazení každého prvku sekvencie. Výsledkom pre každú sekvenciu je výstupná matica 200 x 128, kde 200 je počet sekvenčných prvkov a 128 je počet LSTM buniek použitých vo vrstve. Táto technika bráni RNN v prijímaní posledného výsledku každej bunky LSTM. Rady o sentimente textu sa môžu skutočne objaviť kdekoľvek v poradí vložených slov.

Stručne povedané, je dôležité nebrať posledný výsledok každej bunky, ale skôr najlepší výsledok. Kód sa preto spolieha na nasledujúcu vrstvu GlobalMaxPool1D, aby skontroloval každú sekvenciu výsledkov poskytnutých každou bunkou LSTM a zachoval iba maximálny výsledok. To by malo zaistiť, že príklad vyberie najsilnejší signál z každej bunky LSTM, ktorý je dúfajme, že jeho výcvik sa špecializuje na výber nejakých zmysluplných signálov.

Po filtrovaní nervových signálov má príklad vrstvu 128 výstupov, jeden pre každú bunku LSTM. Kód redukuje a kombinuje signály pomocou postupnej hustej vrstvy 16 neurónov s aktiváciou ReLU (čím prechádza iba pozitívne signály). Architektúra končí koncovým uzlom pomocou sigmoidovej aktivácie, ktorá vytlačí výsledky do rozsahu 0–1 a spôsobí, že budú vyzerať ako pravdepodobnosti.

Po definovaní architektúry môžete teraz trénovať sieť na vykonávanie analýzy sentimentu. Postačia tri epochy (prenos údajov trikrát sieťou, aby sa naučili vzory). Kód zakaždým používa šarže 256 recenzií, čo umožňuje sieti vidieť zakaždým dostatok informácií a sentimentov pred aktualizáciou jej váh pomocou backpropagácie. Nakoniec sa kód zameriava na výsledky poskytované validačnými údajmi (ktoré nie sú súčasťou údajov o školení). Získanie dobrého výsledku z validačných údajov znamená, že neurónová sieť spracováva vstup správne. Kód informuje o validačných údajoch hneď po dokončení každej epochy.

history = model.fit (x_train, y_train,
validation_data = (x_test, y_test),
epochy = 3, veľkosť šarže = 256)

Získanie výsledkov chvíľu trvá, ale ak používate GPU, dokončí sa to v čase, keď si pijete šálku kávy. V tomto okamihu môžete výsledky vyhodnotiť znova pomocou validačných údajov. (Výsledky by nemali mať žiadne prekvapenia ani rozdiely oproti tomu, čo kód uviedol počas tréningu.)

strata, metrika = model.evaluate (x_test, y_test, verbose = 0)
print ("Presnosť testu:% 0,3f"% metrika)

Konečná presnosť, ktorá predstavuje percentuálny podiel správnych odpovedí z hlbokej neurónovej siete, bude približne 85 - 86 percent. Výsledok sa mierne zmení pri každom spustení experimentu z dôvodu náhodnosti pri budovaní neurálnej siete. To je úplne normálne vzhľadom na malú veľkosť údajov, s ktorými pracujete. Ak začnete so správnymi váhami, učenie bude pri takom krátkom tréningu jednoduchšie.

Nakoniec je vaša sieť analyzátor sentimentu, ktorý dokáže odhadnúť sentiment vyjadrený v recenzii filmu asi 85 percent času správne. Vzhľadom na ešte viac údajov o školení a sofistikovanejšie neurónové architektúry získate výsledky, ktoré sú ešte pôsobivejšie. V marketingu sa podobný nástroj používa na automatizáciu mnohých procesov, ktoré vyžadujú čítanie textu a prijímanie opatrení. Opäť by ste mohli spojiť takúto sieť s neurónovou sieťou, ktorá počúva hlas a zmení ho na text. (Toto je ďalšia aplikácia RNN, ktorá teraz napája Alexa, Siri, Google Voice a mnoho ďalších osobných asistentov.) Prechod umožňuje aplikácii porozumieť sentimentu aj vo vokálnych výrazoch, ako je napríklad telefonický hovor od zákazníka.

  1. ProgrammingBig DataData Science10 Druhy pracovných miest, ktoré využívajú hlboké vzdelávanie

Autor: John Paul Mueller, Luca Mueller

Hlboké učenie má mnoho rôznych využití - všetko od hlasom aktivovaných funkcií vášho digitálneho asistenta po autá s vlastným riadením. Používanie hlbokého učenia na zlepšenie vášho každodenného života je, samozrejme, pekné, ale väčšina ľudí potrebuje ďalšie dôvody na to, aby si osvojila technológiu, napríklad získanie zamestnania. Našťastie hlboké vzdelávanie neovplyvňuje iba vašu schopnosť rýchlejšie vyhľadávať informácie, ale ponúka aj niekoľko skutočne zaujímavých pracovných príležitostí as faktorom „páni“, ktorý môže poskytnúť iba hlboké vzdelávanie. Tento článok poskytuje prehľad desiatich zaujímavých povolaní, ktoré sa dnes do istej miery spoliehajú na hlboké vzdelávanie. Tento materiál však predstavuje iba špičku ľadovca; vzniká viac povolaní, ktoré využívajú hlboké učenie sa rýchlo, a každý deň sa pridáva viac.

Hlboké vzdelávanie môže pomôcť pri riadení ľudí

Hrozivý film s názvom The Circle by vás presvedčil, že moderné technológie budú v knihe 1984 od Georga Orwella ešte invazívnejšie ako Veľký brat. Súčasťou príbehu filmu je inštalácia kamier všade - dokonca aj v spálňach. Hlavná postava sa prebúdza každé ráno, aby privítala každého, kto ju sleduje. Áno, ak vám to dovolí, môže vám to poskytnúť spojencov.

Skutočné hlboké vzdelávanie sa však väčšinou netýka monitorovania a posudzovania ľudí. Je to skôr ako globálny cloud ľudských zdrojov spoločnosti Oracle. Vďaka tejto konkrétnej technológii sa nemusíte zdesiť, môžete vyzerať šikovne a na vrchole všetkých aktivít vášho dňa. Video je trochu nad vrcholom, ale dáva vám dobrú predstavu o tom, ako môže hlboké vzdelávanie v súčasnosti uľahčiť prácu.

Myšlienkou tejto technológie je uľahčiť ľuďom úspech. Ak sa pozriete na video spoločnosti Oracle a súvisiace materiály, zistíte, že táto technológia pomáha manažmentu navrhnúť možné cesty k cieľom zamestnancov v rámci organizácie. V niektorých prípadoch sa zamestnancom páči ich súčasná situácia, ale softvér stále dokáže navrhnúť spôsoby, ako zvýšiť ich pútavosť a zábavu. Softvér chráni zamestnancov pred stratou v systéme a pomáha riadiť zamestnanca na vlastnej úrovni tak, aby každý zamestnanec dostal individualizovaný vstup.

Hlboké vzdelávanie zlepšuje medicínu

Hlboké vzdelávanie ovplyvňuje lekársku prax mnohými spôsobmi, ako môžete vidieť, keď idete k lekárovi alebo trávite čas v nemocnici. Hlboké vzdelávanie pomáha pri diagnostikovaní chorôb a pri hľadaní ich správnej liečby. Hlboké učenie sa dokonca používa na zlepšenie diagnostického procesu pri ťažko zistiteľných problémoch, vrátane problémov oka. Jedným z najdôležitejších spôsobov hlbokého vzdelávania v medicíne je však výskum.

Zdanlivo jednoduchý akt nájdenia správnych pacientov na výskumné účely nie je v skutočnosti taký jednoduchý. Pacienti musia spĺňať prísne kritériá, inak sa výsledky testov môžu ukázať ako neplatné. Vedci sa teraz spoliehajú na hĺbkové vzdelávanie, aby vykonávali úlohy, ako je nájdenie správneho pacienta, navrhnutie testovacích kritérií a optimalizácia výsledkov. Je zrejmé, že medicína bude potrebovať veľa ľudí, ktorí sú vyškolení v medicíne aj v používaní techník hlbokého učenia sa pre medicínu, aby pokračovali v dosahovaní pokroku v ich súčasnom tempe.

Hlboké vzdelávanie pomáha pri vývoji nových zariadení

Inovácia v niektorých oblastiach výpočtovej techniky, ako napríklad základný systém, ktorý je v súčasnosti komoditou, sa v priebehu rokov spomaľovala. Inovácie v oblastiach, ktoré sa stali životaschopnými len nedávno, sa však výrazne zvýšili. Vynálezca má dnes viac možností pre nové zariadenia ako kedykoľvek predtým. Jednou z týchto nových oblastí sú prostriedky na vykonávanie úloh hlbokého vzdelávania. Aby sa vytvoril potenciál pre vykonávanie komplexnejších úloh výučby, mnoho organizácií teraz používa špecializovaný hardvér, ktorý presahuje možnosti GPU - v súčasnosti uprednostňovaná technológia spracovania pre hĺbkové vzdelávanie.

Hlboké vzdelávacie technológie sú už v plienkach, takže inteligentný vynálezca by mohol prísť s niečím zaujímavým bez toho, aby skutočne tvrdo pracoval. Tento článok hovorí o nových technológiách AI, ale ani tieto technológie nezačínajú hĺbku toho, čo by sa mohlo stať.

Hlboké vzdelávanie priťahuje pozornosť vynálezcov aj investorov z dôvodu jeho potenciálu pozdvihnúť súčasné patentové právo a spôsobu, akým ľudia vytvárajú nové veci. Zaujímavou súčasťou väčšiny článkov tohto druhu je to, že predpovedajú výrazný nárast pracovných miest, ktoré sa točia okolo rôznych druhov hlbokého vzdelávania, z ktorých väčšina zahŕňa vytvorenie niečoho nového. V podstate, ak dokážete nejakým spôsobom využiť hlboké vzdelávanie a spojiť ho s aktuálnym živým zamestnaním, môžete si nájsť prácu alebo si založiť vlastnú firmu.

Hlboké vzdelávanie môže poskytnúť zákaznícku podporu

Mnoho hlbokých diskusií sa týka chatbotov a iných foriem podpory zákazníkov vrátane prekladateľských služieb. V prípade, že ste zvedaví, môžete mať interaktívny zážitok s chatbotom na Pandorabots.com. Používanie chatbotov a ďalších technológií podpory zákazníkov však vzbudilo obavy.

Niektoré skupiny spotrebiteľov, ktoré hovoria o podpore ľudských zákazníkov, sú odsúdené, ako je to v tomto článku Forbes. Avšak, ak ste sa niekedy museli vysporiadať s chatbotom, aby ste vykonali čokoľvek zložité, viete, že zážitok je menej atraktívny. Nová paradigma je teda kombináciou človeka a chatu.

Väčšina technológií, ktoré dnes používate, údajne nahrádza človeka, ale vo väčšine prípadov to tak nie je. V súčasnosti by ste mali očakávať veľa situácií, v ktorých ľudia a roboti pracujú spolu ako tím. Robot znižuje záťaž pri vykonávaní fyzicky náročných úloh, ako aj pri bežných nudných prácach. Človek urobí zaujímavejšie veci a poskytne kreatívne riešenia neočakávaných situácií. V dôsledku toho musia ľudia získať odbornú prípravu potrebnú na prácu v týchto oblastiach a musia sa cítiť bezpečne, že budú aj naďalej mať zárobkovú činnosť.

Hlboké vzdelávanie vám pomôže vidieť údaje novými spôsobmi

Prezrite si sériu webových stránok a iných zdrojov údajov a všimnite si jednu vec: Všetky údaje poskytujú rôzne. Počítač nerozumie rozdielom v prezentácii a nie je ovplyvňovaný jedným alebo druhým pohľadom. Nerozumie údajom; hľadá vzory. Hlboké učenie umožňuje aplikáciám zhromažďovať viac údajov samostatne tým, že zaisťuje, že aplikácia môže vidieť vhodné vzorce, aj keď sa tieto vzorce líšia od toho, čo už aplikácia predtým videla. Aj keď dôkladné vzdelávanie zlepší a urýchli zber údajov, človek bude musieť údaje interpretovať. Ľudia v skutočnosti stále musia zabezpečiť, aby aplikácia zhromažďovala dobré údaje, pretože aplikácia o údajoch naozaj nerozumie.

Ďalším spôsobom, ako vidieť údaje novými spôsobmi, je vykonať rozšírenie údajov. Opäť platí, že aplikácia chrochtanie funguje, ale je na človeku, aby určil, aký druh rozšírenia má poskytnúť. Inými slovami, človek robí kreatívnu, zaujímavú časť a aplikácia sa len tak krúti a zaisťuje, že veci fungujú.

Tieto prvé dve spôsoby hlbokého učenia sú zaujímavé a budú aj naďalej vytvárať pracovné miesta, ale najzaujímavejšie využitie hlbokého vzdelávania je pre činnosti, ktoré zatiaľ neexistujú. Kreatívny človek sa môže pozrieť na spôsoby, akými iní používajú hĺbkové vzdelávanie a prichádzajú s niečím novým. Pozrite sa na niektoré zaujímavé použitia AI, strojové učenie a hlboké vzdelávanie, ktoré sa teraz stávajú praktickými.

Hlboké vzdelávanie môže vykonávať analýzy rýchlejšie

Keď väčšina ľudí hovorí o analýze, myslia na výskumníka, nejakého vedca alebo špecialistu. Hlboké vzdelanie sa však zakotvuje na niektorých zaujímavých miestach, ktoré si budú vyžadovať plné zapojenie ľudí, napríklad predvídanie dopravných nehôd.

Predstavte si, že policajné oddelenie prideľuje zdroje na základe modelov dopravného toku, takže dôstojník už čaká na mieste očakávanej nehody. Policajný poručík by musel vedieť, ako používať aplikáciu tohto druhu. K tomuto konkrétnemu použitiu sa, samozrejme, ešte nestalo, je však veľmi pravdepodobné, že je to už možné pomocou existujúcej technológie. Vykonávanie analýzy už preto nebude úlohou pre tých, ktorí majú pred svojimi menami „Dr.“; bude to pre každého.

Samotná analýza nie je tak užitočná. Je to akt kombinovania analýzy so špecifickou potrebou v konkrétnom prostredí, ktorý sa stáva užitočným. Čo robíte s analýzou, definuje účinok tejto analýzy na vás a na ľudí okolo vás. Človek môže rozumieť pojmu analýza s cieľom; riešenie s hlbokým učením môže vykonať iba analýzu a poskytnúť výstup.

Hlboké vzdelávanie môže pomôcť vytvoriť lepšie pracovné prostredie

Hlboké vzdelávanie vám zlepší život a spríjemní vám zamestnanie, ak budete mať zručnosti, ktoré vám umožnia úspešne komunikovať s AI. Tento článok popisuje, ako môže AI zmeniť pracovisko v budúcnosti. Dôležitým prvkom tejto diskusie je zvýšenie príťažlivosti práce.

V jednom okamihu ľudskej histórie bola práca pre väčšinu ľudí skutočne príjemná. Nie je to tak, že by neustále obchádzali spev a smiech, ale veľa ľudí sa tešilo, že začnú každý deň. Neskôr, počas priemyselnej revolúcie, iní ľudia dali drvinu do práce a každý deň robili z práce jediné potešenie, ktoré niektorým ľuďom páčilo. Tento problém sa stal tak závažným, že o ňom nájdete populárne piesne, napríklad „Pracujeme na víkend“. Vďaka odstráneniu driev z pracoviska má hlboké učenie potenciál, aby bola práca opäť príjemná.

Hlboké vzdelávanie bude mať výrazný vplyv na pracovné prostredie mnohými spôsobmi, nielen skutočným výkonom práce. Napríklad technológie založené na hlbokom učení majú potenciál zlepšiť vaše zdravie, a tým aj vašu produktivitu. Je to výhoda pre všetkých, pretože si užijete život a viac práce, zatiaľ čo váš šéf získa z tohto úsilia viac skrytého potenciálu.

Jednou z vecí, ktoré často neuvidíte, je vplyv klesajúcej pôrodnosti v rozvinutých krajinách na produktivitu. Tento článok McKinsey do istej miery preberá tento problém a poskytuje graf ukazujúci potenciálny vplyv hlbokého vzdelávania na rôzne priemyselné odvetvia. Ak bude súčasný trend pokračovať, bude mať k dispozícii menej pracovníkov, čo bude znamenať potrebu rozšírenia na pracovisku.

Možno sa však budete zaujímať o svoju budúcnosť, ak sa obávate, že sa nebudete môcť prispôsobiť novej realite. Problém je v tom, že možno neviete, či ste v bezpečí. V Artificial Intelligence For Dummies, John Paul Mueller a Luca Massaron [Wiley] vidíte diskusie o povolaniach bezpečných pre AI a nových povolaniach, ktoré AI vytvorí. Môžete dokonca zistiť, ako by ste v určitom okamihu mohli skončiť prácu vo vesmíre. Bohužiaľ, nie každý chce urobiť taký krok, ako to robili Ludditi počas priemyselnej revolúcie. To, čo sľubuje AI, bude mať určite ešte väčšie dôsledky ako priemyselná revolúcia (prečítajte si o účinkoch priemyselnej revolúcie) a bude ešte rušivejšia. Niektorí politici, napríklad Andrew Wang, sa už zaoberajú krátkodobými opravami, ako je základný univerzálny príjem. Tieto pravidlá, ak sa prijmú, by pomohli znížiť vplyv AI, neposkytujú však dlhodobé riešenie. V určitom okamihu sa spoločnosť v dôsledku AI značne odlišuje od toho, čo je dnes - priemyselná revolúcia už spoločnosť zmenila.

Hlboké vzdelávanie môže pomôcť pri výskume nejasných alebo podrobných informácií

Počítače môžu robiť jednu vec - prispôsobovanie vzorov - výnimočne dobre (a oveľa lepšie ako ľudia. Ak ste niekedy mali pocit, že sa vznášate v informáciách a nič z toho sa netýka vašej aktuálnej potreby, nie ste sami.) preťaženie je už mnoho rokov problémom a každý rok sa zhoršuje. Nájdete tu veľa rád, ako sa vysporiadať s preťažením informáciami. Problém je v tom, že sa stále utápate v informáciách. Hlboké učenie vám umožňuje nájsť ihlu v kupce sena, a v primeranom čase. Namiesto mesiacov by vo väčšine prípadov dobré hĺbkové vzdelávanie mohlo nájsť potrebné informácie za pár hodín.

Vedieť, že tieto informácie existujú, však zvyčajne nestačí. Potrebujete informácie, ktoré sú dostatočne podrobné na to, aby ste mohli na svoju otázku plne odpovedať, čo často znamená nájsť viac ako jeden zdroj a zjednotiť informácie. Riešenie s hlbokým vzdelávaním by vám opäť mohlo nájsť vzorce a rozdrobiť údaje, takže nemusíte manuálne kombinovať vstup z viacerých zdrojov.

Keď AI nájde údaje a spojí rôzne zdroje do jednej súdržnej správy (dúfate), urobila všetko, čo môže pre vás. Je stále na človeku, aby tieto informácie pochopil a určil spôsob ich úspešného použitia. Počítač neodstráni tvorivú časť úlohy; odstraňuje ťažkosti s hľadaním zdrojov potrebných na vykonanie tvorivej časti úlohy. Keďže sa informácie neustále zvyšujú, očakávajte nárast počtu ľudí, ktorí sa špecializujú na vyhľadávanie podrobných alebo nejasných informácií.

Sprostredkovateľ informácií sa stáva nevyhnutnou súčasťou spoločnosti a predstavuje zaujímavú kariérnu cestu, o ktorej mnohí ľudia ani nepočuli. Tento článok ponúka dobré zhrnutie informácií o tom, čo sprostredkovatelia informácií robia.

Hlboké učenie môže pomôcť navrhnúť budovy

Väčšina ľudí vníma architektúru ako kreatívny obchod. Predstavte si, že navrhnete ďalšiu budovu Empire State Building alebo nejakú inú budovu, ktorá obstojí v skúške času. V minulosti projektovanie takejto budovy trvalo roky. Kupodivu je, že dodávateľ postavil Empire State Building len o niečo viac ako rok, ale zvyčajne tomu tak nie je. Hlboké vzdelávanie a počítačová technológia môžu pomôcť skrátiť čas na navrhovanie a stavbu budov tým, že umožňujú veci, ako sú virtuálne priechody. Využívanie hĺbkového vzdelávania v skutočnosti výrazne zlepšuje životy architektov.

Premena dizajnu na virtuálnu prehliadku však nie je ani najpôsobivejšou črtou hlbokého učenia v tejto oblasti. Použitie hlbokého učenia umožňuje návrhárom lokalizovať potenciálne technické problémy, vykonať stresové testovanie a zaistiť bezpečnosť inými spôsobmi predtým, ako návrh vôbec opustí rysovaciu dosku. Tieto schopnosti minimalizujú počet problémov, ktoré sa vyskytnú po uvedení budovy do prevádzky, a architekt si môže radšej vychutnať vavríny úspechu ako opovrhnutie a potenciálna tragédia zlyhania.

Hlboké vzdelávanie môže zvýšiť bezpečnosť

Nehody sa stali! Hlboké vzdelanie však môže pomôcť zabrániť vzniku nehôd - aspoň z väčšej časti. Analýzou zložitých modelov v reálnom čase môže hlboké vzdelávanie pomôcť ľuďom, ktorí sa podieľajú na rôznych aspektoch zabezpečenia bezpečnosti. Napríklad, sledovaním rôznych spôsobov premávky a predvídaním potenciálu nehody v dostatočnom časovom predstihu by riešenie v oblasti hlbokého učenia mohlo odborníkom v oblasti bezpečnosti poskytnúť návrhy, ako zabrániť nehode vôbec. Človek nemohol vykonať analýzu z dôvodu príliš veľkého množstva premenných. Hlboké učebné riešenie však môže vykonať analýzu a potom poskytnúť výstup človeku na prípadnú implementáciu.

Ako každé iné povolanie, ktoré zahŕňa hlboké učenie, aj človek koná ako súčasť porozumenia. Rôzne druhy nehôd vzdorujú schopnosti akéhokoľvek riešenia hlbokého učenia zakaždým poskytovať presné riešenia. Ľudia sa nedajú predvídať, ale iní ľudia môžu na základe správnych informácií znížiť pravdepodobnosť niečoho hrozného. Riešenie dôkladného učenia poskytuje tieto správne informácie, ale vyžaduje správne predvídanie a intuíciu pre správne interpretovanie informácií.

  1. ProgrammingBig DataData Science10 Aplikácie, ktoré vyžadujú hlboké vzdelávanie

Autor: John Paul Mueller, Luca Mueller

Tento článok je príliš krátky. Nemôže ani začať opisovať spôsoby, akými vás hlboké vzdelávanie ovplyvní v budúcnosti. Zvážte tento článok, ktorý ponúka úchvatnú vôňu - predjedlo, ktoré vám môže ponúknuť chuť na objavovanie sveta hlbokého učenia sa ďalej.

Tieto aplikácie na hlboké vzdelávanie sú už v niektorých prípadoch bežné. Dnes ste pravdepodobne použili aspoň jednu z nich a pravdepodobne viac ako len jednu. Hoci sa táto technológia začala rozširovať, je to naozaj len začiatok. Sme na začiatku niečoho a AI je v tomto okamihu dosť nezrelá.

obnovte farbu fotografií pomocou aplikácií s hlbokým učením

Tento článok sa nezaoberá zabijacími robotmi, dystopickými budúcnosťami, AI behom amok ani iným senzačným scenárom, ktorý môžete vidieť vo filmoch. Informácie, ktoré tu nájdete, sa týkajú skutočného života, existujúcich aplikácií AI, s ktorými môžete dnes pracovať.

Hlboké učenie sa dá použiť na obnovenie farieb čiernobielych videí a obrázkov

Pravdepodobne máte nejaké čiernobiele videá alebo obrázky členov rodiny alebo špeciálne udalosti, ktoré by ste radi videli farebne. Farba pozostáva z troch prvkov: odtieň (skutočná farba), hodnota (tma alebo svetlosť farby) a sýtosť (intenzita farby). Kupodivu sú mnohí umelci slepí a vo svojich výtvoroch silno využívajú farebnú hodnotu. Takže chýbajúci odtieň (prvok, ktorému chýba čiernobiele umenie) nie je koniec sveta. Naopak, niektorí umelci to považujú za výhodu.

Pri prezeraní niečoho čiernobielo vidíte hodnotu a sýtosť, ale nie odtieň. Sfarbenie je proces pridania odtieňa späť. Umelci zvyčajne vykonávajú tento proces pomocou starostlivého výberu jednotlivých farieb. AI však tento proces automatizoval pomocou konvolučných neurónových sietí (CNN).

Najjednoduchší spôsob použitia CNN na vyfarbenie je nájsť knižnicu, ktorá vám pomôže. Stránka Algorithmia ponúka takúto knižnicu a ukazuje nejaký príklad kódu. Aplikáciu môžete vyskúšať aj vložením adresy URL do dodaného poľa. Tento článok Petapixel.com popisuje, ako dobre táto aplikácia funguje. Je to úplne úžasné!

Hlboké vzdelávanie môže aproximovať polohu človeka v reálnom čase

Osoba predstavuje, nehovorí vám, kto je vo videostreame, ale skôr aké prvky osoby sú vo videostreame. Napríklad použitie osobnej pózy vám môže povedať, či sa vo videu objaví loket osoby a kde sa objaví. V tomto článku sa dozviete viac o tom, ako táto celá vizualizačná technika funguje. V skutočnosti môžete vidieť, ako systém funguje, prostredníctvom krátkej animácie jednej osoby v prvom prípade a troch ľudí v druhom prípade.

Pózy osôb môžu mať rôzne užitočné účely. Napríklad môžete použiť osobnú pózu, aby ste ľuďom pomohli zlepšiť ich formu pre rôzne druhy športov - všetko od golfu po bowling. Pózovanie osoby môže tiež umožniť nové druhy videohier. Predstavte si, že môžete sledovať polohu osoby v hre bez obvyklého sortimentu ťažkopádneho výstroja. Teoreticky by ste mohli osobu, ktorú predstavuje, vykonať na vykonanie analýzy miesta činu alebo na určenie možnosti osoby, ktorá spáchala trestný čin.

Ďalšou zaujímavou aplikáciou detekcie pózy je lekárske a rehabilitačné účely. Softvér založený na hlbokom učení vám môže povedať, či cvičíte správne a sledujete svoje zlepšenia. Aplikácia tohto druhu by mohla podporiť prácu profesionálneho rehabilitátora tým, že sa o vás postará, keď sa nenachádzate v zdravotníckom zariadení (činnosť nazývaná telerehabilitácia).

Našťastie dnes môžete aspoň začať pracovať s osobnými pózami pomocou knižnice tfjs-models (PoseNet). Môžete to vidieť v akcii s webovou kamerou, kompletnou so zdrojovým kódom. Načítanie príkladu chvíľu trvá, takže musíte byť trpezliví.

Hlboké vzdelávanie môže vykonávať analýzu správania v reálnom čase

Analýza správania prekračuje rámec toho, čo robí analýza. Keď robíte analýzu správania, otázka stále nie je otázkou komu, ale ako. Táto konkrétna aplikácia AI ovplyvňuje spôsob, akým dodávatelia navrhujú produkty a webové stránky. Články, ako je tento, od spoločnosti Amplitude siahajú do značnej miery, aby úplne definovali a charakterizovali použitie analýzy správania. Analýza správania vo väčšine prípadov pomáha zistiť, ako postup, ktorý produktový dizajnér očakáva, že budete nasledovať, nezodpovedá procesu, ktorý skutočne používate.

Analýza správania zohráva úlohu aj v iných oblastiach života. Napríklad analýza správania môže pomôcť ľuďom v lekárskej profesii identifikovať potenciálne problémy s ľuďmi, ktorí majú špecifické zdravotné ťažkosti, napríklad autizmus, a pomôcť pacientovi tieto problémy prekonať. Analýza správania môže tiež pomôcť učiteľom telesnej výchovy ukázať študentom, ako zdokonaliť svoje zručnosti. Môžete tiež vidieť, že sa používa v právnickej profesii na pomoc pri zisťovaní motívu. (Vina je zrejmá, ale prečo človek robí niečo, čo je nevyhnutné pre spravodlivú nápravu nežiaduceho správania.)

Našťastie už s Pythonom môžete začať vykonávať analýzu správania.

Hlboké vzdelávanie sa dá použiť na preklad jazykov

Internet vytvoril prostredie, ktoré vám môže zabrániť vedieť, s kým skutočne hovoríte, kde je, alebo niekedy dokonca aj vtedy, keď s vami hovorí. Jedna vec sa však nezmenila: potreba preložiť jeden jazyk do druhého, keď obidve strany nehovoria spoločným jazykom. V niektorých prípadoch môže byť chybný preklad humorný za predpokladu, že obe strany majú zmysel pre humor.

Nesprávny preklad však viedol aj k mnohým vážnym následkom vrátane vojny. Aj keď je prekladový softvér na internete mimoriadne prístupný, je dôležité starostlivo vybrať, ktorý produkt sa má použiť. Jednou z najpopulárnejších z týchto aplikácií je Google Translate, ale je k dispozícii mnoho ďalších aplikácií, napríklad DeepL. Podľa Forbesa je strojový preklad jednou z oblastí, v ktorej vyniká AI.

Prekladateľské aplikácie sa vo všeobecnosti spoliehajú na obojsmerné opakujúce sa neurónové siete (BRNN). Nemusíte si vytvárať svoju vlastnú sieť BRNN, pretože máte na výber veľa existujúcich rozhraní API. Pomocou knižnice môžete napríklad získať prístup Pythonu k rozhraniu Google Translate API. Ide o to, že preklad je pravdepodobne jednou z najpopulárnejších aplikácií hlbokého vzdelávania a je taká, ktorú veľa ľudí používa bez toho, aby o tom premýšľali.

Hĺbkové učenie sa môže použiť na odhad potenciálu solárnych úspor

Pokúsiť sa zistiť, či solárna energia skutočne bude fungovať vo vašej lokalite, je ťažké, pokiaľ ju nepoužívajú aj mnohí ľudia. Navyše je ešte ťažšie vedieť, akú úroveň úspor by ste mohli mať. Nechcete samozrejme inštalovať slnečnú energiu, ak nespĺňa vaše ciele jej používania, čo v skutočnosti nemusí zahŕňať dlhodobé úspory nákladov (aj keď vo všeobecnosti to tak je). Niektoré vzdelávacie projekty zamerané na hlboké zosilnenie vám teraz pomôžu pri odhadzovaní slnečnej energie vrátane projektu Strešné okno. Našťastie môžete získať podporu pre tento druh predikcie aj vo vašej aplikácii Python.

AI môže poraziť ľudí pri počítačových hrách

Súťaž AI verzus ľudia stále priťahuje záujem. Od víťazstva v šachu po víťazstvo na Go sa zdá, že sa AI stala neprekonateľnou - prinajmenšom neprekonateľnou pri jednej hre. Na rozdiel od ľudí sa AI špecializuje a AI, ktoré môžu vyhrať na Go, je nepravdepodobné, že by sa pri šachu darilo dobre. Aj napriek tomu je rok 2017 často považovaný za začiatok konca pre ľudí pred AI v hrách. Konkurencia samozrejme prebieha už nejaký čas. Pravdepodobne nájdete súťaže, ktoré AI zvíťazili oveľa skôr ako v roku 2017. Niektoré zdroje skutočne určujú dátum na výhru Go už v októbri 2015. Článok v článku Zaujímavé inžinierstvo popisuje 11 inokedy, že AI vyhrala.

Problém je, že si vytvoríte vlastné AI, ktoré dokáže vyhrať konkrétnu hru, a uvedomíme si, že pri špecializácii na túto hru sa AI nemusí dariť dobre pri iných hrách. Proces budovania umelej inteligencie iba pre jednu hru môže vyzerať obtiažne. V tomto článku je popísané, ako vytvoriť jednoduchú šachovú inteligenciu, ktorá v skutočnosti neporazí šachového majstra, ale dokáže to dobre s prostredníkom.

Je však vlastne trochu skoro na to povedať, že ľudia sú mimo hry. V budúcnosti môžu ľudia súťažiť proti AI s viac ako jednou hrou. Príklady tohto druhu konkurencie už existujú, napríklad ľudia, ktorí vystupujú v triatlone hier, ktoré sa skladajú skôr z troch športových udalostí, než z jedného. Konkurencia by sa potom stala flexibilitou: umelá inteligencia sa nemohla jednoducho skusiť a naučiť sa iba jednu hru, takže človek by mal flexibilitu. Tento druh použitia AI ukazuje, že ľudia a AI môžu v budúcnosti musieť spolupracovať, pričom AI sa špecializuje na konkrétne úlohy a človek poskytuje flexibilitu potrebnú na vykonávanie všetkých požadovaných úloh.

Hlboké učenie sa môže použiť na vytváranie hlasov

Vaše auto už s vami môže hovoriť; veľa ľudí teraz pravidelne hovorí s ľuďmi. Je zvláštne, že generovanie hlasu je často také dobré, že je ťažké povedať vygenerovaný hlas od skutočného. Niektoré články hovoria o tom, ako sa stáva bežnejšia skúsenosť so zisťovaním počítačových hlasov, ktoré znejú dosť reálne. Tento problém priťahuje dostatočnú pozornosť teraz, keď vám mnohé call centrá hovoria, že hovoríte skôr o počítači ako o osobe.

Hoci výstup hovoru závisí od skriptovaných odpovedí, ktoré umožňujú generovať reakcie s extrémne vysokou úrovňou dôveryhodnosti, rozpoznávanie hlasu je o niečo ťažšie (ale výrazne sa zlepšilo). Ak chcete úspešne pracovať s rozpoznaním hlasu, musíte často obmedziť vstup iba na konkrétne kľúčové pojmy. Použitím kľúčových slov, ktorým je hlasové rozpoznávanie určené, aby ste nerozumeli, nemusíte opakovať žiadosť. Táto potreba konkrétnych výrazov vedie k tomu, že hovoríte s počítačom - jednoducho požiadajte o niečo neočakávané a počítač nebude vedieť, čo s tým robiť.

Jednoduchý spôsob, ako implementovať svoj vlastný hlasový systém, je spoľahnúť sa na existujúce API, ako je napríklad Cloud Speech to Text. Možno budete potrebovať niečo, čo si môžete prispôsobiť. V takom prípade bude užitočné použitie API. V tomto článku sa dozviete, ako zostaviť svoju vlastnú hlasovú aplikáciu pomocou Pythonu.

Hĺbkové vzdelávanie sa dá použiť na predpovedanie demografie

Demografia, ktorá je životne dôležitou alebo sociálnou štatistikou, ktorá zoskupuje ľudí podľa určitých charakteristík, bola vždy súčasťou umenia a čiastočne vedy. Nájdete mnoho článkov o tom, ako prinútiť počítač generovať demografické údaje pre klientov (alebo potenciálnych klientov). Používanie demografických údajov je široké, ale vidíte, že sa používajú na veci ako predpovedanie toho, ktorý produkt konkrétna skupina kúpi (v porovnaní s konkurenciou). Demografia je dôležitým prostriedkom na kategorizáciu ľudí a na základe ich skupinových združení predpovedá určité kroky z ich strany. Tu sú metódy, ktoré často vidíte citované pre AI pri zhromažďovaní demografických údajov:

  • Historický: Na základe predchádzajúcich akcií AI zovšeobecňuje, ktoré akcie by ste mohli vykonať v budúcnosti. Aktuálna aktivita: Na základe akcie, ktorú vykonávate teraz, a možno aj ďalších charakteristík, napríklad pohlavia, počítač predpovedá vašu ďalšiu akciu. Charakteristiky: Na základe vlastností, ktoré vás definujú, ako je pohlavie, vek a oblasť, v ktorej žijete, počítač predpovedá výber, ktorý pravdepodobne urobíte.

Nájdete články o prediktívnych schopnostiach AI, ktoré sa zdajú byť príliš dobré na to, aby to bola pravda. Napríklad v tomto článku pre médiá sa uvádza, že AI môže teraz predpovedať demografické údaje výlučne na základe vášho mena. Spoločnosť uvedená v tomto článku, Demografia, tvrdí, že poskytuje pohlavie, vek a kultúrnu príslušnosť výlučne na základe mena. Aj keď stránka tvrdí, že je stopercentne presná, táto štatistika je veľmi nepravdepodobná, pretože niektoré mená sú rodovo nejednoznačné, napríklad Renee, a iné sú priradené k jednému pohlaviu v niektorých krajinách a inému pohlaviu v iných. Áno, demografická predpoveď môže fungovať, ale pred verením všetkého, čo vám tieto stránky hovoria, buďte opatrní.

Ak chcete experimentovať s demografickou predikciou, nájdete online niekoľko rozhraní API. Napríklad rozhranie DeepAI API vám sľubuje, že vám pomôže predpovedať vek, pohlavie a kultúrne pozadie na základe vzhľadu osoby vo videu. Každé online rozhranie API sa špecializuje, takže musíte vybrať API s ohľadom na druh vstupných údajov, ktoré môžete poskytnúť.

AI dokáže vytvoriť umenie z obrázkov v skutočnom svete

Hlboké vzdelávanie môže použiť obsah skutočného obrazu a existujúceho majstra štýlu na vytvorenie kombinácie týchto dvoch. V skutočnosti niektoré umelecké diela generované týmto prístupom vyvolávajú vysoké ceny v aukčnom bloku. Nájdete tu najrôznejšie články o tomto konkrétnom druhu umeleckej generácie, napríklad tento článok s káblovým pripojením.

Aj napriek tomu, že obrázky sú pekné na zavesenie na stenu, možno budete chcieť vytvoriť ďalšie druhy umenia. Napríklad, môžete vytvoriť trojrozmernú verziu svojho obrázka pomocou produktov ako Smoothie 3-D. Nie je to to isté ako vytvorenie sochy; namiesto toho na vytvorenie trojrozmernej verzie obrázka použijete 3D tlačiareň. Vyskúšajte experiment, ktorý môžete vykonať a zistite, ako tento proces funguje.

Výstup AI nemusí tiež pozostávať z niečoho vizuálneho. Hĺbkové vzdelávanie vám napríklad umožňuje vytvárať hudbu na základe obsahu obrázka. Táto forma umenia robí spôsob používaný AI jasnejším. AI transformuje obsah, ktorému nerozumie z jednej formy do druhej. Ako ľudia vidíme a chápeme transformáciu, ale všetko, čo počítač vidí, sú čísla, ktoré sa majú spracovať pomocou inteligentných algoritmov vytvorených inými ľuďmi.

Hĺbkové vzdelávanie sa dá použiť na predpovedanie prírodných katastrof

Ľudia sa snažia predvídať prírodné katastrofy, pokiaľ sa vyskytnú ľudia a prírodné katastrofy. Nikto nechce byť súčasťou zemetrasenia, tornáda, sopečnej erupcie alebo akejkoľvek inej prírodnej katastrofy. Schopnosť rýchlo sa dostať preč je v tomto prípade prvoradým dôvodom vzhľadom na to, že ľudia nemôžu dostatočne dobre kontrolovať svoje prostredie, aby sa predišlo akejkoľvek prírodnej katastrofe.

Hlboké učenie poskytuje prostriedky na hľadanie mimoriadne jemných vzorcov, ktoré zatáčajú mysle ľudí. Tieto vzorce môžu pomôcť predpovedať prírodnú katastrofu podľa článku o riešení spoločnosti Google. Skutočnosť, že softvér dokáže predpovedať akúkoľvek katastrofu, je jednoducho úžasná. Tento článok však upozorňuje, že spoliehanie sa výlučne na takýto softvér by bolo chybou.

Nadmerná dôvera v technológiu je konštantnou témou, preto sa nemusíte diviť, že hlboké vzdelávanie je pri predvídaní prírodných katastrof rovnako dokonalé.

  1. ProgramovanieVeľké DataData ScienceDeep učenie a opakujúce sa neurónové siete

Autor: John Paul Mueller, Luca Mueller

Neurónové siete poskytujú transformáciu vášho vstupu na požadovaný výstup. Aj pri hlbokom učení je proces rovnaký, hoci transformácia je zložitejšia. Na rozdiel od jednoduchšej neurónovej siete pozostávajúcej z niekoľkých vrstiev, sa hlboké učenie spolieha na viac vrstiev na vykonanie zložitých transformácií. Výstup zo zdroja údajov sa pripája k vstupnej vrstve neurónovej siete a vstupná vrstva začína spracovávať dáta. Skryté vrstvy mapujú vzory a spájajú ich so špecifickým výstupom, ktorým môže byť hodnota alebo pravdepodobnosť. Tento proces funguje perfektne pre akýkoľvek druh vstupu a funguje zvlášť dobre pre obrázky.

Keď každá vrstva spracuje svoje údaje, odošle transformované údaje do ďalšej vrstvy. Táto ďalšia vrstva spracováva údaje úplne nezávisle od predchádzajúcich vrstiev. Použitie tejto stratégie znamená, že ak privádzate video do svojej neurónovej siete, sieť spracuje každý obrázok jednotlivo, jeden po druhom, a výsledok sa vôbec nezmení, aj keď zmeníte poradie poskytnutých obrázkov. , Ak prevádzkujete sieť takýmto spôsobom, nezískate žiadnu výhodu z poradia spracovania informácií.

Skúsenosť však tiež učí, že na pochopenie procesu musíte niekedy pozorovať udalosti postupne. Ak použijete skúsenosti získané z predchádzajúceho kroku na preskúmanie nového kroku, môžete znížiť krivku učenia a znížiť čas a úsilie potrebné na pochopenie každého kroku.

Rekurentné neurónové siete: Modelovanie sekvencií pomocou pamäte

Niektoré neurónové architektúry vám neumožňujú spracovať postupnosť prvkov súčasne pomocou jedného vstupu. Napríklad, ak máte sériu mesačných predajov produktov, prispôsobíte údaje o predaji pomocou dvanástich vstupov, jeden pre každý mesiac a necháte ich analyzovať neurónovou sieťou naraz. Z toho vyplýva, že keď máte dlhšie sekvencie, musíte ich prispôsobiť pomocou väčšieho počtu vstupov a vaša sieť sa stáva pomerne obrovskou, pretože každý vstup by sa mal spájať s každým ďalším vstupom. Nakoniec budete mať sieť vyznačujúcu sa veľkým počtom spojení (čo sa premieta do mnohých váh).

Opakujúce sa neurónové siete (RNN) sú alternatívou k perceptrónu a CNN. Prvýkrát sa objavili v osemdesiatych rokoch a rôzni vedci pracovali na ich zlepšovaní až do nedávnej popularity vďaka rozvoju hlbokého učenia a výpočtovej sily.

Myšlienka za RNN je jednoduchá, skúmajú každý prvok sekvencie raz a zachovávajú si pamäť, aby ju mohli znovu použiť pri skúmaní ďalšieho prvku v sekvencii. Je to podobné tomu, ako funguje ľudská myseľ pri čítaní textu: človek číta text po písmene, ale rozumie slovám tým, že si zapamätá každé písmeno v slove. Podobným spôsobom môže RNN priradiť slovo k výsledku zapamätaním si postupnosti písmen, ktoré prijíma. Rozšírenie tejto techniky umožňuje požiadať RNN, aby určil, či je fráza pozitívna alebo negatívna - široko používaná analýza nazývaná analýza sentimentu. Sieť spája pozitívnu alebo negatívnu odpoveď na určité slovné sekvencie, ktoré videli v príkladoch odbornej prípravy.

Graficky reprezentujete RNN ako neurálnu jednotku (známu aj ako bunka), ktorá spája vstup s výstupom, ale tiež sa pripája k sebe. Toto samostatné spojenie predstavuje pojem rekurzia, čo je funkcia aplikovaná na seba, až kým nedosiahne konkrétny výstup. Jedným z najčastejšie používaných príkladov rekurzie je výpočet faktoriálu. Na nasledujúcom obrázku je uvedený konkrétny príklad RNN používajúci postupnosť písmen na vytvorenie slova jazz. Na pravej strane obrázka nižšie je znázornené správanie jednotky RNN prijímajúce jazz ako vstup, ale v skutočnosti je tu iba jedna jednotka, ako je znázornené vľavo.

hlboké učenie a opakujúce sa neurónové siete

Tento obrázok zobrazuje vľavo rekurzívnu bunku a rozširuje ju ako rozloženú sériu jednotiek, ktoré vpravo prijímajú jednotlivé písmená slova jazz. Začína sa j, za ktorým nasledujú ďalšie písmená. Keď nastane tento proces, RNN vysiela výstup a modifikuje svoje vnútorné parametre. Modifikáciou svojich vnútorných parametrov sa jednotka učí z údajov, ktoré prijíma, az pamäte predchádzajúcich údajov. Súčet tohto učenia je stav bunky RNN.

Pri diskusii o neurónových sieťach budete počuť veľa diskusií o váhách. V prípade RNN je tiež potrebné poznať pojem stav. Váhy pomáhajú spracovať vstup do výstupu v RNN, ale stav obsahuje stopy informácií, ktoré RNN doteraz videl, takže stav ovplyvňuje fungovanie RNN. Stav je druh krátkodobej pamäte, ktorá sa po dokončení sekvencie vynuluje. Ako RNN bunka dostane kúsky sekvencie, robí nasledujúce:

  1. Spracuje ich a pri každom vstupe zmení stav. Vydáva výstup. Po zobrazení posledného výstupu sa RNN naučí najlepšie váhy na mapovanie vstupu na správny výstup pomocou spätného označovania.

Opakujúce sa neurónové siete: Rozpoznávanie a preklad reči

Schopnosť rozpoznávať a prekladať medzi jazykmi sa stáva čoraz dôležitejšou, keďže ekonomiky na celom svete sa čoraz viac globalizujú. Jazykový preklad je oblasťou, v ktorej má umelá inteligencia jednoznačnú výhodu nad ľuďmi - natoľko, že články z časopisu Digitalist Magazine a Forbes začínajú pochybovať o tom, ako dlho bude ľudský prekladateľ zostať životaschopný.

Samozrejme, proces prekladu musíte urobiť životaschopným pomocou hlbokého učenia. Z hľadiska neurálnej architektúry máte niekoľko možností:

  • Uschovajte všetky výstupy poskytované bunkou RNN Ponechajte posledný výstup bunky RNN

Posledným výstupom je výstup celého RNN, pretože je vyrobený po dokončení preskúmania sekvencie. Predchádzajúce výstupy však môžete použiť, ak potrebujete predpovedať inú sekvenciu alebo ak chcete naladiť viac buniek RNN ​​za súčasnú, napríklad pri práci s konvolučnými neurálnymi sieťami (CNN). Zostavenie RNN vertikálne umožňuje sieti naučiť sa zložité sekvenčné vzorce a stať sa efektívnejšími pri vytváraní predpovedí.

RNN môžete tiež ukladať vodorovne do tej istej vrstvy. Ak sa viacerým RNN umožní učiť sa zo sekvencie, môže to pomôcť získať viac z údajov. Použitie viacerých RNN je podobné CNN, v ktorých každá jednotlivá vrstva používa hĺbky stočenia, aby sa naučila detaily a vzory z obrázka. V prípade viacerých RNN môže vrstva pochopiť rôzne nuansy sekvencie, ktorú skúmajú.

Navrhovanie sietí RNN horizontálne aj vertikálne zlepšuje prediktívne výkony. Rozhodovanie o tom, ako použiť výstup, však určuje, čo môže dosiahnuť architektúra hlbokého učenia využívaná RNN. Kľúčom je počet prvkov použitých ako vstupy a očakávaná dĺžka sekvencie ako výstup. Keďže sieť hlbokého učenia synchronizuje výstupy RNN, získate požadovaný výsledok.

Pri použití viacerých RNN máte niekoľko možností, ako je to znázornené na obrázku nižšie:

  • Jeden ku druhému: Ak máte jeden vstup a očakávate jeden výstup. Berú jeden prípad zložený z určitého počtu informatívnych premenných a poskytujú odhad, napríklad číslo alebo pravdepodobnosť. Jeden k mnohým: Tu máte jeden vstup a ako výsledok očakávate postupnosť výstupov. Neurónové siete s automatickým titulkovaním používajú tento prístup: Zadáte jediný obrázok a vytvoríte frázu popisujúcu obsah obrázka. Mnoho k jednému: Klasický príklad pre RNN. Napríklad zadáte textovú sekvenciu a ako výsledok očakávate jeden výsledok. Vidíte tento prístup použitý na vytvorenie odhadu analýzy sentimentu alebo inej klasifikácie textu. Mnoho až mnoho: Zadáte sekvenciu ako vstup a výslednú sekvenciu očakávate ako výstup. Toto je základná architektúra pre mnohé z najpôsobivejších aplikácií AI s hlbokým učením. Tento prístup sa používa na strojový preklad (napríklad sieť, ktorá dokáže automaticky preložiť frázu z angličtiny do nemčiny), chatboty (neurónová sieť, ktorá môže odpovedať na vaše otázky a argumentovať s vami), a sekvenčné označovanie (klasifikácia každého z obrázkov v video).
opakovaný vstup a výstup neurónovej siete

Strojový preklad je schopnosť stroja preložiť, správne a zmysluplne, jeden ľudský jazyk do druhého. Túto schopnosť sa vedci dlhodobo snažia dosiahnuť, najmä na vojenské účely. V článku Vasilyho Zubareva si môžete prečítať fascinujúci príbeh všetkých pokusov o strojový preklad vedcov z USA a Ruska. Skutočný prielom nastal až po tom, ako spoločnosť Google spustila svoj preklad Google Neural Machine Translation (GNMT), o ktorom si môžete prečítať viac o blogu Google AI. GNMT sa spolieha na sériu RNN (pomocou paradigmy mnoho k mnohým), aby prečítal sekvenciu slov v jazyku, z ktorého chcete preložiť (nazýva sa kódovacia vrstva) a vráti výsledky do inej vrstvy RNN (vrstva dekodéra), ktorá transformuje ho na preložený výstup.

Preklad nervového stroja vyžaduje dve vrstvy, pretože gramatika a syntax jedného jazyka sa môžu líšiť od druhého. Jeden RNN nedokáže pochopiť dva jazykové systémy súčasne, takže na zvládnutie týchto dvoch jazykov je potrebný pár kodér-dekodér. Systém nie je dokonalý, ale je to neuveriteľný skok vpred od predchádzajúcich riešení opísaných v článku Vasilij Zubareva, ktorý výrazne znižuje chyby v poradí slov, lexikálne chyby (zvolené prekladové slovo) a gramatiku (spôsob použitia slov).

Výkon navyše závisí od súboru školení, rozdielov medzi zúčastnenými jazykmi a ich osobitnými charakteristikami. Napríklad kvôli tomu, ako je v japončine vybudovaná štruktúra viet, japonská vláda teraz investuje do prekladača hlasu v reálnom čase, aby pomohla počas olympijských hier v Tokiu v roku 2020 a aby podporila cestovný ruch vývojom pokročilého riešenia neurónovej siete.

RNN sú dôvodom, prečo vám váš hlasový asistent môže odpovedať, alebo vám váš automatický prekladateľ môže dať preklad do cudzieho jazyka. Pretože RNN je jednoducho opakujúca sa operácia násobenia a sčítania, siete hlbokého učenia nemôžu skutočne pochopiť žiaden význam; jednoducho spracúvajú slová a frázy na základe toho, čo sa naučili počas tréningu.

Opakujúce sa neurónové siete: Umiestnenie správnych titulkov na obrázky

Ďalšou možnou aplikáciou RNN využívajúcich prístup mnoho k mnohým je generovanie titulkov, ktoré zahŕňa poskytnutie obrazu neurónovej sieti a prijatie textového opisu, ktorý vysvetľuje, čo sa deje v obraze. Na rozdiel od chatbotov a strojových prekladateľov, ktorých výstup spotrebúvajú ľudia, generovanie titulkov pracuje s robotikou. Vytvára viac ako len generovať opisy obrázkov alebo videa.

Vytváranie titulkov môže ľuďom so zníženým zrakom pomôcť vnímať svoje prostredie pomocou zariadení ako nositeľné Horus alebo vybudovať most medzi obrázkami a bázami poznatkov (ktoré sú založené na texte) pre roboty - čo im umožňuje lepšie porozumieť okoliu. Začnete so špeciálne navrhnutými súbormi údajov, ako je súbor údajov Pascal Sentence; Flickr 30K, ktorý pozostáva z Flickrových obrazov anotovaných zdrojom davu; alebo súbor údajov MS Coco. Vo všetkých týchto súboroch údajov každý obrázok obsahuje jednu alebo viac fráz vysvetľujúcich obsah obrázka. Napríklad vo vzorke číslo súboru údajov MS Coco 5947 vidíte štyri lietajúce lietadlá, ktoré by ste mohli správne umiestniť ako:

  • Štyri lietadlá na oblohe nad hlavou v zatiahnutý deň Štyri jednomotorové lietadlá vo vzduchu za oblačného dňa Skupina štyroch lietadiel lietajúcich vo formácii Skupina lietadiel lietajúcich po oblohe Flotila lietadiel lietajúcich po oblohe

Dobre vyškolená neurónová sieť by mala byť schopná vytvárať analogické frázy, ak sú prezentované s podobnou fotografiou. Spoločnosť Google prvýkrát uverejnila v roku 2014 dokument o riešení tohto problému s názvom Sieť Show and Tell alebo Neural Image Caption (NIC) a o rok neskôr ho aktualizovala.

Spoločnosť Google od tej doby otvorila zdroj NIC a ponúkla ho ako súčasť rámca TensorFlow. Ako neurónová sieť pozostáva z vopred pripravenej siete CNN (ako je napríklad Google LeNet, víťaz súťaže ImageNet v roku 2014), ktorý spracováva obrázky podobne na prenos učenia.

Obrázok sa zmení na postupnosť hodnôt predstavujúcich obrazové prvky vysokej úrovne detekované CNN. Počas tréningu vložený obrázok prechádza do vrstvy RNN, ktoré si zapamätajú obrazové charakteristiky vo svojom vnútornom stave. CNN porovnáva výsledky, ktoré generujú RNN, so všetkými možnými opismi poskytovanými pre tréningový obraz a vypočíta sa chyba. Chyba sa potom vráti späť do časti siete RNN, aby sa upravila hmotnosť RNN a pomohla jej naučiť sa správne označovať obrázky. Po mnohonásobnom opakovaní tohto procesu pomocou rôznych obrázkov je sieť pripravená vidieť nové obrázky a poskytnúť ich popis týchto nových obrazov.

Opakujúce sa neurónové siete poskytujú príležitosti pre pokročilejšie inovácie a mohli by pomôcť automatizovať niektoré potrebné úlohy.

  1. ProgramovanieVeľké údajeData ScienceDeep Learning and Natural Language Processing

Autor: John Paul Mueller, Luca Mueller

Zjednodušene si môžete prezrieť jazyk ako postupnosť slov vytvorených z písmen (ako aj interpunkčné znamienka, symboly, emotikony atď.). Hlboké učenie spracováva jazyk najlepšie pomocou vrstiev RNN, ako sú LSTM alebo GRU. Avšak znalosť použitia RNN vám nehovorí, ako používať sekvencie ako vstupy; musíte určiť druh sekvencií. Siete hlbokého vzdelávania v skutočnosti akceptujú iba číselné vstupné hodnoty. Počítače kódujú postupnosť písmen, ktorým rozumiete, do čísel podľa protokolu, napríklad Unicode Transformation Format-8 bit (UTF-8). UTF-8 je najpoužívanejšie kódovanie.

Hlboké vzdelávanie môže tiež spracovávať textové údaje pomocou konvolučných neurónových sietí (CNN) namiesto RNN tým, že reprezentuje sekvencie ako matice (podobné spracovaniu obrazu). Keras podporuje vrstvy CNN, ako napríklad Conv1D, ktoré dokážu pracovať s usporiadanými funkciami v čase - to je postupnosť slov alebo iných signálov. Po výstupe 1D konvolúcie zvyčajne nasleduje vrstva MaxPooling1D, ktorá sumarizuje výstupy. CNN aplikované na sekvencie nachádzajú limit svojej necitlivosti na globálne poradie sekvencie. (Majú tendenciu lokalizovať miestne vzorce.) Z tohto dôvodu sa najlepšie používajú v postupnom spracovaní v kombinácii s RNN, nie ako ich náhrada.

Prírodné jazykové spracovanie (NLP) pozostáva zo série postupov, ktoré zlepšujú spracovanie slov a fráz pre štatistickú analýzu, algoritmy strojového učenia a hlboké vzdelávanie. NLP vďačí za svoje korene výpočtovej lingvistike, ktorá poháňala systémy založené na pravidlách AI, ako napríklad expertné systémy, ktoré sa rozhodli na základe počítačového prekladu ľudských vedomostí, skúseností a spôsobu myslenia. NLP prehľadal textové informácie, ktoré nie sú štruktúrované, do štruktúrovanejších údajov, aby ich odborné systémy mohli ľahko manipulovať a vyhodnotiť.

Hlboké vzdelávanie dnes prevládlo a expertné systémy sa obmedzujú na konkrétne aplikácie, v ktorých je prvoradá interpretovateľnosť a kontrola rozhodovacích procesov (napríklad v lekárskych aplikáciách a systémoch rozhodovania o správaní vozidla pri niektorých vozidlách s vlastným riadením). Plynovod NLP je však stále veľmi dôležitý pre mnohé aplikácie hlbokého vzdelávania.

Spracovanie prirodzeného jazyka: Definovanie porozumenia ako tokenu

V plynovode NLP je prvým krokom získanie surového textu. Zvyčajne ho ukladáte do pamäte alebo k nemu pristupujete z disku. Ak sú údaje príliš veľké na to, aby sa zmestili do pamäte, udržiavate na nich ukazovateľ (napríklad názov adresára a názov súboru). V nasledujúcom príklade použijete tri dokumenty (reprezentované reťazcovými premennými) uložené v zozname (kontajnerom dokumentov je korpus v nat

importovať numpy ako np
texty = ["Môj pes vyjde s mačkami",
"Táto mačka je začarovaná",
"Môj pes je šťastný, keď je obed"]

Po získaní text spracujete. Keď spracúvate každú frázu, extrahujete z textu relevantné funkcie (zvyčajne vytvoríte maticu s vreckami slov) a všetko odovzdáte vzdelávaciemu modelu, napríklad algoritmu hlbokého učenia. Počas spracovania textu môžete na manipuláciu s textom použiť rôzne transformácie (tokenizácia je jedinou povinnou transformáciou):

  • Normalizácia: Odstráňte veľké písmená. Čistenie: Odstráňte netextové prvky, ako sú interpunkcia a čísla. Tokenizácia: Rozdeľte vetu na jednotlivé slová. Zastavenie odstraňovania slov: Odstráňte bežné, neinformatívne slová, ktoré do vety nepridávajú žiadny význam, napríklad články a a. Odstránenie negácií, ako napríklad nie, by mohlo byť škodlivé, ak chcete uhádnuť sentiment. Stemming: Zredukujte slovo na jeho stopku (čo je forma slova pred pridaním inflexných adries). Algoritmus, nazývaný stopka, to môže urobiť na základe série pravidiel. Lemmatizácia: Transformujte slovo do slovníkovej formy (lemma). Je to alternatíva k odvodeniu, ale je to zložitejšie, pretože nepoužívate algoritmus. Namiesto toho môžete pomocou slovníka previesť každé slovo na jeho lemmu. Pos-tagging: Označí každé slovo vo fráze gramatickou úlohou vo vete (napríklad označí slovo ako sloveso alebo ako podstatné meno). N-gramy: Priradiť každé slovo k určitému počtu (n v n-gram), nasledujúcich slov a považovať ich za jedinečný súbor. Zvyčajne na analýzu slúžia najlepšie bigramy (séria dvoch susedných prvkov alebo žetónov) a tri gramy (séria troch susedných prvkov alebo žetónov).

Na dosiahnutie týchto transformácií budete možno potrebovať špeciálny balík Python, ako napríklad NLTK alebo Scikit-learn. Pri práci s hlbokým učením a veľkým počtom príkladov potrebujete iba základné transformácie: normalizáciu, čistenie a tokenizáciu. Hlboké vzdelávacie vrstvy môžu určiť, ktoré informácie sa majú extrahovať a spracovať. Keď pracujete s niekoľkými príkladmi, musíte poskytnúť čo najviac spracovania NLP, aby ste pomohli sieti hlbokého učenia určiť, čo treba urobiť, napriek malému poradenstvu poskytnutému v niekoľkých príkladoch.

Keras ponúka funkciu, keras.preprocessing.text.Tokenizer, ktorá normalizuje (pomocou dolného parametra nastaveného na True), čistí (parameter Filters obsahuje reťazec znakov, ktoré sa majú odstrániť, zvyčajne tieto: '!' # $% & ( ) * +, -. / :; <=>? @ [\ \ ^ _ `{|} ~ ') a tokenizuje.

Spracovanie prirodzeného jazyka: Uloženie všetkých dokumentov do tašky

Po spracovaní textu musíte extrahovať príslušné vlastnosti, čo znamená transformáciu zvyšného textu na numerické informácie, ktoré má neurónová sieť spracovať. Toto sa obyčajne robí pomocou prístupu „bag-of-slov“, ktorý sa získa frekvenčným kódovaním alebo binárnym kódovaním textu. Tento proces sa rovná transformácii každého slova do stĺpca matice tak širokého, ako je počet slov, ktoré potrebujete reprezentovať. Nasledujúci príklad ukazuje, ako dosiahnuť tento proces a čo to znamená. Ako prvý krok pripravíte základnú normalizáciu a tokenizáciu pomocou niekoľkých príkazov Pythonu na určenie veľkosti slovnej zásoby pre spracovanie:

unique_words = set (word.lower () pre frázu v textoch pre
slovo vo výraze.split (""))
print (f "Existujú {len (unique_words)} jedinečné slová")

Kód uvádza 14 slov. Teraz pokračujete v načítaní funkcie Tokenizer z Kerasu a nastavíte ho tak, aby spracovával text poskytnutím očakávanej veľkosti slovnej zásoby:

z keras.preprocessing.text import Tokenizer
vocabulary_size = len (unique_words) + 1
tokenizer = Tokenizer (num_words = vocabulary_size)

Použitie príliš malého vocabulary_size môže vylúčiť dôležité slová z procesu učenia. Ten, ktorý je príliš veľký, môže zbytočne spotrebovať pamäť počítača. Musíte poskytnúť programu Tokenizer správny odhad počtu rôznych slov obsiahnutých v zozname textov. K slovníku vocabulary_size vždy pridajte 1, aby ste na začiatok vety dostali ďalšie slovo (výraz, ktorý pomáha sieti na hlboké vzdelávanie). V tomto bode Tokenizer mapuje slová prítomné v textoch na indexy, čo sú číselné hodnoty predstavujúce slová v texte:

tokenizer.fit_on_texts (texty)
print (tokenizer.index_word)

Výsledné indexy sú nasledujúce:

{1: 'is', 2: 'my', 3: 'dog', 4: 'gets', 5: 'along',
6: „s“, 7: „mačky“, 8: „to“, 9: „mačka“, 10: „začarované“,
11: „šťastný“, 12: „kedy“, 13: „to“, 14: „obed“}

Indexy predstavujú číslo stĺpca, v ktorom sú umiestnené informácie o slove:

print (tokenizer.texts_to_matrix (texty))

Výsledná matica:

[[0. 0. 1. 1. 1. 1. 1. 1. 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. 1. 1. 1. 1.]]]

Matica sa skladá z 15 stĺpcov (14 slov plus začiatok frázového ukazovateľa) a troch riadkov, ktoré predstavujú tri spracované texty. Toto je textová matica, ktorá sa má spracovať pomocou plytkej neurónovej siete (RNN vyžaduje iný formát, ako sa uvádza ďalej), ktorá je podľa veľkosti textov vždy veľkosťou vocabulary_size. Čísla vo vnútri matice predstavujú počet zobrazení slova vo fráze. Toto však nie je jediné možné zastúpenie. Tu sú ďalšie:

  • Frekvenčné kódovanie: Spočíta počet výskytov slov vo fráze. jednorazové kódovanie alebo binárne kódovanie: Zaznamenáva prítomnosť slova vo fráze bez ohľadu na to, koľkokrát sa objaví. Skóre frekvencie inverznej frekvencie inverzného dokumentu (TF-IDF): Kóduje mieru relatívneho počtu zobrazení slova v dokumente vo vzťahu k celkovému počtu slov v matici. (Slová s vyšším skóre sú výraznejšie; slová s nižším skóre sú menej informatívne.)

Transformáciu TF-IDF môžete použiť priamo z Kerasu. Tokenizer ponúka metódu text_to_matrice, ktorá predvolene kóduje váš text a transformuje ho do matice, v ktorej sú stĺpce vaše slová, riadky sú vaše texty a hodnoty sú frekvencia slov v texte. Ak použijete transformáciu zadaním módu = 'tfidf', transformácia použije TF-IDF namiesto frekvencií slov na vyplnenie hodnôt matice:

vytlačiť (np.round (tokenizer.texts_to_matrix (texty,
mode = 'tfidf'), 1))

Všimnite si, že použitím maticovej reprezentácie, bez ohľadu na to, či používate binárny, frekvenčný alebo prepracovanejší TF-IDF, ste stratili akýkoľvek zmysel pre usporiadanie slov, ktorý existuje vo fráze. Počas spracovania sa slová rozptyľujú v rôznych stĺpcoch a neurónová sieť nedokáže uhádnuť poradie slov frázou. Tento nedostatok poriadku je dôvod, prečo tomu hovoríte „vreckovku“.

Prístup „bag-of-slov“ sa používa v mnohých algoritmoch strojového učenia, často s výsledkami od dobrej po spravodlivú, a môžete ich použiť na neurónovú sieť pomocou hustých vrstiev architektúry. Transformácie slov kódovaných do n_gramov (diskutované v predchádzajúcom odseku ako transformácia spracovania NLP) poskytujú ďalšie informácie, znova však nemôžete tieto slová spájať.

RNN sledujú sekvencie, takže stále používajú jednorazové kódovanie, ale nekódujú celú frázu, skôr kódujú jednotlivo každý token (ktorým môže byť slovo, znak alebo skupina znakov). Z tohto dôvodu očakávajú postupnosť indexov predstavujúcich frázu:

print (tokenizer.texts_to_sequences (texty))

Keď každá fráza prechádza na vstup neurónovej siete ako sekvencia indexových čísel, číslo sa zmení na vektor kódovaný jednou horúcou. Vektory s jedným horúcim kódom sa potom postupne vkladajú do vrstiev RNN, čím sa uľahčujú ich učenie. Napríklad tu je transformácia prvej vety v matici:

[[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. 0. 1. 0. 0. 0. 0. 0. 0. 0.]]]

V tejto reprezentácii získate samostatnú maticu pre každý kus textu. Každá matica predstavuje jednotlivé texty ako samostatné slová pomocou stĺpcov, ale teraz riadky predstavujú poradie vzhľadu slov. (Prvý riadok je prvé slovo, druhý riadok je druhé slovo atď.)

Použitím tohto základného prístupu môžu vedci údajov využívať hĺbkové vzdelávanie na spracovanie prirodzeného jazyka.

  1. ProgramovanieVeľké dátové dáta ScienceNeurálne siete a hlboké vzdelávanie: diferenciácia neurónovej siete

Autor: John Paul Mueller, Luca Mueller

Keď viete, ako neurónové siete v podstate fungujú, potrebujete lepšie porozumieť tomu, čo ich odlišuje, aby pochopili ich úlohu v hlbokom učení. Popri rôznych architektúrach neurónovej siete môže zmeniť aj výber aktivačných funkcií, optimalizátorov a rýchlosti učenia sa neurónovej siete. Znalosť základných operácií nestačí, pretože nedostanete požadované výsledky. Pohľad pod kapotu neurónovej siete vám pomôže pochopiť, ako môžete vyladiť svoje riešenie na modelovanie konkrétnych problémov. Porozumenie rôznym algoritmom použitým na vytvorenie neurónovej siete vám okrem toho pomôže dosiahnuť lepšie výsledky s menšou námahou av kratšom čase. Nasledujúci článok sa zameriava na tri oblasti diferenciácie neurónovej siete.

Výber správnej aktivačnej funkcie pre vašu neurónovú sieť

Aktivačná funkcia je časť neurónovej siete, ktorá jednoducho definuje, kedy neurón vystrelí. Považujte to za bod zvratu: Vstup určitej hodnoty nespôsobí neurónový oheň, pretože to nestačí, ale len trochu viac vstupu môže spôsobiť neurónový oheň. Neurón je definovaný jednoduchým spôsobom takto:

y = ∑ (hmotnosť * vstup) + zaujatosť

Výstupom y môže byť ľubovoľná hodnota medzi + nekonečno a - nekonečno. Problém je potom v rozhodovaní o tom, aká hodnota y je počiatočná hodnota, čo je miesto, kde vo vašej neurónovej sieti vstupuje do hry aktivačná funkcia. Aktivačná funkcia určuje, ktorá hodnota je dostatočne vysoká alebo nízka na to, aby odrážala rozhodovací bod v neurálnej sieti pre konkrétny neurón alebo skupinu neurónov.

Rovnako ako u všetkých ostatných neurónových sietí nemáte iba jednu aktivačnú funkciu. Používate aktivačnú funkciu, ktorá najlepšie funguje v konkrétnom scenári. Z tohto dôvodu môžete aktivačné funkcie rozdeliť do týchto kategórií:

  • Krok: Kroková funkcia (tiež nazývaná binárna funkcia) sa spolieha na konkrétny prah pre rozhodnutie o aktivácii alebo nie. Použitie funkcie krok znamená, že viete, ktorá konkrétna hodnota spôsobí aktiváciu. Krokové funkcie sú však obmedzené tým, že sú úplne aktivované alebo úplne deaktivované - neexistujú žiadne odtiene sivej. Preto pri pokuse určiť, ktorá trieda je najpravdepodobnejšia na základe daného vstupu, kroková funkcia nebude fungovať. Lineárny: Lineárna funkcia (A = cx) poskytuje priame určenie aktivácie na základe vstupu. Použitie lineárnej funkcie vám pomôže určiť, ktorý výstup sa má aktivovať na základe toho, ktorý výstup je najpresnejší (vyjadrený vážením). Lineárne funkcie však fungujú iba ako jedna vrstva. Ak by ste chceli naložiť viac vrstiev s lineárnymi funkciami, výstup by bol rovnaký ako pri použití jednej vrstvy, ktorá by porušila účel použitia neurónových sietí. V dôsledku toho sa lineárna funkcia môže javiť ako jedna vrstva, ale nikdy ako viac vrstiev. Sigmoid: sigmoidná funkcia (A = 1/1 + e-x), ktorá vytvára krivku v tvare písmena C alebo S, je nelineárna. Začína tým, že vyzerá ako kroková funkcia, až na to, že hodnoty medzi dvoma bodmi skutočne existujú na krivke, čo znamená, že môžete zoskupiť sigmoidové funkcie na vykonanie klasifikácie s viacerými výstupmi. Rozsah sigmoidnej funkcie je medzi 0 a 1, nie - nekonečno + nekonečno ako s lineárnou funkciou, takže aktivácie sú viazané v špecifickom rozsahu. Sigmoidová funkcia však trpí problémom nazývaným miznúcí gradient, čo znamená, že sa funkcia odmieta učiť po určitom bode, pretože šírená chyba sa pri približovaní k vzdialeným vrstvám zmenšuje na nulu. Tanh: Funkcia Tanh (A = (2/1 + e-2x) - 1) je v skutočnosti zmenšená funkcia sigmoid. Má rozsah od -1 do 1, takže opäť ide o presnú metódu aktivácie neurónov. Veľký rozdiel medzi sigmoidnými funkciami a funkciami tanh je v tom, že gradient funkcie tanh je silnejší, čo znamená, že detekcia malých rozdielov je jednoduchšia, čím je klasifikácia citlivejšia. Rovnako ako funkcia sigmoid, aj tanh trpí problémami s gradientom. ReLU: Funkcia ReLU alebo usmernené lineárne jednotky (A (x) = max (0, x)) poskytuje výstup v rozsahu od 0 do nekonečna, takže je to podobné lineárnej funkcii s výnimkou toho, že je tiež nelineárne, čo vám umožňuje na stohovanie funkcií ReLU. Výhodou systému ReLU je to, že vyžaduje menej spracovateľského výkonu, pretože menej neurónov prepáli. Nedostatok aktivity, keď sa neurón blíži 0 časti línie, znamená, že existuje menej potenciálnych výstupov, na ktoré sa treba zamerať. Táto výhoda sa však môže stať aj nevýhodou, ak máte problém nazývaný umierajúci ReLU. Hmotnosti neurónovej siete už po chvíli neposkytujú požadovaný účinok (jednoducho sa prestanú učiť) a postihnuté neuróny odumrú - nereagujú na žiadny vstup.

ReLU má tiež niekoľko variantov, ktoré by ste mali zvážiť:

  • ELU (exponenciálna lineárna jednotka): Líši sa od ReLU, keď sú vstupy záporné. V tomto prípade výstupy nejdú na nulu, ale pomaly klesajú na -1 exponenciálne. PReLU (Parametrická usmernená lineárna jednotka): Líši sa od ReLU, keď sú vstupy záporné. V tomto prípade je výstupom lineárna funkcia, ktorej parametre sa získajú pomocou rovnakej techniky ako akékoľvek iné parametre siete. LeakyReLU: Podobné ako PReLU, ale parameter pre lineárnu stranu je pevný.

Spolieha sa na inteligentný optimalizátor pre svoju neurónovú sieť

Optimalizátor slúži na zabezpečenie toho, aby vaša neurónová sieť vykonávala rýchle a správne modely bez ohľadu na problém, ktorý chcete vyriešiť úpravou zaujatosti a hmotnosti neurónovej siete (ďalšie informácie o vylepšení modelov strojového učenia nájdete v tomto článku). Ukazuje sa, že túto úlohu vykonáva algoritmus, ale na získanie očakávaných výsledkov musíte zvoliť správny algoritmus. Rovnako ako vo všetkých scenároch neurónovej siete máte na výber niekoľko typov algoritmov, z ktorých si môžete vybrať:

Stochastické klesanie (SGD)

  • RMSProp AdaGrad AdaDelta AMSGrad Adam a jeho varianty, Adamax a Nadam

Optimalizátor pracuje tak, že minimalizuje alebo maximalizuje výstup objektívnej funkcie (známej tiež ako chybová funkcia) predstavovanej ako E (x). Táto funkcia je závislá od vnútorných naučených parametrov modelu použitých na výpočet cieľových hodnôt (Y) z prediktorov (X). Dva interné parametre, ktoré sa dajú naučiť, sú váhy (W) a predpätie (b). Rôzne algoritmy majú rôzne metódy riešenia objektívnej funkcie.

Funkcie optimalizátora môžete kategorizovať podľa spôsobu, akým sa zaoberajú derivátom (dy / dx), čo je okamžitá zmena y vzhľadom na x. Tu sú dve úrovne manipulácie s derivátmi:

  • Prvý rád: Tieto algoritmy minimalizujú alebo maximalizujú objektívnu funkciu pomocou hodnôt gradientu vzhľadom na parametre. Druhé poradie: Tieto algoritmy minimalizujú alebo maximalizujú funkciu objektu pomocou derivačných hodnôt druhého poriadku vzhľadom na parametre. Derivát druhého poriadku môže naznačovať, či derivát prvého rádu stúpa alebo klesá, čo poskytuje informácie o zakrivení čiary.

V neurónových sieťach, napríklad v Gradient Descent, sa bežne používajú techniky optimalizácie prvého poriadku, pretože vyžadujú menej výpočtov a pri práci na veľkých množinách údajov majú tendenciu relatívne rýchlo sa približovať k dobrému riešeniu.

Nastavenie pracovnej frekvencie učenia vo vašej nervovej sieti

Každý optimalizátor má úplne iné parametre na vyladenie vo vašej nervovej sieti. Jednou konštantou je stanovenie rýchlosti učenia, ktorá predstavuje rýchlosť, pri ktorej kód aktualizuje váhy siete (napríklad parameter alfa). Miera učenia môže ovplyvniť čas, ktorý neurónová sieť potrebuje na naučenie dobrého riešenia (počet epoch), a výsledok. Ak je miera učenia príliš nízka, vaša sieť sa bude učiť trvať večne. Príliš vysoká hodnota spôsobí nestabilitu pri aktualizácii váh a sieť sa nikdy neskonvertuje na dobré riešenie.

Výber miery učenia, ktorá funguje a trénuje vašu neurónovú sieť, je skľučujúca, pretože môžete efektívne vyskúšať hodnoty v rozmedzí od 0,000001 do 100. Najlepšia hodnota sa líši od optimalizátora k optimalizátoru. Hodnota, ktorú vyberiete, závisí od typu údajov, ktoré máte. Teória tu môže byť málo nápomocná; pred nájdením najvhodnejšej miery výučby pre úspešné zaškolenie neurónovej siete musíte otestovať rôzne kombinácie.

Napriek všetkej matematike, ktorá ich obklopuje, je ladenie neurónových sietí a ich najlepšie fungovanie väčšinou záležitosťou empirického úsilia pri skúšaní rôznych kombinácií architektúr a parametrov.

Urobte si čas, aby ste vyhodnotili rýchlosť učenia a správne ju nastavili, aby ste zaistili optimálne fungovanie vašej neurónovej siete.

  1. ProgramovanieVeľké údajeData ScienceAko funguje strojové učenie?

Autor: John Paul Mueller, Luca Mueller

Strojové učenie je aplikácia AI, ktorá sa môže automaticky učiť a zlepšovať zo skúseností bez toho, aby bola na to výslovne naprogramovaná. Strojové učenie sa vyskytuje ako výsledok analýzy stále rastúceho množstva údajov, takže základné algoritmy sa nemenia, ale vnútorné váhy a skreslenia použité na výber konkrétnej odpovede sa robia. Samozrejme nič nie je také jednoduché. Nasledujúci článok popisuje viac o tom, čo je strojové učenie, aby ste pochopili jeho miesto vo svete AI a čo z neho získa hlboké vzdelávanie.

Vedci údajov často označujú technológiu použitú na implementáciu strojového učenia za algoritmy. Algoritmus je séria postupných krokov, zvyčajne výpočtov, ktoré môžu vyriešiť definovaný problém v konečnom počte krokov. Pri strojovom učení algoritmy používajú rad konečných krokov na vyriešenie problému pomocou učenia sa z údajov.

Pochopenie toho, ako funguje strojové učenie

Algoritmy strojového učenia sa učia, ale často je ťažké nájsť presný význam pojmu učenie, pretože existujú rôzne spôsoby, ako extrahovať informácie z údajov, v závislosti od toho, ako je algoritmus strojového učenia zostavený. Proces učenia sa vo všeobecnosti vyžaduje obrovské množstvo údajov, ktoré poskytujú očakávanú odpoveď pri konkrétnych vstupoch. Každý pár vstup / odpoveď predstavuje príklad a ďalšie príklady uľahčujú učenie algoritmu. Je to preto, že každý pár vstup / odpoveď sa zmestí do riadku, zoskupenia alebo iného štatistického znázornenia, ktoré definuje problémovú doménu.

Strojové učenie je akt optimalizácie modelu, ktorý je matematickou sumarizovanou reprezentáciou samotných údajov tak, že dokáže predpovedať alebo inak určiť vhodnú odpoveď, aj keď dostane vstup, ktorý predtým nevidel. Čím presnejšie model môže prísť so správnymi odpoveďami, tým lepšie sa model naučil z poskytnutých údajov. Algoritmus sa prispôsobí modelu k údajom a týmto procesom prispôsobovania je školenie.

Obrázok nižšie zobrazuje veľmi jednoduchý graf, ktorý simuluje, čo sa vyskytuje v strojovom učení. V tomto prípade, počnúc vstupnými hodnotami 1, 4, 5, 8 a 10 a ich spárovaním s ich zodpovedajúcimi výstupmi 7, 13, 15, 21 a 25, algoritmus strojového učenia určí, že najlepší spôsob, ako reprezentovať Vzťah medzi vstupom a výstupom je vzorec 2x + 5. Tento vzorec definuje model používaný na spracovanie vstupných údajov - dokonca aj nových, nevidených údajov - na výpočet zodpovedajúcej výstupnej hodnoty. Trendová čiara (model) ukazuje vzorec vytvorený týmto algoritmom tak, že nový vstup 3 vytvorí predpovedaný výstup 11. Aj keď väčšina scenárov strojového učenia je oveľa komplikovanejšia (a algoritmus nemôže vytvoriť) pravidlá, ktoré presne zmapujú každý vstup na presný výstup), uvedený príklad poskytuje základnú predstavu o tom, čo sa stane. Namiesto toho, aby museli individuálne naprogramovať odozvu pre vstup 3, model môže vypočítať správnu odpoveď na základe párov vstup / odozva, ktoré sa naučil.

základný scenár strojového učenia

Pochopenie toho, že strojové učenie je čisto matematika

Hlavnou myšlienkou strojového učenia je to, že môžete predstavovať realitu pomocou matematickej funkcie, ktorú algoritmus nepozná vopred, ale ktorú môže hádať po zobrazení niektorých údajov (vždy vo forme párovaných vstupov a výstupov). Môžete vyjadriť realitu a jej náročnú zložitosť z hľadiska neznámych matematických funkcií, ktoré algoritmy strojového učenia nachádzajú a sprístupňujú ako modifikáciu svojej vnútornej matematickej funkcie. To znamená, že každý algoritmus strojového učenia je postavený na modifikovateľnej matematickej funkcii. Funkcia môže byť zmenená, pretože má na tento účel vnútorné parametre alebo hmotnosti. Výsledkom je, že algoritmus môže prispôsobiť funkciu konkrétnym informáciám prevzatým z údajov. Tento koncept je základnou myšlienkou všetkých druhov algoritmov strojového učenia.

Učenie v strojovom učení je čisto matematické a končí spojením určitých vstupov s určitými výstupmi. Nemá to nič spoločné s pochopením toho, čo sa algoritmus naučil. (Keď ľudia analyzujú údaje, do určitej miery budujeme pochopenie údajov.) Proces učenia sa často opisuje ako tréning, pretože algoritmus je trénovaný tak, aby zodpovedal správnu odpoveď (výstup) každej ponúknutej otázke (vstup). (Machine Learning For Dummies, John Paul Mueller a Luca Massaron, popisuje, ako tento proces funguje podrobne.)

Napriek nedostatku úmyselného porozumenia a matematického procesu sa strojové učenie môže ukázať ako užitočné pri mnohých úlohách. Poskytuje mnohým aplikáciám umelej inteligencie silu napodobňovať racionálne myslenie vzhľadom na určitý kontext, keď k učeniu dochádza pomocou správnych údajov.

Rôzne stratégie strojového učenia

Strojové učenie ponúka množstvo rôznych spôsobov, ako sa učiť z údajov. V závislosti od očakávaného výstupu a typu zadaného vstupu môžete algoritmy kategorizovať podľa štýlu učenia. Štýl, ktorý vyberiete, závisí od druhu údajov a výsledku, ktorý očakávate. Štyri štýly učenia používané na vytváranie algoritmov sú:

  • Strojové učenie pod dohľadom Strojové učenie bez dozoru Strojové učenie s vlastným dohľadom Posilnenie strojového učenia

Nasledujúce sekcie sa zaoberajú týmito štýlmi strojového učenia.

Strojové učenie pod dohľadom

Pri práci s dohliadanými algoritmami strojového učenia sú vstupné údaje označené a majú konkrétny očakávaný výsledok. Školenie sa používa na vytvorenie modelu, ktorý algoritmus vyhovuje údajom. Postupom školenia sa predpovede alebo klasifikácie stanú presnejšími. Tu je niekoľko príkladov dohliadaných algoritmov strojového učenia:

  • Lineárna alebo logistická regresia Podpora vektorových strojov (SVM) Naivné Bayes K-najbližší susedia (KNN)

Musíte rozlišovať medzi problémami regresie, ktorých cieľom je numerická hodnota, a problémami s klasifikáciou, ktorých cieľom je kvalitatívna premenná, napríklad trieda alebo značka. Regresná úloha by mohla určiť priemerné ceny domov v oblasti Bostonu, zatiaľ čo príklad klasifikačnej úlohy rozlišuje medzi druhmi kvetov dúhovky na základe ich sepálnych a okvetných lístkov. Tu je niekoľko príkladov strojového učenia pod dohľadom:

Strojové učenie bez dozoru

Pri práci s algoritmami strojového učenia bez dozoru nie sú vstupné údaje označené a výsledky nie sú známe. V tomto prípade analýza štruktúr v údajoch poskytne požadovaný model. Štrukturálna analýza môže mať niekoľko cieľov, ako napríklad zníženie nadbytočnosti alebo zoskupenie podobných údajov. Príklady strojového učenia bez dozoru sú:

  • clustering Detekcia anomálie Neurálne siete

Strojové učenie s vlastným dohľadom

Nájdete tu najrôznejšie druhy výučby, ktoré sú opísané online, ale výučba pod dohľadom je sama osebe. Niektorí ľudia to označujú ako autonómne učenie pod dohľadom, čo vám prináša výhody učenia pod dohľadom, ale bez všetkej práce potrebnej na označenie údajov.

Teoreticky by supervízor mohol vyriešiť problémy s inými druhmi učenia, ktoré môžete v súčasnosti používať. Nasledujúci zoznam porovnáva vzdelávanie pod dohľadom s inými druhmi vzdelávania, ktoré ľudia používajú.

  • Strojové učenie pod dohľadom: Najbližšou formou učenia spojeného so samoukazovaným učením je strojové učenie pod dohľadom, pretože oba druhy učenia sa spoliehajú na dvojice vstupov a označené výstupy. Okrem toho sú obe formy učenia spojené s regresiou a klasifikáciou. Rozdiel je však v tom, že vzdelávanie pod dohľadom nevyžaduje, aby osoba označila výstup. Namiesto toho sa spolieha na korelácie, vložené metadáta alebo znalosti domény vložené do vstupných údajov, aby sa kontextovo objavilo výstupné označenie. Strojové učenie bez dozoru: Podobne ako strojové učenie bez dozoru, učenie s vlastným dohľadom nevyžaduje žiadne označovanie údajov. Neupozorňované učenie sa však zameriava na štruktúru údajov - to je na vzorce v údajoch. Preto nepoužívate samokontrolné učenie na úlohy, ako je zoskupovanie, zoskupovanie, znižovanie rozmerov, odporúčacie nástroje a podobne. Strojové učenie s polovičným dohľadom: Učebné riešenie s polovičným dohľadom funguje ako neučené učebné riešenie v tom, že hľadá dátové vzory. Učenie sa pod dohľadom sa však spolieha na kombináciu označených a neoznačených údajov, aby svoje úlohy plnila rýchlejšie, ako je možné pomocou prísne neoznačených údajov. Učenie s vlastným dohľadom nikdy nevyžaduje štítky a na vykonávanie svojej úlohy používa kontext, takže by štítky pri dodávke skutočne ignorovali.

Posilnenie strojového učenia

Na posilnenie výučby môžete nazerať ako na rozšírenie výučby s vlastným dohľadom, pretože obe formy používajú rovnaký prístup k výučbe s neznačenými údajmi na dosiahnutie podobných cieľov. Štúdium zosilnenia však do zmesi pridáva slučku spätnej väzby. Keď riešenie výučby posilnenia vykonáva úlohu správne, dostane pozitívnu spätnú väzbu, ktorá posilní model prepojenia cieľových vstupov a výstupov. Podobne môže získať negatívnu spätnú väzbu za nesprávne riešenia. V niektorých ohľadoch systém funguje rovnako ako práca so psom na základe systému odmien.

Tréningové, validačné a testovacie údaje pre strojové učenie

Strojové učenie je proces, rovnako ako všetko je procesom vo svete počítačov. Ak chcete vytvoriť úspešné riešenie strojového učenia, vykonávajte tieto úlohy podľa potreby a často podľa potreby:

  • Tréning: Strojové učenie sa začína, keď trénujete model pomocou konkrétneho algoritmu na základe konkrétnych údajov. Údaje o výcviku sú oddelené od akýchkoľvek iných údajov, ale musia byť tiež reprezentatívne. Ak údaje o školení skutočne nepredstavujú problémovú doménu, výsledný model nemôže poskytnúť užitočné výsledky. Počas tréningového procesu uvidíte, ako model reaguje na školiace údaje a podľa potreby mení algoritmy, ktoré používate, a spôsob, ktorým údaje masírujete pred vstupom do algoritmu. Potvrdenie platnosti: Mnoho súborov údajov je dosť veľké na to, aby sa rozdelili na časť týkajúcu sa odbornej prípravy a testovacej časti. Najprv trénujete model pomocou trénovacích údajov a potom ho validujete pomocou testovacích údajov. Údaje o testovaní musia samozrejme opäť predstavovať problémovú doménu presne. Musí byť tiež štatisticky kompatibilný s údajmi o výcviku. V opačnom prípade neuvidíte výsledky, ktoré odrážajú, ako bude model skutočne fungovať. Testovanie: Po zaškolení a overení modelu je potrebné ho otestovať pomocou údajov v reálnom svete. Tento krok je dôležitý, pretože musíte overiť, či model skutočne bude fungovať na väčšom súbore údajov, ktorý ste nepoužili na výcvik ani testovanie. Rovnako ako v prípade krokov odbornej prípravy a validácie, všetky údaje, ktoré použijete počas tohto kroku, musia odrážať problémovú doménu, s ktorou chcete pracovať s použitím modelu strojového učenia.

Výcvik poskytuje algoritmus strojového učenia so všetkými druhmi príkladov požadovaných vstupov a výstupov očakávaných od týchto vstupov. Algoritmus strojového učenia potom použije tento vstup na vytvorenie matematickej funkcie. Inými slovami, školenie je proces, pomocou ktorého algoritmus zisťuje, ako prispôsobiť funkciu údajom. Výstupom takejto funkcie je zvyčajne pravdepodobnosť určitého výstupu alebo jednoducho číselnej hodnoty ako výstupu.

Predstavte si, čo sa deje vo vzdelávacom procese. Predstavte si, že sa dieťa naučí rozlišovať stromy od predmetov, zvierat a ľudí. Predtým, ako to dieťa môže urobiť nezávisle, učiteľ predloží dieťaťu určitý počet stromových snímok, ktorý je doplnený všetkými skutočnosťami, vďaka ktorým je strom odlíšiteľný od iných predmetov sveta. Takéto fakty by mohli byť vlastnosti, ako je materiál stromu (drevo), jeho časti (kmeň, vetvy, listy alebo ihly, korene) a umiestnenie (vysadené v pôde). Dieťa buduje pochopenie toho, ako strom vyzerá porovnaním zobrazenia prvkov stromu s obrázkami iných rôznych príkladov, napríklad kusov nábytku vyrobených z dreva, ale so stromom nezdieľa iné vlastnosti.

Klasifikátor strojového učenia funguje rovnako. Algoritmus klasifikátora vám poskytuje triedu ako výstup. Môže vám napríklad povedať, že fotografia, ktorú zadáte ako vstup, sa zhoduje s triedou stromu (a nie zviera alebo osoba). Za týmto účelom buduje svoje kognitívne schopnosti vytvorením matematickej formulácie, ktorá obsahuje všetky dané vstupné vlastnosti spôsobom, ktorý vytvára funkciu, ktorá dokáže rozlíšiť jednu triedu od druhej.

Hľadáme zovšeobecnenie v strojovom učení

Aby bol strojový model učenia užitočný, musí predstavovať všeobecný pohľad na poskytnuté údaje. Ak model nerešpektuje údaje dostatočne dôkladne, je nedostatočne vybavený - to znamená, že nie sú dostatočne vybavené kvôli nedostatočnému zaškoleniu. Na druhú stranu, ak model sleduje údaje príliš podrobne, je príliš vybavený a sleduje príliš veľa údajov ako rukavice, pretože je príliš trénovaný. Nedostatočné a nadmerné vybavenie spôsobuje problémy, pretože model nie je natoľko zovšeobecnený, aby priniesol užitočné výsledky. Vzhľadom na neznáme vstupné údaje budú výsledné predpovede alebo klasifikácie obsahovať veľké hodnoty chýb. Len ak je model správne pripojený k údajom, poskytne výsledky v rámci primeraného rozsahu chýb.

Celá táto otázka zovšeobecnenia je dôležitá aj pri rozhodovaní o tom, kedy používať strojové učenie. Riešenie strojového učenia vždy zovšeobecňuje od konkrétnych príkladov k všeobecným príkladom toho istého druhu. Spôsob vykonávania tejto úlohy závisí od orientácie riešenia strojového učenia a algoritmov použitých na jeho fungovanie.

Problém pre vedcov údajov a iných, ktorí používajú techniky strojového učenia a hlbokého učenia, spočíva v tom, že počítač nezobrazí znak oznamujúci, že model správne zodpovedá údajom. Často je vecou ľudskej intuície rozhodnúť sa, kedy je model dostatočne vycvičený, aby poskytoval dobrý všeobecný výsledok. Okrem toho si tvorca riešenia musí zvoliť správny algoritmus z tisícov, ktoré existujú. Bez správneho algoritmu na prispôsobenie modelu údajom budú výsledky sklamaním. Aby výberový proces fungoval, musí mať vedec údajov k dispozícii

  • Silná znalosť dostupných algoritmov strojového učenia Skúsenosti s riešením daného druhu údajov Pochopenie požadovaného výstupu Túžba experimentovať s rôznymi algoritmami strojového učenia

Posledná požiadavka je najdôležitejšia, pretože neexistujú žiadne tvrdé a rýchle pravidlá, ktoré hovoria, že konkrétny algoritmus bude pracovať so všetkými druhmi údajov v každej možnej situácii. Keby to tak bolo, nebolo by toľko algoritmov k dispozícii. Aby vedec údajov našiel najlepší algoritmus, často sa uchýlil k experimentovaniu s množstvom algoritmov a porovnaniu výsledkov.

Spoznajte hranice zaujatosti

Váš počítač nemá zaujatosť. Jeho cieľom nie je ovládnuť svet alebo sťažiť váš život. Počítače v skutočnosti nemajú žiadne ciele. Počítač môže poskytnúť iba výstup založený na vstupoch a technike spracovania. Avšak zaujatosť sa stále dostáva do počítača a výsledky, ktoré poskytuje, poskladá niekoľkými spôsobmi:

  • Dáta: Dáta samotné môžu obsahovať chyby alebo prosté nepravdivé údaje. Napríklad, ak sa konkrétna hodnota objaví v údajoch dvakrát častejšie ako v reálnom svete, výstup z riešenia strojového učenia je poškodený, aj keď samotné údaje sú správne. Algoritmus: Použitie nesprávneho algoritmu spôsobí, že riešenie strojového učenia nesprávne prispôsobí model údajom. Tréning: Príliš veľa alebo príliš málo tréningov mení, ako model vyhovuje údajom, a teda aj výsledkom. Interpretácia človeka: Aj keď riešenie strojového učenia poskytuje správny výsledok, človek, ktorý tento výstup používa, ho môže nesprávne interpretovať. Výsledky sú vždy také zlé, a možno horšie, ako keď riešenie strojového učenia nefunguje podľa očakávania.

Musíte zvážiť účinky zaujatosti bez ohľadu na to, aké riešenie strojového učenia vytvoríte. Je dôležité vedieť, aké druhy obmedzení tieto predsudky kladú na vaše riešenie strojového učenia a či je riešenie dostatočne spoľahlivé, aby poskytovalo užitočný výstup.

Majte na pamäti zložitosť modelu pri strojovom učení

Jednoduchšie je vždy lepšie, pokiaľ ide o strojové učenie. Mnoho rôznych algoritmov vám môže poskytnúť užitočné výstupy z vášho strojového riešenia učenia, ale najlepším algoritmom na použitie je ten, ktorý je najjednoduchšie pochopiteľný a poskytuje najpriamejšie výsledky. Razor spoločnosti Occam je všeobecne uznávaný ako najlepšia stratégia, ktorú treba dodržať. Razor spoločnosti Occam vám v zásade povie, aby ste používali najjednoduchšie riešenie, ktoré vyrieši konkrétny problém. S rastúcou zložitosťou sa zvyšuje aj potenciál chýb.

Najdôležitejším usmerňujúcim faktorom pri výbere algoritmu by mala byť jednoduchosť.