Strelba na vozidlo Tatra na rakúskej hranici: Prehľad a metódy riešenia problémov s ASR

V súčasnosti existuje mnoho metód/spôsobov, akými je možné pristupovať k problematike doplňovania interpunkcie a obnovy veľkých písmen. Systémy vykonávajúce doplňovanie interpunkčných znamienok a veľkých písmen sú potrebné najmä preto, lebo tieto výstupy bez interpunkcie a veľkých písmen väčšinou pre ľudí nie sú zrozumiteľné (v textovej forme).

Keďže interpunkcia a veľké písmená v slovách nemajú vplyv na výslovnosť slov, sú z výstupu ASR (*automatic speech recognition = automatické rozpoznávanie reči*) odstraňované, výsledkom čoho sú iba sekvencie slov alebo písmen.

V niektorých metódach je použitý princíp strojového prekladu, kde do modelu vstupoval text bez interpunkcie a model tento text následne “preložil” na text s interpunkciu. V iných metódach sú zasa použité CRF (*conditional random field = podmienené náhodné polia*). Avšak väčšina existujúcich metód/systémov rieši iba interpunkciu, čo však nestačí napr.

V tomto článku predstavím dve metódy z roku 2019, v ktorých sú predstavené dva rôzne spôsoby, ako je možné pristupovať k problematike doplňovania interpunkcie. Prvá z nich je zameraná na tzv. transformátory a druhá z nich funguje na princípe tzv.

1. Metóda Binh Nguyena a kolektívu

Metóda vytvorená kolektívom autorov okolo Binh Nguyena z Vietnamu predstavuje spôsob doplňovania interpunkcie a obnovy veľkých písmen pre ASR. Skladá sa z 3 komponentov, z ktorých prvý slúži na rozdeľovanie veľkých textových segmentov na menšie časti (*chunk-splitting*), ktoré sa však prekrývajú.

Prečítajte si tiež: Úspechy Veroniky Vargovej v streľbe

To znamená, že takmer všetky vety (alebo slová/časti viet, to závisí aké kritérium bolo zvolené pri rozdeľovaní textu) sa po rozdelení objavia vo viacerých častiach (vysvetlené na príklade nižšie). Tieto časti textu sú po rozdelení dostatočne dlhé na to, aby mal druhý komponent k dispozícii dostatok kontextu zľava aj sprava a mohol tak vykonať čo najpresnejšiu predikciu.

Motiváciou autorov k navrhnutie tejto metódy sa stal fakt, že pokiaľ ide o kratšie rečové segmenty, štúdie v oblasti ASR dosahujú výborné výsledky (v poslednej dobe). Avšak pokiaľ ide o dlhšie rečové segmenty, stále existujú nedostatky v štandardizácii výsledného textového výstupu ASR, napríklad doplňovanie interpunkcie a obnova kapitalizácie (veľkých písmen).

2. Metóda Jiangyan Yi a Jianhua Tao

Ďalšia metóda, ktorej autormi sú Jiangyan Yi a Jianhua Tao z Číny používa na predikciu interpunkčných znamienok model založený na “*self-attention*”. V modeli sú použité “word and speech embeddings”, ktoré sú pred-trénované vo frameworku Word2Vec a Speech2Vec. Použitie tohto prístupu umožňuje modelu využívať akýkoľvek druh lexikálnych a akustických dát.

Predošlé modely používali k činnosti akustické príznaky, lexikálne príznaky, alebo ich kombináciu. Využitie akustických príznakov textu sa javí ako efektívnejšie ako využitie samotných lexikálnych príznakov. Avšak v mnohých prípadoch ich nie je možné použiť v ASR, nakoľko ľudia pri hovorení zvyknú používať pauzy medzi slovami na miestach, kde by ich používať nemali. Kombinovanie týchto dvoch typov príznakov (akustické a lexikálne) čiastočne vyrieši tento problém.

Využitie Pytorch a LSTM

LSTM sú špeciálny typ Rekurentných neurónových sietí (RNN), schopné naučiť sa využívať dlhodobé kontextové súvislosti (napr. pri dopĺňaní chýbajúcej interpunkcie alebo veľkých písmen). Táto knižnica sa najčastejšie používa v kombinácii s jazykom Python, avšak je možné ju použiť aj s jazykom C++. Jej najväčšie využitie je v oblasti Spracovania prirodzeného jazyka (NLP).

