Aktualizovat „pages/students/2016/patrik_pavlisin/tp20/README.md“

This commit is contained in:
Patrik Pavlišin 2021-02-11 16:22:09 +00:00
parent a7ac574a1f
commit 7d48c765c6

View File

@ -7,36 +7,44 @@ Strojový preklad je automatický preklad jednej, alebo skupiny viacerých viet
Popularita internetu výrazne ovplyvnila záujem o strojový preklad a šírenie informácii vo viacerých jazykoch. Príkladom sú viacjazyčné vlády, spravodajské agentúry a spoločnosti pôsobiace na globálnom trhu. Vďaka tomuto rozšíreniu sú základným zdrojom vo výskume SMT, pretože sú každodenným produktom bežných ľudských činností. A je to taktiež jeden z dôvodov, prečo Európska únia, či Vláda Spojených štátov zvýšila financovanie výskumu strojového prekladu na podporu svojich záujmov v oblasti politiky. Rýchli a lacný výpočtový hardvér umožnil aplikácie, ktoré závisia od veľkého počtu súborov údajov a miliárd štatistík. Výrazne k tomu prispeli pokroky v rýchlosti procesora, veľkosti a rýchlosti pamäte novších počítačov. Vývoj metrík automatického prekladu taktiež umožnil zrýchliť vývoj systémov strojového prekladu a podporil konkurenciu medzi výskumnými skupinami. [10]
## Neurónový strojový preklad
Sila NMT spočíva v jeho schopnosti učiť sa priamo, end-to-end spôsobom, mapovanie zo vstupného textu na asociovaný výstupný text. Neurónový strojový preklad je jedným z novších prístupov k štatistickej strojovej translácii založenej čisto na neurónových sieťach, pozostávajú z kódovacieho zariadenia a dekódera. Tento typ strojového prekladu viedol k zlepšeniu najmä v oblasti hodnotenia ľudí, v porovnaní so systémami založenými na štatistických pravidlách a štatistickým strojovým prekladom. Posledné štúdie však ukazujú, že NMT všeobecne produkuje plynulé, ale nedostatočné preklady, čo je v kontraste s konvenčným štatistickým strojovým prekladom, ktorý produkuje adekvátne, ale nie plynulé preklady. Kóder extrahuje reprezentáciu pevnej dĺžky zo vstupnej vety s premennou dĺžkou a dekóder následne vygeneruje finálny preklad z danej reprezentácie. Neurálny strojový preklad funguje dobre predovšetkým na krátke vety bez neznámych slov, preklad sa však zhoršuje s pribúdajúcou dĺžkou textu a neznámych slov, taktiež slovná zásoba ma veľký vplyv na výkon prekladu. Výhodou neurálneho strojového prekladu je, že oproti SMT vyžaduje iba zlomok pamäte pre trénovanie (napr. ak neurónový strojový preklad použije 500 MB pamäte, SMT by na rovnaké trénovanie využil desiatky gigabajtov). Na rozdiel od iných konvenčných prekladových systémov, sa každý komponent modelu neurálneho prekladu trénuje spoločne, aby sa maximalizoval výkon prekladu. [4] [5] [6] [7]
Sila NMT spočíva v jeho schopnosti učiť sa priamo, end-to-end spôsobom, mapovanie zo vstupného textu na asociovaný výstupný text. End-to-end učenie je typ procesu Deep Learning, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. Neurónový strojový preklad je jedným z novších prístupov v štatistickom strojovom preklade založený čisto na neurónových sieťach, pozostávajú z kódovacieho zariadenia a dekódera. Tento typ strojového prekladu viedol k zlepšeniu najmä v oblasti hodnotenia ľudí, v porovnaní so systémami založenými na štatistickom strojovom preklade. Podľa najnovších štúdií NMT všeobecne produkuje plynulé, ale nedostatočné preklady, čo je v kontraste s konvenčným štatistickým strojovým prekladom, ktorý produkuje adekvátne, ale nie plynulé preklady. Kódovacie zariadenie extrahuje reprezentáciu pevnej dĺžky zo vstupnej vety s premennou dĺžkou a dekóder následne vygeneruje finálny preklad z danej reprezentácie. Neurálny strojový preklad funguje dobre predovšetkým na krátke vety bez neznámych slov, preklad sa však zhoršuje s pribúdajúcou dĺžkou textu a neznámych slov, taktiež slovná zásoba ma veľký vplyv na výkon prekladu. Výhodou neurónového strojového prekladu je, že oproti SMT vyžaduje iba zlomok pamäte pre trénovanie (napr. ak neurónový strojový preklad použije 500 MB pamäte, SMT by na rovnaké trénovanie využil desiatky gigabajtov). Na rozdiel od iných konvenčných prekladových systémov, sa každý komponent modelu neurálneho prekladu trénuje spoločne, aby sa maximalizoval výkon prekladu. [4] [5] [6] [7]
## NMT s SMT výhodami
Vzhľadom na vedomosti, ktoré máme o NMT a SMT je preto prirodzené pokúsiť sa využívať výhody oboch modelov na lepšie preklady. Konkrétne začleniť model SMT do rámca NMT, čo znamená, že v každom kroku SMT odošle ďalšie odporúčania generovaných slov na základe dekódovacích informácii z NMT. Experimentálne výsledky čínsko-anglického prekladu (NMT advised by SMT, 2016) ukazujú, že navrhovaný prístup dosahuje mimoriadne konzistentné vylepšenia oproti najnovším NMT a SMT modelom. Jedným z rozdielov v tomto prístupe je, že tento model nevyberá ďalšie slovo len na základe vektorových reprezentácií, ale umožňuje tiež predikciu na základe odporúčaní z modelu SMT. (Viac informácii na [3] ).
Vzhľadom na vedomosti, ktoré máme o NMT a SMT je preto prirodzené pokúsiť sa využívať výhody oboch modelov na lepšie preklady. Konkrétne začleniť model SMT do rámca NMT, čo znamená, že v každom kroku SMT odošle ďalšie odporúčania generovaných slov na základe dekódovacích informácii z NMT. Experimentálne výsledky čínsko-anglického prekladu (NMT advised by SMT, 2016) ukazujú, že navrhovaný prístup dosahuje mimoriadne konzistentné vylepšenia oproti najnovším NMT a SMT modelom. Jedným z rozdielov v tomto prístupe je, že tento model nevyberá ďalšie slovo len na základe vektorových reprezentácií (vektory čísel, ktoré predstavujú význam slova), ale umožňuje tiež predikciu na základe odporúčaní z modelu SMT. (Viac informácii na [3] ).
## Recurrent neural network
Rekurentná neurónová sieť (RNN) je trieda umelých neurónových sietí, kde spojenia medzi uzlami vytvárajú usmernený graf pozdĺž časovej postupnosti. To mu umožňuje vykazovať časové dynamické správanie. RNN môžu používať svoj vnútorný stav (pamäť) na spracovanie sekvencií vstupov s premennou dĺžkou. Obojsmerná rekurentná neurónová sieť, známa ako kódovač, používa neurónová sieť na kódovanie zdrojovej vety pre druhý RNN, známy ako dekodér, ktorý sa používa na predikciu slov v cieľovom jazyku. Rekurentné neurónové siete čelia problémom pri kódovaní dlhých vstupov do jedného vektora. To je možné kompenzovať pomocou tzv. attention mechanisms, ktorý umožňuje dekodéru sústrediť sa na rôzne časti vstupu pri generovaní každého slova výstupu. Existujú ďalšie modely pokrytia, ktoré sa zaoberajú problémami v takýchto mechanizmoch pozornosti, napríklad ignorovanie informácií o minulom zosúladení vedúcich k nadmernému prekladu a nedostatočnému prekladu.
Rekurentné neurónové siete (RNN) sú najmodernejším algoritmom pre sekvenčné dáta a používajú ich napr. Apple´s Siri alebo Google. Je to prvý algoritmus, ktorý si pamätá svoj vstup a to vďaka vnútornej pamäti, čo ho robí perfektným pre problémy strojového učenia, ktoré zahŕňajú sekvenčné dáta. RNN môžu používať svoj vnútorný stav (pamäť) na spracovanie sekvencií vstupov s premennou dĺžkou. Obojsmerná rekurentná neurónová sieť, známa ako kóder, používa neurónová sieť na kódovanie zdrojovej vety pre druhý RNN, známy ako dekodér, ktorý sa používa na predikciu slov v cieľovom jazyku. Neurónová sieť sa považuje za snahu napodobniť akcie ľudského mozgu zjednodušeným spôsobom. Mechanizmus pozornosti je tiež pokusom o implementáciu rovnakej akcie selektívneho sústredenia sa na niekoľko dôležitých vecí, zatiaľ čo ostatné sú ignorované v hlbokých neurónových sieťach. Rekurentné neurónové siete čelia problémom pri kódovaní dlhých vstupov do jedného vektora. To je možné kompenzovať pomocou tzv. attention mechanisms (mechanizmus pozornosti), ktorý umožňuje dekodéru sústrediť sa na rôzne časti vstupu pri generovaní každého slova výstupu.
Termín „rekurentná neurónová sieť“ sa používa bez rozdielu na označenie dvoch širokých tried sietí s podobnou všeobecnou štruktúrou, kde jedna je konečný impulz a druhá nekonečný impulz. Obe triedy sietí vykazujú časové dynamické správanie. Konečná impulzná opakujúca sa sieť je filter, ktorého impulzná odozva (alebo odozva na akýkoľvek vstup konečnej dĺžky) má konečnú dobu trvania, pretože sa v konečnom čase usadí na nule, zatiaľ čo nekonečná impulzná odozva (IIR) je vlastnosť vzťahujúca sa na mnoho lineárnych časovo invariantných systémov, ktoré sa vyznačujú tým, že majú impulznú odozvu h (t), ktorá sa nestane presne nulou za určitým bodom, ale pokračuje donekonečna. (Viac informácii na ( [7],[8] ).
Termín „rekurentná neurónová sieť“ sa používa bez rozdielu na označenie dvoch širokých tried sietí s podobnou všeobecnou štruktúrou, kde jedna je konečný impulz a druhá nekonečný impulz. Obe triedy sietí vykazujú časové dynamické správanie. Konečná impulzná opakujúca sa sieť je usmernený acyklický graf, ktorý je možné rozvinúť a nahradiť ho striktne doprednou neurálnou sieťou, zatiaľ čo nekonečná impulzná opakujúca sa sieť je usmernený cyklický graf, ktorý sa nedá rozvinúť. Konečné impulzné aj nekonečné impulzné opakujúce sa siete môžu mať ďalšie uložené stavy a úložisko môže byť pod priamou kontrolou neurónovej siete. Úložisko je tiež možné nahradiť inou sieťou alebo grafom, ak obsahuje časové oneskorenia alebo má spätnoväzbové slučky. (Viac informácii na ( [7],[8] ).
## Convolutional Neural Networks
Okrem RNN je ďalším prirodzeným prístupom k riešeniu sekvencií s premennou dĺžkou použitie rekurzívnej konvolučnej neurónovej siete, kde sú parametre na každej úrovni zdieľané cez celú sieť. Konvolučné neurónové siete sú v zásade o niečo lepšie pre dlhé nepretržité sekvencie, ale pôvodne sa nepoužívali kvôli niekoľkým slabinám. Tie boli v roku 2017 úspešne kompenzované pomocou „attention mechanisms“.
Konvolučná neurónová sieť (CNN) je trieda hlbokých neurónových sietí, ktorá sa najčastejšie používa na analýzu vizuálnych snímok. Sú tiež známe ako umelé neurónové siete s posunom invariantu alebo s priestorovým invariantom (SIANN) na základe ich architektúry zdieľaných váh a charakteristík invariantnosti translácie. CNN používajú v porovnaní s inými algoritmami klasifikácie obrázkov relatívne malé predbežné spracovanie. To znamená, že sa sieť učí filtre, ktoré boli v tradičných algoritmoch vyrobené ručne. Táto nezávislosť od predchádzajúcich znalostí a ľudského úsilia pri navrhovaní funkcií je hlavnou výhodou.
Konvolučná neurónová sieť (CNN) je trieda hlbokých neurónových sietí, ktorá sa najčastejšie používa na analýzu vizuálnych snímok. Sú tiež známe ako umelé neurónové siete s invariantným posunom alebo s priestorovým invariantom (SIANN) na základe ich architektúry zdieľaných váh a charakteristík invariantnosti prekladu. CNN používajú v porovnaní s inými algoritmami klasifikácie obrázkov relatívne malé predbežné spracovanie. To znamená, že sa sieť učí filtre, ktoré boli v tradičných algoritmoch vyrobené ručne. Táto nezávislosť od predchádzajúcich znalostí a ľudského úsilia pri navrhovaní funkcií je hlavnou výhodou.
Konvolučné siete sa inšpirovali biologickými procesmi v tom, že vzorec spojenia medzi neurónmi pripomína organizáciu vizuálnej mozgovej kôry zvieraťa. Jednotlivé kortikálne neuróny (vonkajšia vrstva nervového tkaniva mozgu) reagujú na podnety iba v obmedzenej oblasti zorného poľa známej ako receptívne pole. Vnímavé polia rôznych neurónov sa čiastočne prekrývajú tak, že pokrývajú celé zorné pole.
CNN používajú v porovnaní s inými algoritmami klasifikácie obrázkov relatívne málo predbežného spracovania. To znamená, že sa sieť učí filtre, ktoré boli v tradičných algoritmoch vyrobené ručne. Pri spracovaní signálu je filtrom zariadenie alebo proces, ktorý odstraňuje zo signálu niektoré nežiaduce komponenty alebo vlastnosti. Táto nezávislosť od predchádzajúcich znalostí a ľudského úsilia pri navrhovaní funkcií je hlavnou výhodou. (Viac informácii na [5],[6] ).
CNN sú legalizované verzie viacvrstvových perceptrónov. Viacvrstvové perceptróny zvyčajne znamenajú plne spojené siete, to znamená, že každý neurón v jednej vrstve je spojený so všetkými neurónmi v nasledujúcej vrstve. Vďaka „úplnému prepojeniu“ týchto sietí sú náchylné na preplnenie údajov. Typické spôsoby regularizácie zahŕňajú pridanie určitej formy merania hmotnosti k stratovej funkcii. CNN používajú odlišný prístup k regularizácii: využívajú hierarchický vzorec v dátach a zhromažďujú zložitejšie vzory pomocou menších a jednoduchších vzorov. Z hľadiska rozsahu prepojenosti a zložitosti sú teda CNN na dolnej extrému. (Viac informácii na [5],[6] ).
## EncoderDecoder Approach
Architektúra Encoder-Decoder s rekurentnými neurónovými sieťami sa stala efektívnym a štandardným prístupom pre neurálnu strojovú transláciu (NMT) a predikciu sekvencie za sekvenciou (seq2seq) všeobecne.
Architektúra Encoder-Decoder s rekurentnými neurónovými sieťami sa stala efektívnym a štandardným prístupom pre neurónový strojový preklad (NMT) a predikciu Sequence-to-sequence (seq2seq) všeobecne. Seq2seq je trénovanie modelov na prevod sekvencií z jednej domény (napr. vety v angličtine) na sekvencie v inej doméne (napr. rovnaké vety preložené do slovenčiny)
Strojový preklad je hlavnou problémovou doménou pre modely sekvenčnej transdukcie, ktorých vstup aj výstup sú sekvencie s premennou dĺžkou. Na zvládnutie tohto typu vstupov a výstupov môžeme navrhnúť architektúru s dvoma hlavnými komponentmi. Prvým komponentom je kódovač, ktorý berie ako vstup sekvenciu s premennou dĺžkou a transformuje ju do stavu s pevným tvarom. Druhým komponentom je dekodér, ktorý mapuje kódovaný stav pevného tvaru na sekvenciu s premennou dĺžkou. Toto sa nazýva architektúra dekodér-dekodér.
Mnoho úloh strojového učenia sa dá vyjadriť ako transformácia - alebo transdukcia - vstupných sekvencií do výstupných sekvencií (napr. rozpoznávanie reči, strojový preklad, alebo prevod textu na reč. (Alex Graves, 2012)
Strojový preklad je hlavnou problémovou doménou pre modely sekvenčnej transdukcie, ktorých vstup aj výstup sú sekvencie s premennou dĺžkou. Na zvládnutie tohto typu vstupov a výstupov môžeme navrhnúť architektúru s dvoma hlavnými komponentmi. Prvým komponentom je kódovacie zariadenie, ktoré berie ako vstup sekvenciu s premennou dĺžkou a transformuje ju do stavu s pevným tvarom. Druhým komponentom je dekodér, ktorý mapuje kódovaný stav pevného tvaru na sekvenciu s premennou dĺžkou. Toto sa nazýva Encoder-Decoder architektúra.
Aj keď je architektúra Encoder-Decoder efektívna, má problémy s dlhými sekvenciami textu, ktoré sa majú preložiť. Problém pramení z internej reprezentácie pevnej dĺžky, ktorá sa musí použiť na dekódovanie každého slova vo výstupnej sekvencii. Riešením je použitie attention mechanism (mechanizmu pozornosti), ktorý umožňuje modelu naučiť sa, kam má venovať pozornosť vstupnej sekvencii, pretože každé slovo výstupnej sekvencie je dekódované.
Kľúčovými výhodami tohto prístupu sú schopnosť trénovať jeden end-to-end model priamo na zdrojových a cieľových vetách a schopnosť zvládnuť vstupné a výstupné sekvencie textu s rôznou dĺžkou. Ako dôkaz úspechu metódy je architektúra jadrom prekladateľskej služby Google. Architektúra rekurentnej neurónovej siete Encoder-Decoder s pozornosťou je v súčasnosti najmodernejším riešením niektorých benchmarkových problémov pre strojový preklad. Táto architektúra je použitá v jadre systému Google Neural Machine Translation alebo GNMT, ktorý sa používa v ich službe Google Translate. [8]
|![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/commit/5134c49afabbb2e5e8e090b8fa54bb1711dd6160/pages/students/2016/patrik_pavlisin/1.png)|
|:--:|
|Obr 1. encoder-decoder architektúra|
@ -44,11 +52,12 @@ Kľúčovými výhodami tohto prístupu sú schopnosť trénovať jeden end-to-e
## BERT
Bidirectional Encoder Representations from Transformers (BERT) je strojové školenie zamerané na techniku strojového učenia na spracovanie prirodzeného jazyka (NLP) vyvinuté spoločnosťou Google. Keď bol BERT publikovaný, dosiahol vynikajúcu výkonnosť v mnohých úlohách porozumenia prirodzenému jazyku ako napr. SQuAD (Stanford Question Answering Dataset) a SWAG (Situations With Adversarial Generations). Dôvody spoľahlivého výkonu BERT v týchto úlohách porozumenia prirodzenému jazyku ešte nie sú dobre pochopené.
Bidirectional Encoder Representations from Transformers (BERT) je Transformer-based technika strojového učenia pre spracovanie prirodzeného jazyka vyvinutý spoločnosťou Google. Transformátor je model Deep Learning predstavený v roku 2017, ktorý sa používa predovšetkým v oblasti spracovania prirodzeného jazyka (NLP). Deep Learning je funkcia umelej inteligencie (AI), ktorá napodobňuje činnosť ľudského mozgu pri spracovaní údajov a vytváraní vzorcov pre použitie pri rozhodovaní. Keď bol BERT publikovaný, dosiahol vynikajúcu výkonnosť v mnohých úlohách porozumenia prirodzenému jazyku ako napr. SQuAD (Stanford Question Answering Dataset) a SWAG (Situations With Adversarial Generations). Dôvody spoľahlivého výkonu BERT v týchto úlohách porozumenia prirodzenému jazyku ešte nie sú dobre pochopené.
BERT využíva Transformátor, attention mechanism (mechanizmus pozornosti), ktorý sa učí kontextové vzťahy medzi slovami v texte. Vo svojej základnej podobe obsahuje Transformer dva samostatné mechanizmy - kódovač, ktorý číta textový vstup, a dekodér, ktorý vytvára predikciu úlohy. Pretože cieľom BERT je vygenerovať jazykový model, je potrebný iba mechanizmus kódovacieho zariadenia. Na rozdiel od smerových modelov, ktoré čítajú textový vstup postupne (zľava doprava alebo sprava doľava), čítací transformátor číta celú postupnosť slov naraz. Preto sa považuje za obojsmerný, aj keď by bolo presnejšie povedať, že je nesmerový. Táto vlastnosť umožňuje modelu naučiť sa kontext slova na základe celého jeho okolia (vľavo a vpravo od slova). Nasledujúca tabuľka obsahuje podrobný popis kódovacieho zariadenia Transformer. Vstupom je postupnosť tokenov, ktoré sa najskôr vložia do vektorov a potom sa spracujú v neurónovej sieti. Výstupom je postupnosť vektorov veľkosti H, v ktorých každý vektor zodpovedá vstupnému tokenu s rovnakým indexom.
BERT využíva Transformátor, attention mechanism (mechanizmus pozornosti), ktorý sa učí kontextové vzťahy medzi slovami v texte. Vo svojej základnej podobe obsahuje Transformer dva samostatné mechanizmy encoder, ktorý číta text zo vstupu, a dekodér, ktorý vytvára predpoveď pre danú úlohu. Pretože cieľom BERT je vygenerovať jazykový model, je potrebný iba encoder mechanizmus. Na rozdiel od smerových modelov, ktoré čítajú textový vstup postupne (zľava doprava alebo sprava doľava), Transformer encoder číta celú postupnosť slov naraz. Preto sa považuje za obojsmerný, aj keď by bolo presnejšie povedať, že je nesmerový. Táto vlastnosť umožňuje modelu naučiť sa kontext slova na základe celého jeho okolia (vľavo a vpravo od slova). Vstupom je postupnosť tokenov, ktoré sa najskôr vložia do vektorov a potom sa spracujú v neurónovej sieti. Výstupom je postupnosť vektorov veľkosti H, v ktorých každý vektor zodpovedá vstupnému tokenu s rovnakým indexom.
V súčasnosti sú vopred vytrénované jazykové modely BERT považované za dôležité pre širokú škálu úloh NLP, ako sú napríklad Natural Language Inference (NLI je podtémou spracovania prirodzeného jazyka v umelej inteligencii, ktorá sa zaoberá strojovým čítaním s porozumením) a Question Answer (QA je disciplína informatiky v oblasti získavania informácií). Napriek svojmu obrovskému úspechu stále majú limity na reprezentáciu kontextových informácií v korpuse špecifickom pre danú oblasť, pretože sú trénované na všeobecnom korpuse (napr. Anglická Wikipedia). Napríklad Ubuntu Corpus, ktorý je jedným z najpoužívanejších korpusov pri výbere odpovedí, obsahuje množstvo terminológií a príručiek, ktoré sa vo všeobecnom korpuse zvyčajne nevyskytujú (napr. Apt-get, mkdir a grep). Pretože sa korpus zameriava predovšetkým na určitú doménu, existujúce diela majú obmedzenia pri porovnávaní kontextu dialógu a odozvy. Korpus konverzácií, ako napríklad Twitter a Reddits, sa navyše skladá hlavne z hovorových výrazov, ktoré sú zvyčajne gramaticky nesprávne. [1] [2]
V súčasnosti sú vopred vytrénované jazykové modely BERT považované za dôležité pre širokú škálu úloh NLP, ako sú napríklad Natural Language Inference (NLI) a Question Answer (QA). Napriek svojmu obrovskému úspechu stále majú limity na reprezentáciu kontextových informácií v korpuse špecifickom pre danú oblasť, pretože sú trénované na všeobecnom korpuse (napr. Anglická Wikipedia). Napríklad Ubuntu Corpus, ktorý je najpoužívanejším korpusom pri výbere odpovedí, obsahuje množstvo terminológií a príručiek, ktoré sa vo všeobecnom korpuse zvyčajne nevyskytujú (napr. Apt-get, mkdir a grep). Pretože sa korpus zameriava predovšetkým na určitú doménu, existujúce diela majú obmedzenia pri porovnávaní kontextu dialógu a odozvy. Korpus konverzácií, ako napríklad Twitter a Reddits, sa navyše skladá hlavne z hovorových výrazov, ktoré sú zvyčajne gramaticky nesprávne. [1] [2]
## Metódy vyhodnotenia