rozpoznávanie rukou písaného textudavinci.fmph.uniba.sk/~skrip4/bak/images/skrip.pdf · kapitola...

15

Upload: others

Post on 04-Feb-2021

0 views

Category:

Documents


0 download

TRANSCRIPT

  • Univerzita Komenského v Bratislave

    Fakulta matematiky, fyziky a informatiky

    Rozpoznávanie rukou písaného textu

    Bakalárska práca

    2017

    Marián Skrip

  • Univerzita Komenského v Bratislave

    Fakulta matematiky, fyziky a informatiky

    Rozpoznávanie rukou písaného textu

    Bakalárska práca

    tudijný program: Aplikovaná Informatika

    tudijný odbor: 2511 Aplikovaná Informatika

    koliace pracovisko: Katedra informatiky

    kolite©: RNDr. Peter Borovanský, PhD.

    Konzultant: Mgr. Peter Gerge©

    Bratislava, 2017

    Marián Skrip

  • Obsah

    1 Existujúce rie²enia 1

    1.1 Mathpix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.1.1 O programe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.1.2 Technológia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    1.1.3 Pouºitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.1.4 Funkcionalita . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.1.5 Test funkcionality . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    1.2 Photomath . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2.1 O programe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2.2 Technológia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.2.3 Pouºitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.2.4 Funkcionalita . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.2.5 Test funkcionality . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    1.3 Neurónová sie´ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    1.3.1 Dopredná neurónová sie´ . . . . . . . . . . . . . . . . . . . . . . 5

    1.3.2 Rekurentná neurónová sie´ . . . . . . . . . . . . . . . . . . . . . 5

    1.3.3 Modulárna neurónová sie´ . . . . . . . . . . . . . . . . . . . . . 5

    1.3.4 Konvolu£ná neurónová sie´ . . . . . . . . . . . . . . . . . . . . . 5

    1.4 Aktiva£ná funkcia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    1.5 Inicializácia váh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    1.5.1 Normálová distribúcia . . . . . . . . . . . . . . . . . . . . . . . 7

    1.5.2 Pravidelná odchýlka s priemerom 0 . . . . . . . . . . . . . . . . 7

    1.5.3 Xavierova inicializácia . . . . . . . . . . . . . . . . . . . . . . . 8

    1.5.4 Pridané 1/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    1.6 Existujúce kniºnice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.6.1 Ca�e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.6.2 Torch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    1.6.3 Theano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    1.6.4 TensorFlow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

    i

  • Kapitola 1

    Existujúce rie²enia

    V sú£asnosti existuje pár funk£ných rie²ení problému, ktorému sa hodlám venova´ v

    tejto práci. Rozpoznávanie rukou písaného matematického textu je populárny smer

    pre technológiu neurónových sietí a strojového u£enia, jednak pre vzdelávacie, resp.

    akademické ú£ely, ale aj pre automatizovanú digitalizáciu rôznych vedeckých publikácií

    a iných prác.

    1.1 Mathpix

    1.1.1 O programe

    Táto multiplatformová mobilná aplikácia [1] (Android, IOS) bola vyvinutá v roku 2016

    tímom 4 ©udí. Aplikácia slúºi na rozpoznávanie rukou písaných matematických výra-

    zov. Aplikácia je zameraná na jednoduchos´ pouºívania, rovnako ako aj na presnos´

    a pochopite©nos´ výsledkov, vzniknutých po preskenovaní ©ubovo©ného matematického

    problému.

    1.1.2 Technológia

    Aplikácia ponúka pouºívate©ovi moºnos´ odfoti´ a následne oreza´ túto fotogra�u ru-

    kou písaného matematického problému. Pod©a mojich zistení túto fotogra�u následne

    aplikácia odo²le na server, ur£ený na rozpoznávanie znakov a prekladanie takýchto

    matematických príkladov do jazyka, ktorý je ©ahko interpretovate©ný pouºívate©ským

    zariadením. K tomuto záveru som do²iel kvôli tomu, ºe existuje vo©ne dostupný skript

    [3], ktorý pristupuje na server API od Mathpix-u a technológiou REST API � �Re-

    presentational state transfer�, teda odosielanie http poºiadaviek na server a £akanie

    na odpove¤, kde odpove¤ je vo formáte JSON s rôznymi atribútmi, ktoré podrobne

    popisujú zadaný matematický výraz. Tento API server je okrem aplikácie Mathpix po-

    uºívajú aj iné podobné implementácie.

    1

  • 1.1. MATHPIX KAPITOLA 1. EXISTUJÚCE RIEENIA

    Snaºil som sa zisti´ viac o technológii, ktorú pouºívajú na segregáciu a identi�káciu

    výrazov. Respektíve popis procesu, ktorým výraz prechádza, ale bohuºia© mi neodpo-

    vedali.

    1.1.3 Pouºitie

    Po odfotení a odoslaní fotogra�e matematického výrazu je pouºívate©ovi okrem repre-

    zentácie výrazu a výsledku zobrazená aj jeho gra�cká reprezentácia vo forme grafu,

    ak je to moºné rovnako je mu zobrazený aj postup, ktorým sa k danému výsledku dá

    dopracova´, £o z tejto aplikácie rozhodne vytvára nástroj vhodný na vzdelávacie ú£ely.

    1.1.4 Funkcionalita

    Aplikácia podporuje funkcionalitu ako napríklad pridanie moºnosti meni´ hodnotu pre-

    mennej pomocou posuvníka, pri£om sa táto zmena zárove¬ zobrazuje napríklad na grafe

    funkcie. Z poh©adu funk£nosti rozpoznávania matematických výrazov, funguje táto ap-

    likácia ve©mi dobre. Aplikácia nemá problém z rozpoznaním samostatných znakov ani

    celých výrazov, ako napríklad rovníc, nerovníc, alebo funkcií.

    1.1.5 Test funkcionality

    Ako test rozpoznávacej £asti aplikácie pouºijem nasledujúce dva postupy:

    • Rukou písaný výraz s jemne prekrývajúcimi sa znakmi (beºný prípad pri písanírukou), £o testuje spôsob, ktorý je pouºitý na separáciu jednotlivých znakov.

    • Výraz s viacnásobným horným alebo dolným indexom (problém umiestnenia zna-kov pri rozde©ovaní a spájaní výrazu, ktorý bol rie²ený v £lánku [4] , kde je na-

    vrhnutý postup na pred-spracovanie (odstránenie ²umu, normalizácia), segmen-

    táciu (vertikálna aj horizontálna), extrakciu príznakov, klasi�káciu, rozpoznanie

    symbolov a rekon²trukciu matematického výrazu. Tento postup teda navrhuje

    rekon²trukciu do matice, ktorá je zloºená z 3 riadkov a n st¨pcov, £o o£ividne

    zabra¬uje rozpoznaniu výrazov, ktoré obsahujú viacnásobné horné alebo dolné

    indexy.

    Tento test sa poda-

    ril úspe²ne av²ak nie na

    prvý krát, znak x`, totiº

    mala aplikácia problém ro-

    zozna´.

    2

  • 1.2. PHOTOMATH KAPITOLA 1. EXISTUJÚCE RIEENIA

    S týmto Mathpix nemal

    ºiadne problémy.

    S týmto testom mala v²ak

    aplikácia dos´ ve©a problé-

    mov, ako je vidie´, nepo-

    darilo sa mi dosiahnu´, aby

    posledný dolný index vo

    výraze bol správne identi-

    �kovaný. Pri viacerých po-

    kusoch takisto aplikácia ne-

    vedela rozozna´ ani ostatné

    dolné indexy.

    V celku aplikácia Mathpix uspela v týchto jednoduchých testoch aj ke¤ som si

    vedomý, ºe to nie je správna forma testovania, ale pomôºe pri porovnávaní s ostatnými

    uº existujúcimi rie²eniami.

    1.2 Photomath

    1.2.1 O programe

    Rovnako ako predo²lá aplikácia, aj Photomath [2] bola vyvinutá v roku 2016 a je tieº

    multiplatformová (Android, IOS) . Slúºi na rozpoznávanie rukou písaných matematic-

    kých výrazov. Na rozdiel od aplikácie Mathpix, neumoº¬uje vykres©ovanie matema-

    tických grafov a objektov, ale viac na rýchle výpo£ty rovníc a nerovníc, ako aj ich

    sústav.

    1.2.2 Technológia

    Nedokázal som sa dopracova´ k tomu, akú technológiu na rozpoznávanie matematic-

    kých výrazov táto aplikácia, av²ak rovnako ako Mathpix, na svoje fungovanie potrebuje

    internetové pripojenie, teda vyuºíva nejakú formu servera. Pri porovnaní výkonu a res-

    ponzivity týchto dvoch aplikácii je na prvý poh©ad zrejmé, ºe Photomath je tá rýchlej-

    ²ia, £o môºe by´ spôsobené rozdielom mnoºstva generovaných údajov, Photomath totiº

    neponúka napríklad gra�ckú reprezentáciu problému.

    3

  • 1.2. PHOTOMATH KAPITOLA 1. EXISTUJÚCE RIEENIA

    1.2.3 Pouºitie

    Aplikácia sa snaºí poskytova´ jednoduché a intuitívne ovládanie. Celý proces rozpoz-

    návania matematického výrazu je priamo£iary: po zapnutí aplikácie sta£í nasmerova´

    zariadenie na rukou napísaný výraz a aplikácia za pár sekúnd zobrazí výsledok, ak k

    nejakému dospeje. Tento rozpoznaný výraz sa dá ¤alej ru£ne upravi´ pomocou kalku-

    la£ky.

    1.2.4 Funkcionalita

    Aplikácia mimo rozpoznávania rukou písaných matematických výrazov ponúka aj ich

    upravovanie v �smart� kalkula£ke a rovnako aj ponúka moºnos´ zobrazi´ postup výpo£tu

    zadaného výrazu, ktorý je ve©mi dobre vysvetlený a popísaný.

    1.2.5 Test funkcionality

    Rovnako ako v predo²lom prípade pouºijem dva body na otestovanie ako �exibilná je

    rozpoznávacia £as´ tejto aplikácie:

    S prelínajúcimi sa znakmi,

    nemala aplikácia ºiadny

    problém.

    Viacnásobný horný index

    aplikácia nezvláda ve©mi

    dobre rozpoznáva´.

    Niekedy ho úplne ignoruje.

    Kombinované indexy vy-

    produkovali viac rôznych

    výsledkov, av²ak ºiadny z

    nich nebol správny.

    Ke¤ºe sa aplikácia jasne sústredí na efektivitu, tak je dopad na funk£nos´ a presnos´

    samotného rozpoznávania pochopite©ný.

    4

  • 1.3. NEURÓNOVÁ SIE KAPITOLA 1. EXISTUJÚCE RIEENIA

    1.3 Neurónová sie´

    Neurónová sie´ v informatike, je výpo£tový model, ktorý má za úlohu simulova´ vlast-

    nosti biologických nervových systémov, ktoré sú pouºívané v strojovom u£ení. Dajú sa

    reprezentova´ ako grafy, ktoré obsahujú vrcholy (neuróny), ktoré majú n vstupov (sy-

    napsií) a jeden výstup (axón). Kaºdy takýto vrchol ma nejakú funkciu, ktorá nejakým

    spôsobom spo£ítava hodnoty, ktoré na vstupoch má, pri£om kaºdému prikladá ur£itú

    váhu. Trénovanie neurónovej siete je teda proces, ktorý vedie k takému vyladeniu spo-

    mínaných váh pre kaºdý vrchol, aby neurónová sie´ dospela k o£akávanému výsledku

    pri danom vstupe. Tento proces umoº¬uje ve©ké mnoºstvo dát, ktoré cez neurónovú

    sie´ v procese trénovania prejde. Práve to je to, £o sa v poslednej dobe zmenilo, to £o

    spôsobilo úspe²nos´ tejto technológie v dne²nej dobe je okrem výpo£tovej sily existujú-

    ceho hardvéru aj mnoºstvo prístupných dát. V sú£asnosti existuje nieko©ko architektúr,

    ktoré sú pouºívané na vytvorenie modelu neurónovej siete.

    1.3.1 Dopredná neurónová sie´

    Tento model neurónovej siete bol vytvorený ako prvý a zárove¬ je to aj najjednoduch²í

    typ architektúry. V takomto modely sa informácia hýbe len jedným smerom a teda do-

    predu. Dáta za£ínajúce na vstupe pokra£ujú do skrytých vrcholov, ak nejaké v modely

    sú, a kon£ia vo výstupe. Nie sú tu ºiadne cykly.

    1.3.2 Rekurentná neurónová sie´

    Toto je presný opak doprednej siete a to v tom, ºe vyuºívajú dvoj smerné ²írenie

    signálov v rámci ur£enej £asovej postupnosti. Signál sa rovnako môºe ²íri´ aj v rámci

    jedného vrcholu (neurónu). Proces trénovania rekurentnej neurónovej siete je iný ako

    proces trénovania iných sietí, je to napríklad RTRL algoritmus [6].

    1.3.3 Modulárna neurónová sie´

    V biologickom výskume bolo zistené, ºe ©udský mozog nefunguje ako jedna obrovská

    neurónová sie´, ale skôr ako súbor viacerých men²ích sietí, ktoré spolu komunikujú. Toto

    zistenie podmienilo vznik modulárnych neurónových sietí, ktoré fungujú podobným

    spôsobom.

    1.3.4 Konvolu£ná neurónová sie´

    Táto architektúra je zaloºená na predpoklade, ºe vstup je stále obrázok. Tento pred-

    poklad umoº¬uje zakódova´ do architektúry ur£ité vlastnosti, ktoré umoº¬ujú efek-

    5

  • 1.4. AKTIVANÁ FUNKCIA KAPITOLA 1. EXISTUJÚCE RIEENIA

    tívnej²iu prácu na implementácii a radikálne zníºia po£et parametrov potrebných na

    vytvorenie a uloºenie konkrétneho modelu neurónovej siete.

    1.4 Aktiva£ná funkcia

    Aktiva£ná funkcia, je funkcia, pod©a ktorej sa rozhoduje, ktorý neurón (perceptrón)

    v neurónovej sieti pri trénovaní sa povaºuje za aktívny, respektíve jeho výsledky sa

    prená²ajú ¤alej do siete, na ¤al²ie vrstvy.

    Výber tejto aktiva£nej funkcie ma výrazný dopad na dobu, ktorá je potrebná na to,

    aby sa neurónovej sieti podarilo dostato£ne dobre nau£i´ rozpoznáva´ to, £o ju u£ia

    dáta jej ponúkané. Medzi známe aktiva£né funkcie patria napríklad:

    • Identita � jednoduchá funkcia identity

    f(x) = x

    • Binárny krok � binárna funkcia

    f(x) =

    0 x < 00 x ≥ 0• TanH � hyperbolická funkcia

    f(x) = tanh x

    • ReLU � Recti�ed linear unit

    f(x) =

    0 x < 0x x ≥ 0• ELU � Exponential linear unit

    f(α, x) =

    α (ex − 1) x ≤ 0x x > 0• a iné

    Pod©a [5] umoº¬uje ELU rýchlej²ie a presnej²ie u£enie neurónových sietí oproti os-

    tatným aktiva£ným funkciám, ktoré priná²ajú nejaké problémy. A to v¤aka tomu, ºe

    ELU umoº¬uje aj záporné hodnoty, £o spôsobuje posun hranice aktivácie bliº²ie k nule.

    Výsledky experimentov ukazujú, ºe ELU výrazne predbieha iné aktiva£né funkcie na

    dátach zameraných na po£íta£ové videnie.

    6

  • 1.5. INICIALIZÁCIA VÁH KAPITOLA 1. EXISTUJÚCE RIEENIA

    1.5 Inicializácia váh

    Správna inicializácia váh v neurónovej sieti môºe predís´ rôznym problémom, napríklad

    nechceným �umieraním� neurónov. V oblasti správnej inicializácie váh je stále aktívny

    výskum [7, 8, 9].

    1.5.1 Normálová distribúcia

    Medzi moºnosti inicializácie patrí napríklad normálová distribúcia, £o je vlastne ini-

    cializácia v²etkých váh na nulu alebo inú kon²tantu. Toto je ale zlý nápad hne¤ z

    nieko©kých dôvodov:

    • Niektoré neuróny v neurónových sie´ach sa zvyknú �zaseknú´� v lokálnych mini-mách [10], preto je dobrý nápad im da´ viac rôznych za£iato£ných hodnôt.

    • al²í problém, ak neuróny za£ínajú na rovnakých váhach, je ºe sa budú pri tré-novaní ubera´ rovnakým alebo podobným smerom, a teda skon£íme s neurónmi,

    ktoré robia rovnakú vec.

    Vyhnutím sa takejto normálovej distribúcii ma za následok skrátenie doby trénova-

    nia neurónovej siete a takisto to aj zvy²uje ²ance k nájdeniu optimálnych výsledných

    hodnôt.

    1.5.2 Pravidelná odchýlka s priemerom 0

    al²ou moºnos´ou pri inicializácii váh neurónovej siete je distribúcia hodnôt s nulovým

    priemerom a pravidelnou odchýlkou σw, ktorá je rovná

    σw = m− 1

    2

    kdem je po£et vstupov, ktoré konkrétny neurón má, tak ako je to popísané v [11][kapitola

    4.6]. Toto pod©a autora funguje, ak sú trénovacie dáta normalizované, teda pre vstup

    vo forme, aky bude v tomto projekte to znamená, ºe sú obrázky rovnakej ve©kosti. A

    zárove¬ je ako aktiva£ná funkcia pouºitý v £lánku spomínaný hyperbolický sigmoid.

    f(x) = 1.7159 tanh2

    3x

    [11][Figure 4b]. Takáto inicializácia zaprí£inuje, ºe uº spomínaný sigmoid bude ak-

    tivováný najmä v jeho lineárnej £asti, £o zaprí£iní rýchlej²ie a presnej²ie trénovanie

    neurónovej siete.

    7

  • 1.5. INICIALIZÁCIA VÁH KAPITOLA 1. EXISTUJÚCE RIEENIA

    1.5.3 Xavierova inicializácia

    V tomto papieri [12] bola navrhnutá inicializácia podobná predchádzajúcej spomínanej.

    Teda inicializácia s pravidelnou distribúciou s priemerom v nule ale odchýlkou σw:

    σw =2

    min +mout

    kde min je po£et vstupov pre konkrétny neurón a mout je po£et výstupov v ¬om, teda

    po£et neurónov, ktoré v ¤al²om kroku berú ako jeden zo svojich vstupov práve výstup

    z tohto.

    Táto inicialiácia partí medzi najpopulárnej²ie v dne²nej dobe, av²ak v mnohých systé-

    moch je implementovaná trochu inᣠa to tak, ºe odchýlka je trochu zjednodu²ená:

    σw =1

    min

    Nie je isté, pre£o sa to rozhodli takto zmeni´, ale moºné dôvody sú napríklad:

    • Vynechaná £as´, teda tá, ktorá sa stará o po£et výstupov v neuróne je tam prezanechávanie signálu pri prechádzaní sie´ou v spätnom smere, pri tzv. backpro-

    pagation [13], £o je pri kaºdom trénovaní vyuºívané. Ale udrºiavanie signálu v

    priamom smere je ove©a dôleºitej²ie ako v spätnom.

    • Z implementa£ného h©adiska môºe by´ zloºite zis´ova´ po£et výstupov pre kaºdýneurón a výpo£tový £as nato potrebný za to nestojí.

    Niekedy je tato Xavierova inicializácia implementovaná, napríklad pomocou kniºnice

    Numpy [17] ako (inicializácia vrstvy):

    1 import numpy as np

    2 W = np . random . randn (m_in , m_out) / np . s q r t (m_in)

    1.5.4 Pridané 1/2

    Jedným z predpokladov pre funk£nos´ Xavierovej inicializácie je aktivácia je lineárna.

    Ale tento predpoklad nie je splnený pri pouºití aktiva£ných funkcií ako ReLU alebo

    PReLU. Preto bola navrhnutá zmena [7], kde by vo výpo£te váh sta£ilo prida´ faktor12, teda by jeho implementácia vyzerala takto (inicializácia vrstvy):

    1 import numpy as np

    2 W = np . random . randn (m_in , m_out) / np . s q r t (m_in/2)

    Táto malá zmena rie²i práve problem s nelineárnou aktiváciou.

    8

  • 1.6. EXISTUJÚCE KNINICE KAPITOLA 1. EXISTUJÚCE RIEENIA

    1.6 Existujúce kniºnice

    V sú£astnosti existuje mnoho vo©ne dostupných, £i uº niº²ích softvérov ur£ených na

    prácu s neurónovými sie´ami a strojovým u£ením. Tu av²ak spomeniem iba pár, s

    ktorými som sa stretol a spomeniem nejaké z ich výhod a nevýhod.

    1.6.1 Ca�e

    Ca�e [14] je ve©mi dobre známi softvér pouºívaný na rozpoznávanie vizuálnych dát.

    Ako API pouºíva Ca�e Python.

    Výhody:

    • vhodný pre dopredné neurónové siete a spracovávanie obrazu

    • trénovanie niektorých modelov je moºné bez písania kódu

    Nevýhody:

    • nevhodný pre rekurentné siete

    • pre nov²ie GPU treba písa´ aj C++/CUDA

    • ºiadna komer£ná podpora

    1.6.2 Torch

    Torch [15] je framework napísaný v Lua, ktorý podporuje aj algoritmy na strojové

    u£enie. Niektoré z jeho verzií sú pouºívané ve©kými spolo£nos´ami ako Facebook alebo

    Twitter.

    Výhody:

    • jednoduchá práca s vrstvami, ktoré majú beºa´ na GPU

    • Lua, ©ahko £itatelný kód

    • obsahuje mnoho pred-trénovaných modelov

    Nevýhody:

    • neúplná dokumentácia

    • bez komer£nej podpory

    9

  • 1.6. EXISTUJÚCE KNINICE KAPITOLA 1. EXISTUJÚCE RIEENIA

    1.6.3 Theano

    Theano [16] je ²iroko vyuºívaný softvér pre strojové u£enie. Jeho API je napísané v

    Python-e. Je jedným s najstar²ích kniºnic v tejto oblasti a je ur£ený predov²etkym na

    výskum. Podporuje viac dimenzionálne polia, tak ako Numpy [17].

    Výhody:

    • Python + Numpy, jednoduché a silné nástroje

    • pouºíva systém výpo£tového grafu

    • existujú vy²²o-úrov¬ové kniºnice, ktoré pouºívaju Theano ako backend

    Nevýhody:

    • menej efektívne pri v䣲ích modeloch

    • chybové hlá²ky môºu by´ niekedy zavádzajúce

    1.6.4 TensorFlow

    Táto opensource kniºnica [18] bola vytvorená spolo£nos´ou Google aby nahradila The-

    ano. Patrí medzi najmlad²ie, ke¤ºe vy²la v novembri roku 2015 a aj napriek tomu sa

    za pár mesiacov stala najpopulárnej²ím nástrojom pouºívaným v oblasti strojového

    u£enia. Podobne ako Theano, aj TensorFlow pouºíva systém výpo£tového grafu, teda

    sa najprv vytvorí graf, ktorý reprezentuje model a následne sa na ¬om vykonávajú

    jednotlivé operácie.

    Výhody:

    • Python + Numpy

    • výpo£tový graf

    • paralelizácia dát a modelu

    • TensorBoard - vizualizácia trénovania a iných operácií nad modelom

    • rýchlej²ia kompilácia oproti Theano-u

    Nevýhody:

    • nie ve©a pred-trénovaných modelov

    • výpo£tový graf je £istý Python, teda pomal²í

    • celkovo pomal²í ako niektoré iné kniºnice

    10

  • Literatúra

    [1] Mathpix, [online] Dostupné na:

    [2] Photomath, [online] Dostupné na:

    [3] Mathpix API ukáºky, [online] Dostupné na:

    [4] NAIK, S., METKEWAR, P., 2015. Recognizing O�ine Handwritten Mathematical

    Expressions (ME) Based on a Predictive Approach of Segmentation Using K-NN

    Classi�cation, International Journal of Technology (2015) 3: 345-354, ISSN 2086-

    9614

    [5] CLEVERT Djork-Arné, UNTERTHINER Thomas, HOCHREITER Sepp: Fast

    and Accurate Deep Network Learning by Exponential Linear Units (ELUs), 2015,

    arXiv:1511.07289

    [6] Williams R.J. and Zipser D., A learning algorithm for continually running fully

    recurrent neural networks, Neural Computation, 1, pp. 270-280, 1989.

    [7] HE et al.: Delving Deep into Recti�ers: Surpassing Human-Level Performance on

    ImageNet Classi�cation, 2015, arXiv:1502.01852v1

    [8] Data-dependent Initializations of Convolutional Neural Networks by Krähenbühl

    et al., 2015, arXiv:1511.06856

    [9] All you need is a good init, Mishkin and Matas, 2015, arXiv:1511.06422

    [10] Atakulreka A., Sutivong D. Avoiding Local Minima in Feedforward Neural Ne-

    tworks by Simultaneous Learning. AI 2007: Advances in Arti�cial Intelligence,

    Lecture Notes in Computer Science 4830, 100�109 (2007).

    [11] Y. LeCun, L. Bottou, G.B. Orr, and K.-R. Müller. E�cient backprop. In G.B.

    Orr and K.-R. Müller, editors, Neural Networks: Tricks of the Trade, pages 9�50.

    Springer, 1998.

    11

  • LITERATÚRA LITERATÚRA

    [12] Glorot, X. and Bengio, Y. Understanding the di�culty of training deep feedforward

    neural networks. In Proc. AISTATS, volume 9, pp. 249�256, 2010.

    [13] Rumelhart, D.E., Hinton, G.E., & Williams, R.J. (1987). Learning internal repre-

    sentations by error propagation. In James L. McClelland & David E. Rumelhart

    (Eds.),Parallel Distributed Processing, 1, 318�362, MIT Press.

    [14] Ca�e, [online] Dostupné na

    [15] Torch, [online] Dostupné na

    [16] Theano, [online] Dostupné na

    [17] Numpy, [online] Dostupné na

    [18] TensorFlow, [online] Dostupné na

    12

    Existujúce riešeniaMathpixO programeTechnológiaPoužitieFunkcionalitaTest funkcionality

    PhotomathO programeTechnológiaPoužitieFunkcionalitaTest funkcionality

    Neurónová sietDopredná neurónová sietRekurentná neurónová sietModulárna neurónová sietKonvolucná neurónová siet

    Aktivacná funkciaInicializácia váhNormálová distribúciaPravidelná odchýlka s priemerom 0Xavierova inicializáciaPridané 1/2

    Existujúce knižniceCaffeTorchTheanoTensorFlow