Prečítajte si tiež: Lukostreľba: história a počiatky

DNN môžu byť trénované pokiaľ máme dostupné obrovské množstvo dát. vektormi s fixným rozmerom. generalizácia dopredných neurónových sietí pre sekvencie. seba. To umožňuje presne ovládať maximálnu dĺžku závislostí, ktoré sa majú modelovať. každým prvkom v sekvencii. strojovému prekladu založený na neurónových sieťach. nedávneho trendu hlbokého reprezentatívneho učenia. preklad s premenlivou dĺžkou.

Inštalácia Pytorch

Na inštaláciu Pytorchu existuje viacero možných spôsobov. Pracovať s ním je možné či už vo Windowse alebo aj v Linuxovom prostredí. Taktiež je možné vybrať si, či bude inštalácia vykonaná pomocou Anacondy alebo PIP. Ja som sa rozhodol pracovať v prostredí Ubuntu (keďže v tomto prostredí som pracoval aj na Bakalárskej práci.

a. Inštalácia Anacondy

Pred inštaláciou Anacondy a Pytorchu je potrebné nainštalovať prostredie Ubuntu 16.04 LTS. Pred samotnou inštaláciou Anacondy je potrebné overiť, či sú všetky balíčky (*packages*) aktualizované. Následne je treba stiahnuť inštalačný súbor Anacondy. Jedným zo spôsobov ako to urobiť, je stiahnutie tohto súboru priamo cez terminál. Avšak pri tomto spôsobe je potrebné uistiť sa o bezpečnosti stránky, ktorá poskytuje inštalačný skript.

Zadanie tohto príkazu vám zabezpečí stiahnutie najnovšej verzie Anacondy. Vrámci inštalácie Anacondy sa nainštaluje aj Python 3.7.4. Po stiahnutí a nainštalovaní Anacondy ju už stačí iba spustiť.

b. Inštalácia Pytorchu

Ďalším krokom je nainštalovanie Pytorchu. Inštalácia je veľmi jednoduchá a rýchla. Taktiež je potrebné zadať “y” po výzve terminálu. Na záver je ešte potrebné overiť, že Pytorch bol skutočne nainštalovaný. Toto overenie je možné vykonať sériou príkazov.

Prečítajte si tiež: Recenzia FIFA 19

Týmto skriptom sme overili funkčnosť Pytorchu a teda môžeme Python REPL opustiť stlačením klávesovej skratky CTRL + D.

Vstup a výstup v LSTM

Vstup a výstup v LSTM v knižnici Pytorch je tvorený 3D tensormi. Následne sa presunieme k vytváraniu LSTM vrstvy, ktoré funguje rovnako ako pri ostatných typoch vrstiev. LSTM vrste totiž budeme priradzovať argumenty.

  • vstupná dimenzia (*input dimension*): definuje veľkosť vstupu v každom časovom kroku, napr.

V ďalšom kroku si vytvoríme fiktívne dáta aby sme videli, ako funguje vstup na vrstve. Keďže sme veľkosť dimenzie definovali ako 5, potrebujeme vytvoriť tensor vo tvare `(1, 1, 5)`. Taktiež potrebujeme inicializovať "cell state" a "hidden state" jednotky LSTM.

Ak máme vstupnú sekvenciu (*seq_len*) napr. 100, veľkosť vzorky (*batch_size*) udáva, v akých dávkach sa bude sekvencia spracovaná a vyhodnotená. Ak máme napr.

Referencie

[1] NGUYEN, B.

[2] YI, J.

[1] I. Sutskever Google, O. Vinyals Google, and Q.

[2] M. P. For, “Natural Language Processing in Action,” _Online_ , vol. 80, no. 1. p.

[3] “Sequence to Sequence Learning with Neural Networks - arXiv Vanity.” [Online].

[4] J. Gehring, M. Auli, D. Grangier, D. Yarats, and Y. N.

[5] K.

[6] R. Pascanu, T. Mikolov, and Y.

[7] K. Cho, B. Van Merriënboer, D. Bahdanau, and Y.

[8] L. Dong, S. Xu, and B.

[9] A.

[10] J. Li, Z. Tu, B. Yang, M. R. Lyu, and T.

tags: #strelba #na #vozidlo #tatra #na #rakuskej