From 3861a9d8ebeeb6312f3bf21d7d62f77cb542c31a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 20 May 2021 11:27:18 +0000 Subject: [PATCH 01/17] =?UTF-8?q?Aktualizovat=20=E2=80=9Epages/students/20?= =?UTF-8?q?16/patrik=5Fpavlisin/dp21/README.md=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/students/2016/patrik_pavlisin/dp21/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/pages/students/2016/patrik_pavlisin/dp21/README.md b/pages/students/2016/patrik_pavlisin/dp21/README.md index dededfce66..da399d272e 100644 --- a/pages/students/2016/patrik_pavlisin/dp21/README.md +++ b/pages/students/2016/patrik_pavlisin/dp21/README.md @@ -109,7 +109,6 @@ Prvým krokom v tutoriály je príprava dát, na to nám poslúži predpripraven Pre pokračovanie si musíme pripraviť konfiguračný súbor YAML, aby sme určili údaje, ktoré sa použijú: - - -# toy_en_de.yaml - -## Where the samples will be written - save_data: toy-ende/run/example From f6a58da6623737fd45e507d4d5d6fd5fed867708 Mon Sep 17 00:00:00 2001 From: Anton Buday Date: Thu, 27 May 2021 20:50:25 +0000 Subject: [PATCH 02/17] delete-trash vymazat zbytocnu polozku --- pages/04.categories/bp2021/category.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/pages/04.categories/bp2021/category.md b/pages/04.categories/bp2021/category.md index 46c4375662..a84c7c541a 100644 --- a/pages/04.categories/bp2021/category.md +++ b/pages/04.categories/bp2021/category.md @@ -25,8 +25,3 @@ category: bp2021 - natrénovanie modelu QA s databázy SQUAD? - Využitie existujúceho anglického modelu? -5. Využitie najnovších nástrojov v rámci prirodzeného spracovania reči (@Buday) - - - zoznámiť sa s daným frameworkom a aplikovať už natrénované modely - - pokúsiť sa použiť slovenské dáta na spracovanie prirodzeného jazyka v prostredí zvoleného nástroja - From b01f76aa23e568a1cd1189f938f35c00f83a8ab9 Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 4 Jun 2021 08:39:06 +0000 Subject: [PATCH 03/17] Update 'pages/students/2019/michal_stromko/README.md' --- pages/students/2019/michal_stromko/README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pages/students/2019/michal_stromko/README.md b/pages/students/2019/michal_stromko/README.md index 89eb0b3727..55b879ee20 100644 --- a/pages/students/2019/michal_stromko/README.md +++ b/pages/students/2019/michal_stromko/README.md @@ -36,6 +36,13 @@ Zásobník úloh: - Vytvorte index a vyhľadávanie na ZP Wiki. - Napíšte tutoriál o tom ako ste to dokázali. +Stretnutie 4.6. + +- DOhodli sme sa na vytvorenyhľadávacieho systému za použitia crawlera, indexu a webového rozhrania. +- Vytvorený prístup na websucker-pip git, +- Vytvorený prístup na idoc + + Stretnutie 7.5. Stav: From 6f057f16e2e5746dd79f8a8ff3a3f58630fa71bb Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 4 Jun 2021 08:47:05 +0000 Subject: [PATCH 04/17] Update 'pages/students/2019/michal_stromko/README.md' --- pages/students/2019/michal_stromko/README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/pages/students/2019/michal_stromko/README.md b/pages/students/2019/michal_stromko/README.md index 55b879ee20..003ebfad95 100644 --- a/pages/students/2019/michal_stromko/README.md +++ b/pages/students/2019/michal_stromko/README.md @@ -38,9 +38,25 @@ Zásobník úloh: Stretnutie 4.6. -- DOhodli sme sa na vytvorenyhľadávacieho systému za použitia crawlera, indexu a webového rozhrania. +- Dohodli sme sa na vytvorení vyhľadávacieho systému za použitia crawlera, indexu a webového rozhrania. - Vytvorený prístup na websucker-pip git, - Vytvorený prístup na idoc +- Pre vedúceho : vytvoriť prístup na cassandra, dorobiť deployment elasticsearch. + +Úlohy: + +- Zoznámiť sa so zdrojovými kódmi crawlera +- Prečítať si knihu "Learning to Rank for Information Retrieval and Natural Language Processing: Second Edition" +- Nainštalujte si u seba cassandru a vyskúšajte crawler, zistite ako pracuje Cassandra. +- Porozmmýšľajte, ako vytvoriť vyhľadávací index pre text uložený v cassandre. Index môže byť vytvorený pomocou elasticsearch alebo podobného systému. + +Do budúcnosti: + +- Zaindexovať texty +- Vytvoriť webové rozhranie pre vyhľadávací index. + + + Stretnutie 7.5. From 2e311b6480e0bef7314444b6dca419a380f6a06a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sun, 13 Jun 2021 12:17:55 +0000 Subject: [PATCH 05/17] =?UTF-8?q?Aktualizovat=20=E2=80=9Epages/students/20?= =?UTF-8?q?16/patrik=5Fpavlisin/dp21/README.md=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2016/patrik_pavlisin/dp21/README.md | 74 ++++++++++--------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp21/README.md b/pages/students/2016/patrik_pavlisin/dp21/README.md index da399d272e..ebc4c34f48 100644 --- a/pages/students/2016/patrik_pavlisin/dp21/README.md +++ b/pages/students/2016/patrik_pavlisin/dp21/README.md @@ -1,30 +1,16 @@ +**Úvod** -## Google's neural machine translation system - -Neurónový strojový preklad (NMT-Neural Machine Translation) používa end-to-end učenie pre strojový preklad, ktorého cieľom je prekonať slabé stránky konvenčných frázových systémov. 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. Bohužiaľ systémy NMT(Neural machine translation) sú výpočtovo náročné počas trénovania ako aj pri samotnom preklade (je to kvôli ochrane napr. pri vysokom množstve veľkých súborov a veľkých modelov). Niekoľko autorov tiež uviedlo(odkaz na [1]), že systémom NMT chýba robustnosť, najmä keď vstupné vety obsahujú zriedkavé, alebo zastaralé slová. Tieto problémy bránili používaniu NMT v praktických nasadeniach a službách, kde je nevyhnutná presnosť aj rýchlosť. - -Spoločnosť Google preto predstavila GNMT (Google´s Neural Machine Translation) systém , ktorý sa pokúša vyriešiť mnohé z týchto problémov. Tento model sa skladá z hlbokej siete Long Short-Term Memory (LSTM) s 8 kódovacími a 8 dekódovacími vrstvami, ktoré využívajú zvyškové spojenia, ako aj pozorovacie spojenia zo siete dekodéra ku kódovaciemu zariadeniu. Aby sa zlepšila paralelnosť a tým pádom skrátil čas potrebný na trénovanie, tento mechanizmus pozornosti spája spodnú vrstvu dekodéra s hornou vrstvou kódovacieho zariadenia. Na urýchlenie konečnej rýchlosti prekladu používame pri odvodzovacích výpočtoch aritmetiku s nízkou presnosťou. Aby sa vylepšila práca so zriedkavými slovami, slová sa delia na vstup aj výstup na obmedzenú množinu bežných podslovných jednotiek („wordpieces“). Táto metóda poskytuje dobrú rovnováhu medzi flexibilitou modelov oddelených znakom a účinnosťou modelov oddelených slovom, prirodzene zvláda preklady vzácnych slov a v konečnom dôsledku zvyšuje celkovú presnosť systému. - -Štatistický strojový preklad (SMT-Statistical machine translation) je po celé desaťročia dominantnou paradigmou strojového prekladu. Implementáciami SMT sú vo všeobecnosti systémy založené na frázach (PBMT-Phrase-Based machine translation), ktoré prekladajú sekvencie slov alebo frázy, kde sa môžu dĺžky líšiť. Ešte pred príchodom priameho neurónového strojového prekladu sa neurónové siete s určitým úspechom používali ako súčasť systémov SMT. Možno jeden z najpozoruhodnejších pokusov spočíval v použití spoločného jazykového modelu na osvojenie frázových reprezentácií, čo prinieslo pozoruhodné zlepšenie v kombinácii s prekladom založeným na frázach. Tento prístup však vo svojej podstate stále využíva frázové prekladové systémy, a preto dedí ich nedostatky. - -O koncepciu end-to-end učenia pre strojový preklad sa v minulosti pokúšali s obmedzeným úspechom. Po mnohých seminárnych prácach v tejto oblasti sa kvalita prekladu NMT priblížila k úrovni frázových prekladových systémov pre bežné výskumné kritériá. V anglickom až francúzskom jazyku WMT’14 dosiahol tento systém zlepšenie o 0,5 BLEU v porovnaní s najmodernejším frázovým systémom. Odvtedy bolo navrhnutých veľa nových techník na ďalšie vylepšenie NMT ako napríklad použitie mechanizmu pozornosti na riešenie zriedkavých slov, mechanizmu na modelovanie pokrytia prekladu, rôznymi druhmi mechanizmov pozornosti, minimalizáciou strát na úrovni vety. Aj keď presnosť prekladu týchto systémov bola povzbudivá, systematické porovnanie s veľkým rozsahom chýba, frázové prekladové systémy založené na kvalite výroby chýbajú. - - -LSTM sú špeciálny typ Rekurentných neurónových sietí (RNN), ktorý slúži na dosiahnutie dlhodobého kontextu (napr. Pri doplnení chýbajúcej interpunkcie alebo veľkých písmen). Najväčšie využitie LSTM je v oblasti strojového učenia a hĺbkového učenia. - -Vlastnosti LSTM: -- pripravený spracovať nielen jednoduché dáta, ale aj celé sekvenčné dáta (napr. reč alebo video), -- sú vhodné na klasifikáciu, spracovanie a vytváranie predikcií na základe časových údajov -- LSTM boli definované tak, aby si na rozdiel od RNN vedeli pomôcť s problémom, ktorý sa nazýva „Exploding and vanishing gradient problems“. [1] +Neurónový strojový preklad (NMT) je prístup k strojovému prekladu, ktorý využíva umelú neurónovú sieť na predpovedanie pravdepodobnosti postupnosti slov, typicky modelovaním celých viet v jednom integrovanom modeli. NMT nie je drastickým krokom nad rámec toho, čo sa tradične robí v štatistickom strojovom preklade (SMT). Štruktúra modelov je jednoduchšia ako frázové modely. Neexistuje žiadny samostatný jazykový model, prekladový model a model zmeny poradia, ale iba jeden sekvenčný model, ktorý predpovedá jedno slovo po druhom. Táto predikcia sekvencie je však podmienená celou zdrojovou vetou a celou už vyprodukovanou cieľovou sekvenciou. **Neurónová sieť** -Neurónovú sieť tvoria neuróny, ktoré sú medzi sebou poprepájané. Obecne môžeme neuróny poprepájať medzi ľubovoľným počtom neurónov, pričom okrem pôvodných vstupov môžu byť za vstupy brané aj výstupy iných neurónov. Počet neurónov a ich vzájomné poprepájanie v sieti určuje tzv. architektúru (topológiu) neurónovej siete. Neurónová sieť sa v čase vyvíja, preto je potrebné celkovú dynamiku neurónovej siete rozdeliť do troch dynamík a potom uvažovať tri režimy práce siete: organizačná (zmena topológie), aktívna (zmena stavu) a adaptívna (zmena konfigurácie). Jednotlivé dynamiky neurónovej siete sú obvykle zadané počiatočným stavom a matematickou rovnicou, resp. pravidlom, ktoré určuje vývoj príslušnej charakteristiky sieti v čase. +Neurónovú sieť tvoria neuróny, ktoré sú medzi sebou poprepájané. Všeobecne môžeme poprepájať ľubovoľný počet neurónov, pričom okrem pôvodných vstupov môžu byť za vstupy brané aj výstupy iných neurónov. Počet neurónov a ich vzájomné poprepájanie v sieti určuje tzv. architektúru (topológiu) neurónovej siete. Neurónová sieť sa v čase vyvíja, preto je potrebné celkovú dynamiku neurónovej siete rozdeliť do troch dynamík a potom uvažovať tri režimy práce siete: organizačná (zmena topológie), aktívna (zmena stavu) a adaptívna (zmena konfigurácie). Jednotlivé dynamiky neurónovej siete sú obvykle zadané počiatočným stavom a matematickou rovnicou, resp. pravidlom, ktoré určuje vývoj príslušnej charakteristiky sieti v čase. Synaptické váhy patria medzi dôležité časti Neurónovej siete. Tieto váhy ovplyvňujú celú sieť tým, že ovplyvňujú vstupy do neurónov a tým aj ich stavy. Synaptické váhy medzi neurónmi i, j označujeme wi,j. Najdôležitejším momentom pri činnosti Neurónovej siete je práve zmena váh delta wi,j. Vo všeobecnosti ich rozdeľujeme na kladné (excitačné) a záporné (inhibičné). Neurón je základným prvkom Neurónovej siete. Rozdiel medzi umelým a ľudským je v tom, že v súčasnosti je možné vytvoriť oveľa rýchlejší neurón, ako ľudský. Avšak čo sa týka počtu neurónov, ľudský mozog sa skladá z 10 na 11 až 10 na 14 neurónov a každý neurón má 10 na 3 až 10 na 4 neurónových spojení. V súčasnej dobe nie je možné nasimulovať v rámci jednej Neurónovej siete také množstvo neurónov. V tomto ohľade je ľudský mozog podstatne silnejší oproti nasimulovanej Neurónovej siete. [3] + |![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/neuronova%20siet.png)| |:--:| |Obr 1. základné zobrazenie Neurónovej siete| @@ -37,11 +23,11 @@ Neurón je základným prvkom Neurónovej siete. Rozdiel medzi umelým a ľudsk Neurónová sieť by vo všeobecnosti mala mať pravidelnú štruktúru pre ľahší popis a analýzu. Viacvrstvová štruktúra patrí k pomerne dobre preskúmaným štruktúram Neurónovej siete a skladá sa z : -- Vstupná vrstva (Input layer) – na vstup prichádzajú len vzorky z vonkajšieho sveta a výstupy posiela k ďalším neurónom +- Vstupná vrstva (angl. Input layer) – na vstup prichádzajú len vzorky z vonkajšieho sveta a výstupy posiela k ďalším neurónom -- Skrytá vrstva (Hidden layer) – vstupom sú neuróny z ostatných neurónov z vonkajšieho sveta (pomocou prahového prepojenia) a výstupy posiela opäť ďalším neurónom +- Skrytá vrstva (angl. Hidden layer) – vstupom sú neuróny z ostatných neurónov z vonkajšieho sveta (pomocou prahového prepojenia) a výstupy posiela opäť ďalším neurónom -- Výstupná vrstva (Output layer) – prijíma vstupy z iných neurónov a výstupy posiela do vonkajšieho prostredia +- Výstupná vrstva (angl. Output layer) – prijíma vstupy z iných neurónov a výstupy posiela do vonkajšieho prostredia Reprezentatívna vzorka je jedným zo základných pojmov Neurónových sieti. Jedná sa o usporiadanú množinu usporiadaných dvojíc, pričom ku každému vstupu je priradený vyhovujúci výstup. Poznáme dva typy reprezentatívnych vzoriek : @@ -52,14 +38,14 @@ Reprezentatívna vzorka je jedným zo základných pojmov Neurónových sieti. J Topológiu Neurónových sieti rozdeľujeme na : -- Dopredné Neurónové siete (feed-forward neural network), ktoré sa ďalej delia na kontrolované a nekontrolované učenie, v tejto topológií je signál šírený iba jedným smerom. +- Dopredné Neurónové siete (angl. feed-forward neural network), ktoré sa ďalej delia na kontrolované a nekontrolované učenie, v tejto topológií je signál šírený iba jedným smerom. U dopredných sietí neexistujú spojenia medzi neurónmi tej istej vrstvy, ani medzi neurónmi vzdialených vrstiev. |![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/dopredn%c3%bd%20nn.png)| |:--:| |Obr 2. Dopredná Neurónová sieť| -- Rekurentné Neurónové siete (recurrent neural network), ktoré sa ďalej delia na kontrolované a nekontrolované učenie, signál sa šíry obojsmerne (neuróny sa môžu správať ako vstupné aj výstupné). [3] +- Rekurentné Neurónové siete (angl. recurrent neural network), ktoré sa ďalej delia na kontrolované a nekontrolované učenie, signál sa šíry obojsmerne (neuróny sa môžu správať ako vstupné aj výstupné). [3] |![](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/recurrent%20neural%20network.png)| |:--:| @@ -67,18 +53,28 @@ Topológiu Neurónových sieti rozdeľujeme na : **Neurónový preklad** -Neurónový strojový preklad vo všeobecnosti zahŕňa všetky typy strojového prekladu, kde sa na predpovedanie sekvencie čísel používa umelá neurónová sieť. V prípade prekladu je každé slovo vo vstupnej vete zakódované na číslo, ktoré neurónová sieť prepošle do výslednej postupnosti čísel predstavujúcich preloženú cieľovú vetu. Prekladový model následne funguje prostredníctvom zložitého matematického vzorca(reprezentovaného ako neurónová sieť). Tento vzorec prijíma reťazec čísel ako vstupy a výstupy výsledného reťazca čísel. Parametre tejto neurónovej siete sú vytvárané a vylepšované trénovaním siete s miliónmi vetných párov. Každý takýto pár viet tak mierne upravuje a vylepšuje neurónovú sieť, keď prechádza každým vetným párom pomocou algoritmu nazývaným spätné šírenie. [3] +Neurónový strojový preklad vo všeobecnosti zahŕňa všetky typy strojového prekladu, kde sa na predpovedanie postupnosti čísel používa umelá neurónová sieť. V prípade prekladu je každé slovo vo vstupnej vete zakódované na číslo, ktoré neurónová sieť prepošle do výslednej postupnosti čísel predstavujúcich preloženú cieľovú vetu. Prekladový model následne funguje prostredníctvom zložitého matematického vzorca (reprezentovaného ako neurónová sieť). Tento vzorec prijíma reťazec čísel ako vstupy a výstupy výsledného reťazca čísel. Parametre tejto neurónovej siete sú vytvárané a vylepšované trénovaním siete s miliónmi vetných párov. Každý takýto pár viet tak mierne upravuje a vylepšuje neurónovú sieť, keď prechádza každým vetným párom pomocou algoritmu nazývaným spätné šírenie. [3] -## Exploding and vanishing gradient problems +**Systém neurónového strojového prekladu spoločnosti Google** -V strojovom učení sa s problémom miznúceho gradientu stretávame pri trénovaní umelých neurónových sietí metódami učenia založenými na gradiente a spätnou propagáciou. V takýchto metódach dostáva každá z váh neurónovej siete aktualizáciu úmernú čiastočnej derivácii chybovej funkcie vzhľadom na aktuálnu váhu v každej iterácii trénovania. Problém je v tom, že v niektorých prípadoch bude gradient zbytočne malý, čo účinne zabráni tomu, aby váha zmenila svoju hodnotu. V najhoršom prípade to môže úplne zabrániť neurónovej sieti v ďalšom trénovaní. Ako jeden príklad príčiny problému majú tradičné aktivačné funkcie, ako je hyperbolická tangenciálna funkcia, gradienty v rozsahu (0, 1) a spätné šírenie počíta gradienty podľa pravidla reťazca. To má za následok znásobenie n týchto malých čísel na výpočet gradientov prvých vrstiev v sieti n-vrstiev, čo znamená, že gradient (chybový signál) exponenciálne klesá s n, zatiaľ čo prvé vrstvy trénujú veľmi pomaly. +Neurónový strojový preklad (angl. NMT - neural machine translation) používa end-to-end učenie pre strojový preklad, ktorého cieľom je prekonať slabé stránky konvenčných frázových systémov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. Bohužiaľ systémy NMT výpočtovo náročné počas trénovania ako aj pri samotnom preklade (je to kvôli ochrane napr. pri vysokom množstve veľkých súborov a veľkých modelov). Niekoľko autorov tiež uviedlo (odkaz na [1]), že systémom NMT chýba robustnosť, najmä keď vstupné vety obsahujú zriedkavé, alebo zastaralé slová. Tieto problémy bránili používaniu NMT v praktických nasadeniach a službách, kde je nevyhnutná presnosť aj rýchlosť. -Ak sa použijú aktivačné funkcie, ktorých deriváty môžu nadobúdať väčšie hodnoty, riskujeme, že narazíme na súvisiaci problém s explodujúcim gradientom. Problém s explodujúcim gradientom je problém, ktorý sa môže vyskytnúť pri trénovaní umelých neurónových sietí pomocou gradientného klesania spätným šírením. Problém s explodujúcim gradientom je možné vyriešiť prepracovaním sieťového modelu, použitím usmernenej lineárnej aktivácie, využitím sietí s dlhodobou krátkodobou pamäťou (LSTM), orezaním gradientu a regularizáciou váh. Ďalším riešením problému s explodujúcim gradientom je zabrániť tomu, aby sa gradienty zmenili na 0, a to pomocou procesu známeho ako orezávanie gradientov, ktorý kladie na každý gradient vopred definovanú hranicu. Orezávanie prechodov zaisťuje, že prechody budú smerovať rovnakým smerom, ale s kratšími dĺžkami. [2] +Spoločnosť Google preto predstavila GNMT (google´s neural machine translation) systém , ktorý sa pokúša vyriešiť mnohé z týchto problémov. Tento model sa skladá z hlbokej siete Long Short-Term Memory (LSTM) s 8 kódovacími a 8 dekódovacími vrstvami, ktoré využívajú zvyškové spojenia, ako aj pozorovacie spojenia zo siete dekodéra ku kódovaciemu zariadeniu. Aby sa zlepšila paralelnosť a tým pádom skrátil čas potrebný na trénovanie, tento mechanizmus pozornosti spája spodnú vrstvu dekodéra s hornou vrstvou kódovacieho zariadenia. Na urýchlenie konečnej rýchlosti prekladu používame pri odvodzovacích výpočtoch aritmetiku s nízkou presnosťou. Aby sa vylepšila práca so zriedkavými slovami, slová sa delia na vstup aj výstup na obmedzenú množinu bežných podslovných jednotiek („wordpieces“). Táto metóda poskytuje dobrú rovnováhu medzi flexibilitou modelov oddelených znakom a účinnosťou modelov oddelených slovom, prirodzene zvláda preklady zriedkavých slov a v konečnom dôsledku zvyšuje celkovú presnosť systému. + +Štatistický strojový preklad (SMT - statistical machine translation) je po celé desaťročia dominantnou paradigmou strojového prekladu. Implementáciami SMT sú vo všeobecnosti systémy založené na frázach (PBMT - phrase-based machine translation), ktoré prekladajú postupnosti slov alebo frázy, kde sa môžu dĺžky líšiť. Ešte pred príchodom priameho neurónového strojového prekladu sa neurónové siete s určitým úspechom používali ako súčasť systémov SMT. Možno jeden z najpozoruhodnejších pokusov spočíval v použití spoločného jazykového modelu na osvojenie frázových reprezentácií, čo prinieslo pozoruhodné zlepšenie v kombinácii s prekladom založeným na frázach. Tento prístup však vo svojej podstate stále využíva frázové prekladové systémy, a preto dedí ich nedostatky. + +O koncepciu end-to-end učenia pre strojový preklad sa v minulosti pokúšali s obmedzeným úspechom. Po mnohých seminárnych prácach v tejto oblasti sa kvalita prekladu NMT priblížila k úrovni frázových prekladových systémov pre bežné výskumné kritériá. V anglickom a francúzskom jazyku WMT’14 dosiahol tento systém zlepšenie o 0,5 BLEU (je algoritmus na hodnotenie kvality textu) v porovnaní s najmodernejším frázovým systémom. Odvtedy bolo navrhnutých veľa nových techník na ďalšie vylepšenie NMT ako napríklad použitie mechanizmu pozornosti na riešenie zriedkavých slov, mechanizmu na modelovanie pokrytia prekladu, rôznymi druhmi mechanizmov pozornosti, minimalizáciou strát na úrovni vety. + +LSTM sú špeciálny typ Rekurentných neurónových sietí (RNN), ktorý slúži na dosiahnutie dlhodobého kontextu (napr. Pri doplnení chýbajúcej interpunkcie alebo veľkých písmen). Najväčšie využitie LSTM je v oblasti strojového učenia a hlbokého učenia. +Vlastnosti LSTM: +- pripravený spracovať nielen jednoduché dáta, ale aj celé sekvenčné dáta (napr. reč alebo video), +- sú vhodné na klasifikáciu, spracovanie a vytváranie predikcií na základe časových údajov +- LSTM boli definované tak, aby si na rozdiel od RNN vedeli pomôcť s problémom, ktorý sa nazýva „Exploding and vanishing gradient problems“. [1] -## Wordpiece Model +**Wordpiece Model** -Tento prístup je založený výlučne na dátach a je zaručené, že pre každú možnú postupnosť znakov vygeneruje deterministickú segmentáciu. Je to podobné ako metóda použitá pri riešení zriedkavých slov v strojovom preklade neurónov. Na spracovanie ľubovoľných slov najskôr rozdelíme slová na slovné druhy, ktoré sú dané trénovaným modelom slovných spojení. Pred cvičením modelu sú pridané špeciálne symboly hraníc slov, aby bolo možné pôvodnú sekvenciu slov získať zo sekvencie slovného slova bez nejasností. V čase dekódovania model najskôr vytvorí sekvenciu slovných spojení, ktorá sa potom prevedie na zodpovedajúcu sekvenciu slov. +Tento prístup je založený výlučne na dátach a je zaručené, že pre každú možnú postupnosť znakov vygeneruje deterministickú segmentáciu (segmenty používateľov založené na nejakej hypotéze následne sa dáta analyzujú, aby sa zistilo, či sú segmenty zaujímavé a užitočné). Je to podobné ako metóda použitá pri riešení zriedkavých slov v strojovom preklade neurónov. Na spracovanie ľubovoľných slov najskôr rozdelíme slová na slovné druhy, ktoré sú dané trénovaným modelom slovných spojení. Pred cvičením modelu sú pridané špeciálne symboly hraníc slov, aby bolo možné pôvodnú sekvenciu slov získať z postupnosti slovných spojení bez nejasností. V čase dekódovania model najskôr vytvorí sekvenciu slovných spojení, ktorá sa potom prevedie na zodpovedajúcu sekvenciu slov. |![one](https://git.kemt.fei.tuke.sk/KEMT/zpwiki/raw/branch/master/pages/students/2016/patrik_pavlisin/tp20/Bez%20n%c3%a1zvu.png)| @@ -87,21 +83,25 @@ Tento prístup je založený výlučne na dátach a je zaručené, že pre každ Vo vyššie uvedenom príklade je slovo „Jet“ rozdelené na dve slovné spojenia „_J“ a „et“ a slovo „feud“ je rozdelené na dve slovné spojenia „_fe“ a „ud“. Ostatné slová zostávajú ako jednotlivé slová. „_“ Je špeciálny znak pridaný na označenie začiatku slova. - -Wordpiece model sa generuje pomocou prístupu založeného na údajoch, aby sa maximalizovala pravdepodobnosť jazykových modelov cvičných údajov, vzhľadom na vyvíjajúcu sa definíciu slova. Vzhľadom na cvičný korpus a množstvo požadovaných tokenov D je problémom optimalizácie výber wordpieces D tak, aby výsledný korpus bol minimálny v počte wordpieces, ak sú segmentované podľa zvoleného wordpiece modelu. V tejto implementácii používame špeciálny symbol iba na začiatku slov, a nie na oboch koncoch. Počet základných znakov tiež znížime na zvládnuteľný počet v závislosti na údajoch (zhruba 500 pre západné jazyky, viac pre ázijské jazyky). Zistili sme, že použitím celkovej slovnej zásoby medzi 8 000 a 32 000 slovnými jednotkami sa dosahuje dobrá presnosť (skóre BLEU) aj rýchla rýchlosť dekódovania pre dané jazykové páry. +Wordpiece model sa generuje pomocou prístupu založeného na údajoch, aby sa maximalizovala pravdepodobnosť jazykových modelov cvičných údajov, vzhľadom na vyvíjajúcu sa definíciu slova. Vzhľadom na cvičný korpus a množstvo požadovaných tokenov D je problémom optimalizácie výber wordpieces D tak, aby výsledný korpus bol minimálny v počte wordpieces, ak sú segmentované podľa zvoleného wordpiece modelu. V tejto implementácii používame špeciálny symbol iba na začiatku slov, a nie na oboch koncoch. Počet základných znakov tiež znížime na zvládnuteľný počet v závislosti na údajoch (zhruba 500 pre západné jazyky, viac pre ázijské jazyky). Zistili sme, že použitím celkovej slovnej zásoby medzi 8 000 a 32 000 slovnými jednotkami sa dosahuje dobrá presnosť (BLEU skóre) aj rýchlosť dekódovania pre dané jazykové páry. V preklade má často zmysel kopírovať zriedkavé názvy entít alebo čísla priamo zo zdroja do cieľa. Na uľahčenie tohto typu priameho kopírovania vždy používame wordpiece model pre zdrojový aj cieľový jazyk. Použitím tohto prístupu je zaručené, že rovnaký reťazec vo zdrojovej a cieľovej vete bude segmentovaný presne rovnakým spôsobom, čo uľahčí systému naučiť sa kopírovať tieto tokeny. Wordpieces dosahujú rovnováhu medzi flexibilitou znakov a efektívnosťou slov. Zistili sme tiež, že naše modely dosahujú lepšie celkové skóre BLEU pri používaní wordpieces - pravdepodobne kvôli tomu, že naše modely teraz efektívne pracujú v podstate s nekonečnou slovnou zásobou bez toho, aby sa uchýlili iba k znakom. [1] +**Exploding and vanishing gradient problems** + +V strojovom učení sa s problémom miznúceho gradientu stretávame pri trénovaní umelých neurónových sietí metódami učenia založenými na gradiente a spätnou propagáciou. V takýchto metódach dostáva každá z váh neurónovej siete aktualizáciu úmernú čiastočnej derivácii chybovej funkcie vzhľadom na aktuálnu váhu v každej iterácii trénovania. Problém je v tom, že v niektorých prípadoch bude gradient zbytočne malý, čo účinne zabráni tomu, aby váha zmenila svoju hodnotu. V najhoršom prípade to môže úplne zabrániť neurónovej sieti v ďalšom trénovaní. Ako jeden príklad príčiny problému majú tradičné aktivačné funkcie, ako je hyperbolická tangenciálna funkcia, gradienty v rozsahu (0, 1) a spätné šírenie počíta gradienty podľa pravidla reťazca. To má za následok znásobenie n týchto malých čísel na výpočet gradientov prvých vrstiev v sieti n-vrstiev, čo znamená, že gradient (chybový signál) exponenciálne klesá s n, zatiaľ čo prvé vrstvy trénujú veľmi pomaly. +Ak sa použijú aktivačné funkcie, ktorých deriváty môžu nadobúdať väčšie hodnoty, riskujeme, že narazíme na súvisiaci problém s explodujúcim gradientom. Problém s explodujúcim gradientom je problém, ktorý sa môže vyskytnúť pri trénovaní umelých neurónových sietí pomocou gradientného klesania spätným šírením. Problém s explodujúcim gradientom je možné vyriešiť prepracovaním sieťového modelu, použitím usmernenej lineárnej aktivácie, využitím sietí s LSTM, orezaním gradientu a regularizáciou váh. Ďalším riešením problému s explodujúcim gradientom je zabrániť tomu, aby sa gradienty zmenili na 0, a to pomocou procesu známeho ako orezávanie gradientov, ktorý kladie na každý gradient vopred definovanú hranicu. Orezávanie prechodov zaisťuje, že prechody budú smerovať rovnakým smerom, ale s kratšími dĺžkami. [2] + ## OpenNMT-py tutoriál -Pri práci na tomto tutoriály som použil školský server idoc, rovnako ako aj voľne dostupný Linuxový program Ubuntu. - +Pri práci na tomto tutoriáli som použil školský server idoc, rovnako ako aj voľne dostupné linuxové prostredie Ubuntu. Predtým než začneme so samotným tutoriálom je nutné si nainštalovať PyTorch (rámec pre preklad neurónových strojov s otvoreným zdrojom) verziu projektu OpenNMT rovnako ako inštaláciu najnovšej dostupnej verzie knižnice pip. To vykonáme zadaním nasledujúcich príkazov: + - pip install --upgrade pip - pip install OpenNMT-py -Prvým krokom v tutoriály je príprava dát, na to nám poslúži predpripravená vzorka dát v anglicko-nemeckom jazyku voľne dostupná na internete obsahujúca 10 000 tokenizovaných viet (Tokenizovanie je rozdelenie frázy, vety, odseku alebo celého textu na menšie jednotky teda tokeny na menšie jednotky, teda slová alebo výrazy). Údaje pozostávajú z paralelných zdrojových (src) a cieľových (tgt) údajov obsahujúcich jednu vetu na riadok s tokenmi oddelenými medzerou. +Prvým krokom v tutoriáli je príprava dát, na to nám poslúži predpripravená vzorka dát v anglicko-nemeckom jazyku voľne dostupná na internete obsahujúca 10 000 tokenizovaných viet (tokenizovanie je rozdelenie frázy, vety, odseku alebo celého textu na menšie jednotky teda tokeny,). Údaje pozostávajú z paralelných zdrojových (src) a cieľových (tgt) údajov obsahujúcich jednu vetu na riadok s tokenmi oddelenými medzerou. - wget https://s3.amazonaws.com/opennmt-trainingdata/toy-ende.tar.gz - tar xf toy-ende.tar.gz @@ -161,7 +161,7 @@ Posledným krokom je samotný preklad, ktorý vykonáme zadaním nasledujúceho - onmt_translate -model toy-ende/run/model_step_1000.pt -src toy-ende/src-test.txt -output toy-ende/pred_1000.txt -verbose -Výsledkom je model, ktorý môžeme použiť na predpovedanie nových údajov. To prebieha spustením tzv. Beam search. Beam search sa využíva za účelom udržania ľahšieho ovládania vo veľkých systémoch s nedostatkom pamäte na uloženie celého vyhľadávacieho stromu. To vygeneruje predpovede do výstupného súboru toy-ende/pred_1000.txt . V mojom prípade proces prekladu trval na školskom serveri idoc približne 5 hodín zatiaľ čo v Linuxovom prostredí Ubuntu 1 hodinu. V obidvoch prípadoch boli výsledky dosť hrozné, pretože demo súbor údajov bol dosť malý. +Výsledkom je model, ktorý môžeme použiť na predpovedanie nových údajov. To prebieha spustením tzv. Beam search. Beam search sa využíva za účelom udržania ľahšieho ovládania vo veľkých systémoch s nedostatkom pamäte na uloženie celého vyhľadávacieho stromu. To vygeneruje predpovede do výstupného súboru toy-ende/pred_1000.txt . V mojom prípade proces prekladu trval na školskom serveri idoc približne 5 hodín zatiaľ čo v Linuxovom prostredí Ubuntu 1 hodinu. V obidvoch prípadoch boli výsledky podpriemerné, pretože demo súbor údajov bol dosť malý. ## Zoznam použitej literatúry @@ -170,4 +170,6 @@ Výsledkom je model, ktorý môžeme použiť na predpovedanie nových údajov. [2]. PYKES K.: _The Vanishing/Exploding Gradient Problem in Deep Neural Networks._ [online]. [citované 17-05-2020]. -[3]. ŠÍMA J., NERUDA R.: Teoretické otázky neurónových sítí [online]. [1996]. \ No newline at end of file +[3]. ŠÍMA J., NERUDA R.: Teoretické otázky neurónových sítí [online]. [1996]. + +[4]. ZHANG A., LIPTON C. Z., LI M., SMOLA J. A.: Dive into Deep Learning. [online]. [citované 06-11-2020]. \ No newline at end of file From e0ad4de223016468c141fa54edfe09ca408744ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Sun, 13 Jun 2021 12:18:31 +0000 Subject: [PATCH 06/17] =?UTF-8?q?Aktualizovat=20=E2=80=9Epages/students/20?= =?UTF-8?q?16/patrik=5Fpavlisin/dp21/README.md=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/students/2016/patrik_pavlisin/dp21/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp21/README.md b/pages/students/2016/patrik_pavlisin/dp21/README.md index ebc4c34f48..a65c2740f7 100644 --- a/pages/students/2016/patrik_pavlisin/dp21/README.md +++ b/pages/students/2016/patrik_pavlisin/dp21/README.md @@ -1,8 +1,8 @@ -**Úvod** +## Úvod Neurónový strojový preklad (NMT) je prístup k strojovému prekladu, ktorý využíva umelú neurónovú sieť na predpovedanie pravdepodobnosti postupnosti slov, typicky modelovaním celých viet v jednom integrovanom modeli. NMT nie je drastickým krokom nad rámec toho, čo sa tradične robí v štatistickom strojovom preklade (SMT). Štruktúra modelov je jednoduchšia ako frázové modely. Neexistuje žiadny samostatný jazykový model, prekladový model a model zmeny poradia, ale iba jeden sekvenčný model, ktorý predpovedá jedno slovo po druhom. Táto predikcia sekvencie je však podmienená celou zdrojovou vetou a celou už vyprodukovanou cieľovou sekvenciou. -**Neurónová sieť** +## Neurónová sieť Neurónovú sieť tvoria neuróny, ktoré sú medzi sebou poprepájané. Všeobecne môžeme poprepájať ľubovoľný počet neurónov, pričom okrem pôvodných vstupov môžu byť za vstupy brané aj výstupy iných neurónov. Počet neurónov a ich vzájomné poprepájanie v sieti určuje tzv. architektúru (topológiu) neurónovej siete. Neurónová sieť sa v čase vyvíja, preto je potrebné celkovú dynamiku neurónovej siete rozdeliť do troch dynamík a potom uvažovať tri režimy práce siete: organizačná (zmena topológie), aktívna (zmena stavu) a adaptívna (zmena konfigurácie). Jednotlivé dynamiky neurónovej siete sú obvykle zadané počiatočným stavom a matematickou rovnicou, resp. pravidlom, ktoré určuje vývoj príslušnej charakteristiky sieti v čase. From 885c346caeb8adbe8fd9794bad6a6adb15a41b08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 17 Jun 2021 07:02:12 +0000 Subject: [PATCH 07/17] =?UTF-8?q?Aktualizovat=20=E2=80=9Epages/students/20?= =?UTF-8?q?16/patrik=5Fpavlisin/dp21/README.md=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/students/2016/patrik_pavlisin/dp21/README.md | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp21/README.md b/pages/students/2016/patrik_pavlisin/dp21/README.md index a65c2740f7..4081acb603 100644 --- a/pages/students/2016/patrik_pavlisin/dp21/README.md +++ b/pages/students/2016/patrik_pavlisin/dp21/README.md @@ -55,6 +55,11 @@ Topológiu Neurónových sieti rozdeľujeme na : Neurónový strojový preklad vo všeobecnosti zahŕňa všetky typy strojového prekladu, kde sa na predpovedanie postupnosti čísel používa umelá neurónová sieť. V prípade prekladu je každé slovo vo vstupnej vete zakódované na číslo, ktoré neurónová sieť prepošle do výslednej postupnosti čísel predstavujúcich preloženú cieľovú vetu. Prekladový model následne funguje prostredníctvom zložitého matematického vzorca (reprezentovaného ako neurónová sieť). Tento vzorec prijíma reťazec čísel ako vstupy a výstupy výsledného reťazca čísel. Parametre tejto neurónovej siete sú vytvárané a vylepšované trénovaním siete s miliónmi vetných párov. Každý takýto pár viet tak mierne upravuje a vylepšuje neurónovú sieť, keď prechádza každým vetným párom pomocou algoritmu nazývaným spätné šírenie. [3] +**Exploding and vanishing gradient problems** + +V strojovom učení sa s problémom miznúceho gradientu stretávame pri trénovaní umelých neurónových sietí metódami učenia založenými na gradiente a spätnou propagáciou. V takýchto metódach dostáva každá z váh neurónovej siete aktualizáciu úmernú čiastočnej derivácii chybovej funkcie vzhľadom na aktuálnu váhu v každej iterácii trénovania. Problém je v tom, že v niektorých prípadoch bude gradient zbytočne malý, čo účinne zabráni tomu, aby váha zmenila svoju hodnotu. V najhoršom prípade to môže úplne zabrániť neurónovej sieti v ďalšom trénovaní. Ako jeden príklad príčiny problému majú tradičné aktivačné funkcie, ako je hyperbolická tangenciálna funkcia, gradienty v rozsahu (0, 1) a spätné šírenie počíta gradienty podľa pravidla reťazca. To má za následok znásobenie n týchto malých čísel na výpočet gradientov prvých vrstiev v sieti n-vrstiev, čo znamená, že gradient (chybový signál) exponenciálne klesá s n, zatiaľ čo prvé vrstvy trénujú veľmi pomaly. +Ak sa použijú aktivačné funkcie, ktorých deriváty môžu nadobúdať väčšie hodnoty, riskujeme, že narazíme na súvisiaci problém s explodujúcim gradientom. Problém s explodujúcim gradientom je problém, ktorý sa môže vyskytnúť pri trénovaní umelých neurónových sietí pomocou gradientného klesania spätným šírením. Problém s explodujúcim gradientom je možné vyriešiť prepracovaním sieťového modelu, použitím usmernenej lineárnej aktivácie, využitím sietí s LSTM, orezaním gradientu a regularizáciou váh. Ďalším riešením problému s explodujúcim gradientom je zabrániť tomu, aby sa gradienty zmenili na 0, a to pomocou procesu známeho ako orezávanie gradientov, ktorý kladie na každý gradient vopred definovanú hranicu. Orezávanie prechodov zaisťuje, že prechody budú smerovať rovnakým smerom, ale s kratšími dĺžkami. [2] + **Systém neurónového strojového prekladu spoločnosti Google** Neurónový strojový preklad (angl. NMT - neural machine translation) používa end-to-end učenie pre strojový preklad, ktorého cieľom je prekonať slabé stránky konvenčných frázových systémov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. Bohužiaľ systémy NMT výpočtovo náročné počas trénovania ako aj pri samotnom preklade (je to kvôli ochrane napr. pri vysokom množstve veľkých súborov a veľkých modelov). Niekoľko autorov tiež uviedlo (odkaz na [1]), že systémom NMT chýba robustnosť, najmä keď vstupné vety obsahujú zriedkavé, alebo zastaralé slová. Tieto problémy bránili používaniu NMT v praktických nasadeniach a službách, kde je nevyhnutná presnosť aj rýchlosť. @@ -87,17 +92,11 @@ Wordpiece model sa generuje pomocou prístupu založeného na údajoch, aby sa m V preklade má často zmysel kopírovať zriedkavé názvy entít alebo čísla priamo zo zdroja do cieľa. Na uľahčenie tohto typu priameho kopírovania vždy používame wordpiece model pre zdrojový aj cieľový jazyk. Použitím tohto prístupu je zaručené, že rovnaký reťazec vo zdrojovej a cieľovej vete bude segmentovaný presne rovnakým spôsobom, čo uľahčí systému naučiť sa kopírovať tieto tokeny. Wordpieces dosahujú rovnováhu medzi flexibilitou znakov a efektívnosťou slov. Zistili sme tiež, že naše modely dosahujú lepšie celkové skóre BLEU pri používaní wordpieces - pravdepodobne kvôli tomu, že naše modely teraz efektívne pracujú v podstate s nekonečnou slovnou zásobou bez toho, aby sa uchýlili iba k znakom. [1] -**Exploding and vanishing gradient problems** - -V strojovom učení sa s problémom miznúceho gradientu stretávame pri trénovaní umelých neurónových sietí metódami učenia založenými na gradiente a spätnou propagáciou. V takýchto metódach dostáva každá z váh neurónovej siete aktualizáciu úmernú čiastočnej derivácii chybovej funkcie vzhľadom na aktuálnu váhu v každej iterácii trénovania. Problém je v tom, že v niektorých prípadoch bude gradient zbytočne malý, čo účinne zabráni tomu, aby váha zmenila svoju hodnotu. V najhoršom prípade to môže úplne zabrániť neurónovej sieti v ďalšom trénovaní. Ako jeden príklad príčiny problému majú tradičné aktivačné funkcie, ako je hyperbolická tangenciálna funkcia, gradienty v rozsahu (0, 1) a spätné šírenie počíta gradienty podľa pravidla reťazca. To má za následok znásobenie n týchto malých čísel na výpočet gradientov prvých vrstiev v sieti n-vrstiev, čo znamená, že gradient (chybový signál) exponenciálne klesá s n, zatiaľ čo prvé vrstvy trénujú veľmi pomaly. -Ak sa použijú aktivačné funkcie, ktorých deriváty môžu nadobúdať väčšie hodnoty, riskujeme, že narazíme na súvisiaci problém s explodujúcim gradientom. Problém s explodujúcim gradientom je problém, ktorý sa môže vyskytnúť pri trénovaní umelých neurónových sietí pomocou gradientného klesania spätným šírením. Problém s explodujúcim gradientom je možné vyriešiť prepracovaním sieťového modelu, použitím usmernenej lineárnej aktivácie, využitím sietí s LSTM, orezaním gradientu a regularizáciou váh. Ďalším riešením problému s explodujúcim gradientom je zabrániť tomu, aby sa gradienty zmenili na 0, a to pomocou procesu známeho ako orezávanie gradientov, ktorý kladie na každý gradient vopred definovanú hranicu. Orezávanie prechodov zaisťuje, že prechody budú smerovať rovnakým smerom, ale s kratšími dĺžkami. [2] - ## OpenNMT-py tutoriál Pri práci na tomto tutoriáli som použil školský server idoc, rovnako ako aj voľne dostupné linuxové prostredie Ubuntu. Predtým než začneme so samotným tutoriálom je nutné si nainštalovať PyTorch (rámec pre preklad neurónových strojov s otvoreným zdrojom) verziu projektu OpenNMT rovnako ako inštaláciu najnovšej dostupnej verzie knižnice pip. To vykonáme zadaním nasledujúcich príkazov: - - pip install --upgrade pip - pip install OpenNMT-py From c83bf23bb763d2e37dc07cf0a1b02fa1d3c3a3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 17 Jun 2021 07:39:47 +0000 Subject: [PATCH 08/17] =?UTF-8?q?Aktualizovat=20=E2=80=9Epages/students/20?= =?UTF-8?q?16/patrik=5Fpavlisin/dp21/README.md=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/students/2016/patrik_pavlisin/dp21/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pages/students/2016/patrik_pavlisin/dp21/README.md b/pages/students/2016/patrik_pavlisin/dp21/README.md index 4081acb603..ce4822db7e 100644 --- a/pages/students/2016/patrik_pavlisin/dp21/README.md +++ b/pages/students/2016/patrik_pavlisin/dp21/README.md @@ -1,6 +1,6 @@ ## Úvod -Neurónový strojový preklad (NMT) je prístup k strojovému prekladu, ktorý využíva umelú neurónovú sieť na predpovedanie pravdepodobnosti postupnosti slov, typicky modelovaním celých viet v jednom integrovanom modeli. NMT nie je drastickým krokom nad rámec toho, čo sa tradične robí v štatistickom strojovom preklade (SMT). Štruktúra modelov je jednoduchšia ako frázové modely. Neexistuje žiadny samostatný jazykový model, prekladový model a model zmeny poradia, ale iba jeden sekvenčný model, ktorý predpovedá jedno slovo po druhom. Táto predikcia sekvencie je však podmienená celou zdrojovou vetou a celou už vyprodukovanou cieľovou sekvenciou. +Neurónový strojový preklad (NMT) je prístup k strojovému prekladu, ktorý využíva umelú neurónovú sieť na predpovedanie pravdepodobnosti postupnosti slov, typicky modelovaním celých viet v jednom integrovanom modeli. NMT nie je drastickým krokom nad rámec toho, čo sa tradične robí v štatistickom strojovom preklade (SMT). Štruktúra modelov je jednoduchšia ako frázové modely. Neexistuje žiadny samostatný jazykový model, prekladový model a model zmeny poradia, ale iba jeden sekvenčný model, ktorý predpovedá jedno slovo po druhom. Táto predikcia postupnosti je však podmienená celou zdrojovou vetou a celou už vyprodukovanou cieľovou sekvenciou. ## Neurónová sieť From c2c18e4ca203b936d14fcf972dc01c851b4b9eee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Patrik=20Pavli=C5=A1in?= Date: Thu, 17 Jun 2021 07:47:53 +0000 Subject: [PATCH 09/17] =?UTF-8?q?Aktualizovat=20=E2=80=9Epages/students/20?= =?UTF-8?q?16/patrik=5Fpavlisin/dp21/README.md=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/students/2016/patrik_pavlisin/dp21/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/dp21/README.md b/pages/students/2016/patrik_pavlisin/dp21/README.md index ce4822db7e..a81ff27316 100644 --- a/pages/students/2016/patrik_pavlisin/dp21/README.md +++ b/pages/students/2016/patrik_pavlisin/dp21/README.md @@ -51,15 +51,15 @@ Topológiu Neurónových sieti rozdeľujeme na : |:--:| |Obr 3. Rekurentná Neurónová sieť| -**Neurónový preklad** - -Neurónový strojový preklad vo všeobecnosti zahŕňa všetky typy strojového prekladu, kde sa na predpovedanie postupnosti čísel používa umelá neurónová sieť. V prípade prekladu je každé slovo vo vstupnej vete zakódované na číslo, ktoré neurónová sieť prepošle do výslednej postupnosti čísel predstavujúcich preloženú cieľovú vetu. Prekladový model následne funguje prostredníctvom zložitého matematického vzorca (reprezentovaného ako neurónová sieť). Tento vzorec prijíma reťazec čísel ako vstupy a výstupy výsledného reťazca čísel. Parametre tejto neurónovej siete sú vytvárané a vylepšované trénovaním siete s miliónmi vetných párov. Každý takýto pár viet tak mierne upravuje a vylepšuje neurónovú sieť, keď prechádza každým vetným párom pomocou algoritmu nazývaným spätné šírenie. [3] - **Exploding and vanishing gradient problems** V strojovom učení sa s problémom miznúceho gradientu stretávame pri trénovaní umelých neurónových sietí metódami učenia založenými na gradiente a spätnou propagáciou. V takýchto metódach dostáva každá z váh neurónovej siete aktualizáciu úmernú čiastočnej derivácii chybovej funkcie vzhľadom na aktuálnu váhu v každej iterácii trénovania. Problém je v tom, že v niektorých prípadoch bude gradient zbytočne malý, čo účinne zabráni tomu, aby váha zmenila svoju hodnotu. V najhoršom prípade to môže úplne zabrániť neurónovej sieti v ďalšom trénovaní. Ako jeden príklad príčiny problému majú tradičné aktivačné funkcie, ako je hyperbolická tangenciálna funkcia, gradienty v rozsahu (0, 1) a spätné šírenie počíta gradienty podľa pravidla reťazca. To má za následok znásobenie n týchto malých čísel na výpočet gradientov prvých vrstiev v sieti n-vrstiev, čo znamená, že gradient (chybový signál) exponenciálne klesá s n, zatiaľ čo prvé vrstvy trénujú veľmi pomaly. Ak sa použijú aktivačné funkcie, ktorých deriváty môžu nadobúdať väčšie hodnoty, riskujeme, že narazíme na súvisiaci problém s explodujúcim gradientom. Problém s explodujúcim gradientom je problém, ktorý sa môže vyskytnúť pri trénovaní umelých neurónových sietí pomocou gradientného klesania spätným šírením. Problém s explodujúcim gradientom je možné vyriešiť prepracovaním sieťového modelu, použitím usmernenej lineárnej aktivácie, využitím sietí s LSTM, orezaním gradientu a regularizáciou váh. Ďalším riešením problému s explodujúcim gradientom je zabrániť tomu, aby sa gradienty zmenili na 0, a to pomocou procesu známeho ako orezávanie gradientov, ktorý kladie na každý gradient vopred definovanú hranicu. Orezávanie prechodov zaisťuje, že prechody budú smerovať rovnakým smerom, ale s kratšími dĺžkami. [2] +**Neurónový preklad** + +Neurónový strojový preklad vo všeobecnosti zahŕňa všetky typy strojového prekladu, kde sa na predpovedanie postupnosti čísel používa umelá neurónová sieť. V prípade prekladu je každé slovo vo vstupnej vete zakódované na číslo, ktoré neurónová sieť prepošle do výslednej postupnosti čísel predstavujúcich preloženú cieľovú vetu. Prekladový model následne funguje prostredníctvom zložitého matematického vzorca (reprezentovaného ako neurónová sieť). Tento vzorec prijíma reťazec čísel ako vstupy a výstupy výsledného reťazca čísel. Parametre tejto neurónovej siete sú vytvárané a vylepšované trénovaním siete s miliónmi vetných párov. Každý takýto pár viet tak mierne upravuje a vylepšuje neurónovú sieť, keď prechádza každým vetným párom pomocou algoritmu nazývaným spätné šírenie. [3] + **Systém neurónového strojového prekladu spoločnosti Google** Neurónový strojový preklad (angl. NMT - neural machine translation) používa end-to-end učenie pre strojový preklad, ktorého cieľom je prekonať slabé stránky konvenčných frázových systémov. End-to-end učenie je typ Deep Learningu, v ktorom sú všetky parametre trénované spoločne, a nie krok za krokom. Bohužiaľ systémy NMT výpočtovo náročné počas trénovania ako aj pri samotnom preklade (je to kvôli ochrane napr. pri vysokom množstve veľkých súborov a veľkých modelov). Niekoľko autorov tiež uviedlo (odkaz na [1]), že systémom NMT chýba robustnosť, najmä keď vstupné vety obsahujú zriedkavé, alebo zastaralé slová. Tieto problémy bránili používaniu NMT v praktických nasadeniach a službách, kde je nevyhnutná presnosť aj rýchlosť. From dfba197a6b3efb8638af9163de2b22e188991f1d Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 17 Jun 2021 07:57:22 +0000 Subject: [PATCH 10/17] Update 'pages/students/2016/patrik_pavlisin/README.md' --- pages/students/2016/patrik_pavlisin/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/pages/students/2016/patrik_pavlisin/README.md b/pages/students/2016/patrik_pavlisin/README.md index 81289e7fff..66987eef14 100644 --- a/pages/students/2016/patrik_pavlisin/README.md +++ b/pages/students/2016/patrik_pavlisin/README.md @@ -26,6 +26,19 @@ Návrh na nástroje pre strojový preklad: ## Diplomový projekt 1 +Stretnutie 17.6. + +- Splnené podmienky na zápočet. +- Napísaný tutoriál a úvod do NMT + +Úlohy: + +- Skúste zlepšiť presnosť strojového prekladu. Modifikujte setup tak, aby sa výsledky zlepšili. +- Preštudujte si architektúru neuróónovej siete typu Transformer. Prečítajte si blogy a urobte poznámky, +Prečítajte si článok s názvom "Attention is all you need.". Urobte si poznámky čo ste sa dozvedeli. +- Preštudujte si architektúru typu enkóóder-dekóóider. Urobte si poznámky čo ste sa dozvedeli a z akých zdrojov. +Využívajte vyhľadávač Scholar. + Stretnutie 9.4. Stav: From 7854930bd6c4e5d1c075b9d4bcc3abf5b9058c08 Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 17 Jun 2021 07:58:07 +0000 Subject: [PATCH 11/17] Update 'pages/students/2016/patrik_pavlisin/README.md' --- pages/students/2016/patrik_pavlisin/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/students/2016/patrik_pavlisin/README.md b/pages/students/2016/patrik_pavlisin/README.md index 66987eef14..1ac88f7729 100644 --- a/pages/students/2016/patrik_pavlisin/README.md +++ b/pages/students/2016/patrik_pavlisin/README.md @@ -34,9 +34,9 @@ Stretnutie 17.6. Úlohy: - Skúste zlepšiť presnosť strojového prekladu. Modifikujte setup tak, aby sa výsledky zlepšili. -- Preštudujte si architektúru neuróónovej siete typu Transformer. Prečítajte si blogy a urobte poznámky, +- Preštudujte si architektúru neurónovej siete typu Transformer. Prečítajte si blogy a urobte poznámky, Prečítajte si článok s názvom "Attention is all you need.". Urobte si poznámky čo ste sa dozvedeli. -- Preštudujte si architektúru typu enkóóder-dekóóider. Urobte si poznámky čo ste sa dozvedeli a z akých zdrojov. +- Preštudujte si architektúru typu enkóder-dekóider. Urobte si poznámky čo ste sa dozvedeli a z akých zdrojov. Využívajte vyhľadávač Scholar. Stretnutie 9.4. From 0e3e1c4ab7469f080b2117411863a2828e93b1e8 Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 17 Jun 2021 08:29:02 +0000 Subject: [PATCH 12/17] Update 'pages/topics/question/README.md' --- pages/topics/question/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pages/topics/question/README.md b/pages/topics/question/README.md index 8e453aa0af..cd2f0c6db3 100644 --- a/pages/topics/question/README.md +++ b/pages/topics/question/README.md @@ -188,24 +188,24 @@ Week 1: Intro - Read [SQuAD: 100,000+ Questions for Machine Comprehension of Text](https://arxiv.org/abs/1606.05250) - Read [Know What You Don't Know: Unanswerable Questions for SQuAD](https://arxiv.org/abs/1806.03822) -Week 2 and 3: Web Application +Output: -- Analyze sql schema of Prodigy annotations -- Find out who annotated what. -- Make a web application that displays results. -- Extend the application to analyze more Prodigy instances (for both question and answer annotations) -- Improve the process of annotation. +- Short report -Output: Web application (in Node.js or Python) and Dockerfile - -Week 4-7 The model +Week 2-4 The System Select and train a working question answering system Output: - a deployment script with comments for a selected question answering system -- a working training recipe (can use English data), a script with comments or Jupyter Notebook + +Week 5-7 The Model + +Take a working training recipe (can use English data), a script with comments or Jupyter Notebook + +Output: + - a trained model - evaluation of the model (if possible) From 98a17099e864f9d588263fa62374abe8512b047e Mon Sep 17 00:00:00 2001 From: dano Date: Thu, 17 Jun 2021 10:28:11 +0000 Subject: [PATCH 13/17] Update 'pages/students/2019/samuel_horani/README.md' --- pages/students/2019/samuel_horani/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pages/students/2019/samuel_horani/README.md b/pages/students/2019/samuel_horani/README.md index 5dfecaa154..20718938cc 100644 --- a/pages/students/2019/samuel_horani/README.md +++ b/pages/students/2019/samuel_horani/README.md @@ -44,7 +44,12 @@ Stretnutie 6.5.2021 - podmienky na zápočet sú splnené - ale poprosím dokumentáciu konvertovať do Markdown a nahrať na GIT. +Stretnutie 16.6.2021 +Stav: + +- Stránka s UI je vo Flask +- Problém je so stavom spojenia s RASA servrom. Stretnutie 9.4.2021 From 7e86f29f70d02c75258031103d3c5f4759be6e7e Mon Sep 17 00:00:00 2001 From: Daniel Hladek Date: Fri, 25 Jun 2021 09:52:25 +0200 Subject: [PATCH 14/17] zz --- .../students/2019/kristian_sopkovic/README.md | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 pages/students/2019/kristian_sopkovic/README.md diff --git a/pages/students/2019/kristian_sopkovic/README.md b/pages/students/2019/kristian_sopkovic/README.md new file mode 100644 index 0000000000..cd1ea50461 --- /dev/null +++ b/pages/students/2019/kristian_sopkovic/README.md @@ -0,0 +1,30 @@ +--- +title: Kristán Sopkovič +published: true +taxonomy: + category: [bp2022] + tag: [spacy,nlp] + author: Daniel Hladek +--- + +rok začiatku štúdia: 2019 + + +Návrh na názov bakalárkej práce: + + Model Spacy pre spracovanie prirodzeného jazyka v slovenčine + +Ciele bakalárskej práce: + +- Zlepšiť presnosť modelu Spacy pre slovenčinu + +Stretnutie 25.6.2021 + +- Vytvorený prístup do repozitára spacy-skmodel na GIThube + +Úlohy: + +- Skúste spustiť trénovací skript a natrénovať slovenský spacy model +- Pozrite si bakalársku prácu [Martin Wencel](/students/2018/martin_wencel) + + From 9d80468b4d6de32328ce9ef6cdc5a5351fc2e892 Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 25 Jun 2021 07:55:29 +0000 Subject: [PATCH 15/17] Update 'pages/students/2018/martin_wencel/README.md' --- pages/students/2018/martin_wencel/README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pages/students/2018/martin_wencel/README.md b/pages/students/2018/martin_wencel/README.md index 1ca91bbd0a..2fd3bed437 100644 --- a/pages/students/2018/martin_wencel/README.md +++ b/pages/students/2018/martin_wencel/README.md @@ -18,6 +18,9 @@ Konzultačné hodiny sú v piatok 9:20-14:00. Názov: Demonštrácia spracovania slovenského prirodzeného jazyka pomocou knižnice Spacy +[Demonštračná aplikácia pre Spacy](https://spacy.tukekemt.xyz) + + Návrh na zadanie: 1. Vypracujte teoretický úvod do spracovania prirodzeného slovenského jazyka. Vysvetlite, čo to je parsing, morfologická analýza a rozpoznávanie pomenovaných entít a akými metódami sa vykonávajú. From 73b808d46a222de8b0ed1ccaad56912ec8c9b53e Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 25 Jun 2021 08:19:43 +0000 Subject: [PATCH 16/17] Update 'pages/students/2018/martin_wencel/README.md' --- pages/students/2018/martin_wencel/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pages/students/2018/martin_wencel/README.md b/pages/students/2018/martin_wencel/README.md index 2fd3bed437..734a3380d0 100644 --- a/pages/students/2018/martin_wencel/README.md +++ b/pages/students/2018/martin_wencel/README.md @@ -18,8 +18,8 @@ Konzultačné hodiny sú v piatok 9:20-14:00. Názov: Demonštrácia spracovania slovenského prirodzeného jazyka pomocou knižnice Spacy -[Demonštračná aplikácia pre Spacy](https://spacy.tukekemt.xyz) - +- [Demonštračná aplikácia pre Spacy](https://spacy.tukekemt.xyz) +- [Bakalárska práca](https://opac.crzp.sk/?fn=detailBiblioForm&sid=CF9E62B1F4156FE3B22E0B84D7C8) Návrh na zadanie: From 2b72af0ab695cfbff5c0384b4c84e2f61afb0d9f Mon Sep 17 00:00:00 2001 From: dano Date: Fri, 25 Jun 2021 08:21:21 +0000 Subject: [PATCH 17/17] Update 'pages/students/2018/ondrej_megela/README.md' --- pages/students/2018/ondrej_megela/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pages/students/2018/ondrej_megela/README.md b/pages/students/2018/ondrej_megela/README.md index 8fd30c2e0d..830a06a93d 100644 --- a/pages/students/2018/ondrej_megela/README.md +++ b/pages/students/2018/ondrej_megela/README.md @@ -22,6 +22,8 @@ Súvisiace stránky: Názov: Neurónové jazykové modelovanie typu BERT. +[Bakalárska práca](https://opac.crzp.sk/?fn=detailBiblioForm&sid=4A7927334F9373E92B42D999785B) + Návrh na zadanie: 1. Vypracujte prehľad metód jazykového modelovania pomocou neurónových sietí.