10 příkladů strojového učení v JavaScriptu

Knihovny strojového učení jsou s každým dalším rokem rychlejší a dostupnější a nevykazují žádné známky zpomalení. Zatímco Python byl tradičně jazykem pro strojové učení, v současnosti mohou neuronové sítě běžet v jakémkoli jazyce, včetně JavaScriptu!

Webový ekosystém udělal v poslední době velký pokrok, a přestože JavaScript a Node.js jsou stále méně výkonné než Python a Java, jsou nyní dostatečně výkonné, aby zvládly mnoho problémů se strojovým učením. Webové jazyky mají také tu výhodu, že jsou super přístupné – vše, co potřebujete ke spuštění projektu JavaScript ML, je váš webový prohlížeč.

Většina knihoven strojového učení JavaScriptu je poměrně nová a stále ve vývoji, ale existují a jsou připraveny je vyzkoušet. V tomto článku se podíváme na některé z těchto knihoven a také na řadu skvělých příkladů webových aplikací AI, které vám pomohou začít.

1. Mozek

Brain je knihovna, která vám umožní snadno vytvářet neuronové sítě a následně je trénovat na základě vstupních/výstupních dat. Vzhledem k tomu, že školení zabírá mnoho zdrojů, je preferováno spouštět knihovnu v prostředí Node.js, i když verzi prohlížeče CDN lze také načíst přímo na webovou stránku. Na jejich webových stránkách je malá ukázka, kterou lze naučit rozpoznávat barevný kontrast.

Hluboké hřiště

Vzdělávací webová aplikace, která vám umožní hrát si s neuronovými sítěmi a prozkoumat jejich různé součásti. Má pěkné uživatelské rozhraní, které vám umožňuje ovládat vstupní data, počet neuronů, který algoritmus použít, a různé další metriky, které se odrazí na konečném výsledku. V zákulisí aplikace se lze také hodně naučit – kód je open source a používá vlastní knihovnu strojového učení, která je napsána v TypeScriptu a je dobře zdokumentována.

FlappyLearning

FlappyLearning je JavaScriptový projekt, který na zhruba 800 řádcích neminifikovaného kódu dokáže vytvořit knihovnu strojového učení a implementovat ji do zábavného dema, které se naučí hrát Flappy Bird jako virtuos. Technika umělé inteligence použitá v této knihovně se nazývá Neuroevoluce a používá algoritmy inspirované nervovými systémy v přírodě, dynamicky se učí z úspěchu či neúspěchu každé iterace. Spuštění ukázky je velmi snadné – stačí otevřít index.html v prohlížeči.

Synaptic

Pravděpodobně nejaktivněji udržovaný projekt na tomto seznamu, Synaptic, je knihovna Node.js a prohlížeče, která je nezávislá na architektuře a umožňuje vývojářům budovat jakýkoli typ neuronové sítě, kterou chtějí. Má několik vestavěných architektur, což umožňuje rychle testovat a porovnávat různé algoritmy strojového učení. Obsahuje také dobře napsaný úvod do neuronových sítí, řadu praktických ukázek a mnoho dalších skvělých výukových programů, které demystifikují, jak strojové učení funguje.

Pozemní linky

Land Lines je zajímavý webový experiment Chrome, který najde satelitní snímky Země podobné čmáranicím vytvořeným uživatelem. Aplikace neprovádí žádná volání na server:funguje výhradně v prohlížeči a díky chytrému využití strojového učení a WebGL má skvělý výkon i na mobilních zařízeních. Můžete se podívat na zdrojový kód na GitHubu nebo si přečíst celou případovou studii zde.

ConvNetJS

Přestože již není aktivně udržována, ConvNetJS je jednou z nejpokročilejších knihoven hlubokého učení pro JavaScript. ConvNetJS, který byl původně vyvinut na Stanfordské univerzitě, se stal na GitHubu docela populární, což vedlo k mnoha komunitním funkcím a výukovým programům. Funguje přímo v prohlížeči, podporuje více technik učení a je spíše na nízké úrovni, takže je vhodný pro lidi s většími zkušenostmi s neuronovými sítěmi.

Překladač věcí

Thing Translator je webový experiment, který umožňuje vašemu telefonu rozpoznat skutečné objekty a pojmenovat je v různých jazycích. Aplikace je postavena výhradně na webových technologiích a využívá dvě rozhraní API pro strojové učení od společnosti Google – Cloud Vision pro rozpoznávání obrázků a Translate API pro překlady přirozeného jazyka.

Neurojs

Rámec pro budování systémů umělé inteligence založených na posílení učení. Projekt s otevřeným zdrojovým kódem bohužel nemá řádnou dokumentaci, ale jedno z ukázek, experiment s autořidičem, má skvělý popis různých částí, které tvoří neuronovou síť. Knihovna je v čistém JavaScriptu a vytvořena pomocí moderních nástrojů, jako je webpack a babel.

Strojové učení

Další knihovna, která nám umožňuje nastavovat a trénovat neuronové sítě pouze pomocí JavaScriptu. Je velmi snadná instalace jak v Node.js, tak na straně klienta a má velmi čisté API, které bude pohodlné pro vývojáře všech úrovní dovedností. Knihovna poskytuje mnoho příkladů implementujících oblíbené algoritmy, které vám pomohou pochopit základní principy strojového učení.

DeepForge

DeepForge je uživatelsky přívětivé vývojové prostředí pro práci s hlubokým učením. Umožňuje vám navrhovat neuronové sítě pomocí jednoduchého grafického rozhraní, podporuje trénovací modely na vzdálených počítačích a má vestavěnou správu verzí. Projekt běží v prohlížeči a je založen na Node.js a MongoDB, díky čemuž je proces instalace velmi známý většině webových vývojářů.

Bonus:Strojové učení v Javascriptu

Vynikající série blogových příspěvků od Buraka Kanbera, která se zabývá některými základy strojového učení. Tutoriály jsou dobře napsané, jasné a zaměřené konkrétně na vývojáře JavaScriptu. Skvělý zdroj, pokud chcete strojovému učení porozumět více do hloubky.

Závěr

Přestože ekosystém strojového učení JavaScriptu ještě není plně vyvinutý, doporučujeme použít zdroje v tomto seznamu, abyste udělali své první kroky v ML a získali představu o základních technikách. Jak ukazují experimenty v článku, existuje spousta zábavných věcí, které můžete vytvořit pouze pomocí prohlížeče a některého známého kódu JavaScript.


No