Jak vytvořit umělou inteligenci doma. Vytvořte si vlastní umělou inteligenci. Podmínky úspěšné inseminace

Stroje, které reprodukují lidský nebo zvířecí mozek, budou schopné samoučení


Poslední dobou všechno více pozornosti Vědce přitahuje nová oblast výzkumu – afektivní počítání. Role emocí v evoluci přirozené inteligence je v tomto ohledu stále velká, nelze do ní vtělit mnoho jevů spojených s emočním obrazem, s emočním stavem člověka. Vědcům AI aktivně pomáhají kognitivní neurovědci, psychologové a filozofové. Neurovědcům se podařilo prokázat spojení mezi neuromodulátory, které se aktivně podílejí na lidských emocích, a rozhodováním. Ukázalo se, že schopnost člověka rychle se rozhodovat je způsobena tím, že informace v našem mozku jsou emocionálně „zabarvené“ často se rozhodujeme jednoduše pod vlivem toho či onoho emocionálního impulsu. To však v moderních výpočetních systémech vůbec neplatí.

Bez ztělesnění emočních mechanismů v AI přicházíme o schopnost rychle se rozhodovat. V důsledku toho robotické systémy nebo systémy umělá inteligence se za podmínek ukáže jako neživotaschopné skutečný svět. Určité emoční mechanismy přitom částečně ztělesňujeme v technice, ale nazýváme je jinak, například přepínání pozornosti – upřednostňování a přerozdělování výpočetních zdrojů.

Už jen tím, že jdeme ven, děláme obrovské množství rozhodnutí: otočíme hlavu na stranu hlasitý zvuk nebo se neotočit; Měli byste přejít ulici nebo ne, když tam jezdí auta? Tato rozhodnutí se dělají vědomě i nevědomě, procesy jsou emocionálně nabité a zahrnují mnoho mozkových struktur. V důsledku toho emoce (neuromodulátory) silně ovlivňují proces myšlení, jinými slovy, výpočetní funkce neurony.

Bylo zjištěno, že mozek obsahuje takzvané okruhy. Například hlavní thalamo-kortikální okruh vypadá takto: mozková kůra ovlivňuje subkortikální struktury: thalamus, striatum atd., což způsobuje pozitivní nebo negativní emocionální zpětná vazba, což zase ovlivňuje kůru. Jinými slovy, vědomé procesy ovlivňují nevědomé emoční procesy a emoční procesy ovlivňují ty vědomé – jsme neustále v emočním cyklu.

Marvin Minsky (průkopník AI a vítěz Turingovy ceny) poznamenal, že emocionální cykly mohou vést k dlouhodobému „ustrnutí“. Říká jim „chyba“, tedy chyba: můžeme periodicky reprodukovat ten či onen emoční stav. Například, když jsme v depresi: opakovaně se sami sebe ptáme: „Proč se ke mně choval tak špatně? To je naprosto nespravedlivé." Nebo naopak reprodukujeme euforický stav: pokud jste jeli na motorce, pak si vždy pamatujete, jak je pro vás jízda na motorce „cool“, jednoduše proto, že se vám to líbí. A ve skutečnosti už nejezdíte na motorce, ale prostě si to pamatujete a jste v tomto koloběhu.

V práci na integraci emocí do AI stojí za to vyzdvihnout dvě oblasti, které spolu velmi úzce souvisí. Za prvé, určování emocí člověka podle jeho tváře, gest atd. (Affective computing). Jde o oblast, která se ve Spojených státech velmi intenzivně rozvíjí pod vedením Rosalind Picard z MIT Media Lab. V roce 1997 vydala Picard svou knihu Affective Computing, která posloužila jako výchozí bod pro její výzkum. V její laboratoři probíhají zajímavé experimenty: účastníci si před sebe připevňují kamery, v určitých intervalech natáčejí výrazy obličeje a zároveň v průběhu času shromažďují data: vodivost kůže, puls, krevní tlak atd., sdružující emocionální reakce a údaje z tělesných senzorů.

Dalším směrem, kterému se věnujeme i my (laboratoř strojového porozumění ITIS KFU) je Afektivní počítání, to je reprodukce lidských emocí ve výpočetních systémech. Stroje nemají žádné neurony, žádné neuromodulátory, žádnou biochemii, pouze výpočetní procesy. Souvislost mezi výpočetními a mentálními procesy není ani zdaleka lineární. Musíme tvořit dost komplexní teorie, abychom pochopili, z čeho se obecně skládají určité psychologické jevy a jak to můžeme reprodukovat ve výpočetních systémech.


Lidský mozek spotřebuje přibližně 20 wattů jako žárovka. Poslední simulace 1 % mozku, provedená v japonském institutu RIKEN v roce 2013, vyžadovala 250 superpočítačů. To je docela vážný úspěch. Každý superpočítač však měl na palubě 80 000 procesorů, které spotřebovaly mnohem více než 20 wattů. A zároveň je simulace asi tisíckrát pomalejší skutečnou práci mozek. Efektivita zatím zjevně není na straně výpočetních systémů. To naznačuje, že potřebujeme nový počítačová architektura. Na jeho vytvoření je zaměřen projekt BRAIN: Americká vláda ročně vyčlení 300 milionů dolarů na reprodukci lidského mozku ve formě mikroobvodů a software.

K dnešnímu dni byla vytvořena neurobiologicky inspirovaná non-von Neumannova architektura TrueNorth (von Neumann - architektura konvenčních počítačů). Pokládá základy nové cesty ve vývoji výpočetních systémů: obnovování neuronových sítí pomocí softwaru, ale ve formě mikroobvodů, „hardwaru“. Nové čipy simulují až milion neuronů. Specialisté z IBM šli dále: již vytvořili základní deska, ve kterém bylo sestaveno pole 4x4 s celkem 16 miliony neuronů.

Na jednu stranu to není tolik, protože počet neuronů v mozkové kůře člověka je od 19 miliard do 23 miliard a celkový objem je 86 miliard, na druhou stranu to už je zajímavé měřítko. Například v mozkové kůře myši, savce, který má veškerou potřebnou emoční zátěž, jsou pouze 4 miliony neuronů.

Ještě zajímavější je podívat se na historickou perspektivu: v roce 2011 měla stejná IBM čip, který reprodukoval pouze 256 neuronů. Došlo tedy ke skoku o tři řády. Pokud dojde k dalšímu skoku, pak budeme schopni dosáhnout měřítka lidské mozkové kůry. A pak se možná samoučící systémy budou moci jevit jako srovnatelné s lidský mozek.

Co poskytují samoučící se systémy? Neprogramujeme myši, koťátka, neprogramujeme děti. Protože to není nutné. Takový výpočetní systémy(umělí agenti) nebudou potřebovat programování v jeho současném smyslu. Budou muset používat zcela jiné techniky známé učitelům mateřských škol a škol. Tím se dostáváme ke konceptu dětství pro agenty umělé inteligence, který otevírá zásadně nové vyhlídky pro rozvoj AI.

Maxim Talanov
kandidát technické vědy, vedoucí Laboratoře strojového porozumění Kazaňské federální univerzity, přednášející na Innopolis University
forbes.ru

Komentáře: 1

    Sam Harris

    Máme se bát superinteligentní umělé inteligence? Neurovědec a filozof Sam Harris si myslí, že to stojí za to. Podle jeho názoru jsme na pokraji vytvoření superinteligentních strojů, aniž bychom vyřešili mnoho problémů, které mohou nastat při vytváření umělé inteligence, která by se potenciálně mohla chovat k lidem stejně, jako se chovají k mravencům.

    Michail Burcev

    Proč se půl století úsilí nepodařilo vytvořit umělou inteligenci? A jak kyborgové pomáhají pochopit, jak funguje mozek? O tom hovoří Michail Burtsev, kandidát fyzikálních a matematických věd, vedoucí laboratoře nervové systémy A hluboké učení MIPT.

    Vitalij Dunin-Barkovskij

    Jak simulovat mozek? Je lidský mozek srozumitelný? Jak algoritmizovat vědomí? A je možné to zkopírovat na anorganické médium? Odpovědi na tyto otázky pomáhá najít Vitalij Dunin-Barkovskij, doktor fyziky a matematiky, profesor, vedoucí oddělení neuroinformatiky Centra opticko-neurálních technologií Výzkumného ústavu Ruské akademie věd.

    Ivan Ivančej

    Od samého počátku své historie popisovala kognitivní psychologie člověka jako počítačový stroj. Ivan bude mluvit o klíčové body vývoj této cesty lidského výzkumu, k čemu dnes vedla a jak vědci modelují tak záhadné a zdánlivě jedinečné procesy, jako je intuice, předvídavost, vhled a důvěra.

    Gorban A. N.

    Je neuropočítač hračka? Jaké jsou skutečné výhody neuropočítačů? V jakých oblastech jsou výhody nervových systémů nejzřetelnější? Je redundance dobrá nebo špatná? Jaké úkoly může dělat pouze neuropočítač?

    Jevgenij Putin

    Evgeniy Putin, postgraduální student katedry " Počítačové technologie» Univerzita ITMO. V rámci své disertační práce Evgeniy zkoumá problémy integrace konceptu výběru vlastností do matematického aparátu umělých neuronových sítí. Evgeniy bude mluvit o tom, jak fungují neuronové sítě, co mohou dělat nyní, čeho budou schopni v blízké budoucnosti a zda čekat na příchod Skynetu.

    Poprvé bylo dosaženo měřítka odpovídající lidskému mozku – 530 miliard neuronů a 137 bilionů synapsí. Simulace běžela 1542krát pomaleji než v reálném čase. Využilo všech 1 572 864 jader a jeden a půl petabajtu paměti.

    Architektura von Neumanna má jednu známou nevýhodu, a to, že jak data, tak instrukční programy, které popisují, co je třeba udělat s daty, jsou umístěny ve stejné paměti. A procesor buď sbírá data z paměti, nebo s nimi manipuluje podle příkazu. V rámci takového schématu není možné současně načítat nová data a zpracovávat je. Kvůli tomuhle moderní počítače Bez ohledu na to, jak jsou rychlé, je obtížné provádět některé úkoly, například ty, které se týkají rozpoznávání obrazu. Ve snaze posunout se za von Neumannovu architekturu se odborníci na „elektronické mozky“ obrátili na skutečné mozky.

    Sergej Markov

    Na přednášce probereme druhé jaro umělé inteligence ve faktech a číslech, klíčová díla v oblasti umělé inteligence a strojového učení v roce 2017. Pojďme se bavit o rozpoznávání obrazu, řeči, zpracování přirozeného jazyka a dalších oblastech výzkumu; Pojďme si probrat nové modely a vybavení pro rok 2017. Budeme také mluvit o aplikaci AI a strojového učení v podnikání, medicíně a vědě a také diskutovat o tom, co očekáváme od umělé inteligence a strojového učení v roce 2018.

    Sergej Markov

    účet v Hamburku

    V roce 1950 anglický vědec Alan Turing napsal ve svém článku „ Počítače and Mind" položil otázku: „Může stroj porozumět člověku?" Tak se zrodil slavný Turingův test, ve kterém se počítač snažil oklamat lidi. Jak ale počítač člověku rozumí a co ještě nedokáže pochopit Rozhodli jsme se na to zeptat specialisty podle hamburského účtu na strojové učení, ředitel informační technologie Společnost "Activebusinesscollection" Sergeje Markova.

Co potřebujete vědět a kde začít.

Tento týden jste si mohli přečíst mimořádně motivující případ z

Ale skutečně to byla touha vytvořit dokonalou umělou inteligenci, ať už herní model nebo mobilní program, která mnohé z nás posunula na dráhu programátora. Problém je, že za tunami vzdělávacích materiálů a tvrdou realitou zákazníků právě tuto touhu vystřídala prostá touha po seberozvoji. Pro ty, kteří si ještě nezačali plnit svůj dětský sen, je zde krátký návod na vytvoření skutečné umělé inteligence.

Fáze 1. Zklamání

Když mluvíme o vytváření byť jednoduchých robotů, oči se nám zalesknou a hlavou nám problesknou stovky nápadů, co by měl umět. Když však dojde na implementaci, ukazuje se, že klíčem k odhalení skutečného modelu chování je... matematika. Abychom byli trochu konkrétnější, zde je seznam jeho sekcí, které je potřeba nastudovat alespoň ve formátu vysokoškolského vzdělání:

    Lineární algebra;

  • Teorie grafů;

    Teorie pravděpodobnosti a matematická statistika.

Toto je vědecký odrazový můstek, na kterém bude postaveno vaše další programování. Bez znalosti a pochopení této teorie se všechny nápady díky interakci s člověkem rychle zhroutí, protože umělá inteligence vlastně není nic jiného než sada vzorců.

Fáze 2. Přijetí

Když aroganci trochu srazí studentská literatura, můžete se začít učit jazyky. Zatím se nevyplatí spěchat na LISP nebo jiné, nejprve se musíte naučit pracovat s proměnnými a stavy s jednou hodnotou. Je perfektní jak pro rychlé učení, tak pro další rozvoj, ale obecně můžete vzít za základ jakýkoli jazyk, který má příslušné knihovny.

Fáze 3. Vývoj

Nyní přejděme přímo k teorii AI. Lze je zhruba rozdělit do 3 kategorií:

    Slabá AI – boti, které vídáme v počítačových hrách, nebo prostí asistenti jako Siri. Buď plní vysoce specializované úkoly, nebo jsou jejich nevýznamným komplexem a jakákoli nepředvídatelnost interakce je mate.

    Silná AI jsou stroje, jejichž inteligence je srovnatelná s lidským mozkem. V současné době neexistují žádní skuteční zástupci této třídy, ale počítače jako Watson jsou k dosažení tohoto cíle velmi blízko.

    Dokonalá umělá inteligence je budoucnost, strojový mozek, který překoná naše schopnosti. Stephen Hawking, Elon Musk a filmová franšíza Terminátor varují právě před nebezpečím takového vývoje.

Samozřejmě byste měli začít s nejjednoduššími roboty. Chcete-li to provést, vzpomeňte si na starou dobrou hru „Tic Tac Toe“ při použití pole 3x3 a zkuste sami přijít na základní algoritmy akce: pravděpodobnost vítězství s bezchybnými akcemi, nejúspěšnější místa na hřišti umístění figurky, nutnost zredukovat hru na remízu a podobně.

Jak jste pochopili již z názvů, jedná se o API, která vám umožní vytvořit nějaké zdání seriózní AI bez plýtvání časem.

Fáze 5. Práce

Nyní, když máte jasnou představu o tom, jak vytvořit AI a co použít, je čas posunout své znalosti na další úroveň. Za prvé to bude vyžadovat studium disciplíny zvané „strojové učení“. Zadruhé se musíte naučit pracovat s příslušnými knihovnami zvoleného programovacího jazyka. Pro Python, na který se díváme, jsou to Scikit-learn, NLTK, SciPy, PyBrain a Nump. Za třetí, ve vývoji neexistuje cesta kolem

Po tisíce let se člověk snaží pochopit, jak myslí. V oblasti umělé inteligence (AI) se řeší ještě důležitější úkol: specialisté v této oblasti se snaží nejen pochopit podstatu inteligence, ale také vytvořit inteligentní entity.

V současné době pokrývá téma umělé inteligence obrovskou škálu vědeckých oblastí, počínaje takovými problémy generál, jako je učení a vnímání, k tak specializovaným úkolům, jako je hraní šachů, dokazování matematických teorémů, psaní poezie a diagnostikování nemocí. V umělé inteligenci jsou intelektuální úkoly systematizovány a automatizovány, a proto se tato oblast týká jakékoli oblasti lidské intelektuální činnosti. V tomto smyslu je umělá inteligence skutečně univerzálním vědním oborem.

Systémy, které myslí jako lidé Systémy, které myslí racionálně
Vzrušující nový směr práce na vytváření počítačů, které dokážou myslet, ...strojů, které mají inteligenci, v plné míře a doslova toto slovo Zkoumání mentálních schopností pomocí výpočetních modelů
Automatizace jednání, které si spojujeme s lidským myšlením, tzn. činnosti, jako je rozhodování, řešení problémů, učení Studium druhů výpočtů, které umožňují cítění, uvažování a jednání
Umění vytvářet stroje, které vykonávají funkce vyžadující inteligenci, když je vykonávají lidé Výpočetní inteligence je věda o navrhování inteligentních agentů
Věda o výuce počítačů dělat věci, ve kterých jsou lidé v současnosti lepší. Umělá inteligence je věda, která se zabývá studiem inteligentního chování artefaktů

Zrovna nedávno to bylo něco ze sci-fi. Nyní je to docela reálné a dnes se naučíme, jak vytvořit jednoduchou umělou inteligenci pomocí skvělé online služby.

Mluvím o webu http://iii.ru (Ay-ya-yay.ru)
S pomocí tohoto zdroje vytvoříme tzv. „infa“.
Co je to za zvíře, Inf? Inf je malá postavička (zvíře nebo člověk nebo zázrak Yudo), která dokáže mluvit s člověkem na internetu (ano, ano, dá se tomu také říkat chatbot). Toto zvíře může být zasláno příteli domovskou stránku, šup s tím do podpisu na fóru, obecně všude tam, kde touží vaše fantazie!
Zpočátku budou vaše informace samozřejmě trochu „hloupé“, ale můžeme to napravit tím, že je naučíme!

Pojďme se blíže podívat, jak se to všechno dělá:

Při vstupu na stránky se ocitneme v tzv. garáž“, kde můžeme chatovat s několika hotovými informacemi a začít vytvářet vlastní!

Chcete-li začít vytvářet vlastní postavu, musíte se zaregistrovat. Chcete-li to provést, na obrazovce garáže klikněte na tlačítko „Chci informace“ a po vyplnění několika řádků o sobě a přečtení licenční smlouva, klikněte na tlačítko „Registrovat“.

Nyní se dostáváme k obrazovce vytváření postavy.

Musíte si vybrat postavu „muž“, „zvíře“ nebo nějaký jiný zázrak

Přizpůsobíme vzhled – ústa, nos, oči a další doplňky. Pokud se vám to v budoucnu nebude líbit, nezoufejte, vše se dá napravit.

Nyní se podíváme na to nejzajímavější – trénink postavy. Klikněte na záložku „Trénink“. Otevře se seznam možných metod:

Dotazník - vyplňte údaje o svých osobních údajích, změňte jeho jméno, chcete-li atd.

Reakce na události – můžete si vybrat, co informace řekne, pokud na ni například kliknete myší nebo s ní nebudete dlouho mluvit.

  • Konzultace

Přemýšleli jste někdy o tom, jak snadné je napsat vlastní umělou inteligenci, která bude ve hře rozhodovat? Ale je to opravdu jednoduché. Zpočátku ho nechte dělat náhodná rozhodnutí, ale později ho můžete vzdělávat, naučit ho analyzovat situaci a pak se začne rozhodovat vědomě. V tomto článku vám řeknu, jak jsem napsal svého bota, a také ukážu, jak můžete napsat svůj vlastní za pár minut. Náš počítač si zahraje klon hry Tron, respektive část, kde je potřeba porazit nepřátele na motorce.

Pod řezem je 10 megabajtů souborů gif.

O hře

Ve hře ovládáte motorku, která za sebou nechává světelnou stěnu. Hrací pole je omezené a vaši soupeři mají stejné motocykly. Motorka se neustále pohybuje, můžete pouze zatáčet. Volné místo pole končí a vyhýbání se překážkám se stává obtížnějším. Vyhrává ten, kdo vydrží nejdéle. Vytvořil jsem klon herního prohlížeče pro více hráčů pomocí node.js a socket.io. Ovládání dvěma tlačítky - odbočka doleva a doprava.

Rozhraní robota

Jelikož používám socket.io, zpracoval jsem hráče na serveru formou práce na poli speciálních objektů socket, které socket.io vytváří. Z těchto objektů jsem použil pouze funkce id, emit a broadcast. To znamená, že pro hru samotnou je bezbolestné implementovat rozhraní soketu a použít ho při zpracování, jako by hrál jiný uživatel. Třídu jsem pojmenoval BotSocket.
Metoda emitovat (událost, data) Robot při přijímání příchozích dat ze serveru provádí téměř stejné akce jako klient, konkrétně:
  1. Ukládá data o všech hrajících motorkách při jejich přidávání
  2. Uloží odkaz na váš motocykl, když jej přidáte
  3. Aktualizuje data o všech hrajících motocyklech
  4. Resetuje stavy při restartu hry
Chcete-li odeslat ovládací příkazy pro váš motocykl na server, musíte uložit odkaz na herní objekt, který tyto příkazy zpracovává z běžní uživatelé. Třídní metoda Hra Mám jméno onControl(zásuvka, data) tak jsem přidal metodu BotSocket
BotSocket.prototype.control = function(data) ( this.game.onControl(this, data); );
Po obdržení příkazu ze serveru k aktualizaci dat motocyklů (jsou přesunuty), zkontroluji, zda mám motocykl vůbec pod kontrolou, zda se ještě nesrazil a zda byl přemístěn a popř. úspěšný, volám hlavní metodu, aby AI fungovala - aktualizovat().
Rozhraní je připraveno, nyní můžete přidat samotnou AI.

Umělá inteligence

Bez ohledu na to, jak hlasitě to může znít, ve hrách se hráči, za které počítač hraje, obvykle nazývají AI neboli boti. Objekt BotSocket má potřebná herní data k rozhodnutí. Mohou existovat pouze tři možná řešení:
  1. Nedá se nic dělat, jděte rovně
  2. Otočte se doprava
  3. Odbočte doleva

Když jsem se rozhodl napsat bota, netušil jsem, jak by se to dalo udělat. Zkoušel jsem velmi jednoduchý kód:
BotSocket.prototype.update = function() ( var r = Math.random(); if (r > 0,95) ( this.control(("button": "right")); ) else if (r >
Chování bylo něco takového:

Podíval jsem se na něj a pocítil velkou radost, zdálo se mi, že je nyní nezávislý. Vypadalo to, že on sám se snažil přežít a bojoval tam jako živý. Dojemný pohled.

Ale chtěla jsem, aby žil co nejvíc. Začal jsem hledat informace o tom, jak se AI píše pro hry. Našel jsem články, které popisovaly různé přístupy. Ale hledal jsem něco extrémně jednoduchého. Na Habrém jsem v jednom z článků o botovi pro hru jako Zuma našel zmínku o vlnové metodě. Algoritmus Aka Lee. Přišlo mi to velmi jednoduché a vhodné. Jedná se o algoritmus pro nalezení nejkratší cesty z jednoho bodu do druhého podél pole, kde buňky mohou být volné nebo obsazené. Pointa je jednoduchá. Začneme v cílovém bodě, přiřadíme mu hodnotu 1 a všechny sousední volné buňky označíme číslem o jedna vyšším. Poté vezmeme všechny sousední volné označené a opět je označíme ještě jednou. Takže expandujeme po celém poli, dokud nedorazíme do cíle. A cestu budujeme hledáním od sousedních tak, že číslo snižujeme, dokud nedosáhneme 1. Díval jsem se na algoritmy pro hledání nejkratších cest v grafech, ale tento se mi zdál nejvhodnější.

Přenesl jsem algoritmus kopírováním a vkládáním ze stránky na wiki, dal jsem mu název BotSocket.prototype.algorithmLee. Pro pole jsem nejprve vytvořil objekt bitevní pole, ve kterém jsem při každé aktualizaci označil obsazené body s jejich souřadnicemi. A v Leeově algoritmu zredukoval toto pole na stejné, ale s krokem 1.

Bylo potřeba nějak určit cíl cesty. Rozhodl jsem se to vybrat náhodně v určitých intervalech. Vytvořil jsem metodu pro hledání náhodného volného bodu na poli:
BotSocket.prototype.getDesiredPoint = function() ( var point = ; var H = Object.keys(this.battleground).length - 1; var W = Object.keys(this.battleground).length - 1; var x, y , i, j; var nalezen = false; * this.moveStepSize if (this.battleground[x][y] === this.BG_EMPTY) ( found = true; ) iter++ ) while (!found && iter;< 100); point = ; return point; };

Nyní bych mohl přepsat aktualizaci:
BotSocket.prototype.update = function() ( if (!this.desiredPoint || this.movements % this.updDestinationInterval === 0) ( this.desiredPoint = this.getDesiredPoint(); ) if (!this.desiredPoint) ( return; ) var aktuální bod = ; .getDesiredPoint();
Zde zmíněná metoda moveToPoint, která se otáčí podle potřeby, aby dosáhla prvního bodu nejkratší cesty daného aktuálního směru.

Později jsem se rozhodl udělat roboty agresivnějšími a místo náhodného požadovaného bodu jsem hledal bod před nepřáteli, abych jim zablokoval cestu. Nebo aby si tak dlouho nehráli sami se sebou.

Bot na straně klienta

Rozhodl jsem se, že zkusím přenést robota na klientská část. Protože je projekt v node.js, mohu použít napsaný kód pro bota i na straně klienta. Abych to udělal, rozšířil jsem BotSocket o samostatný klientský soubor, který přepsal metody vysílat() A řízení() správně komunikovat se serverem bez odkazu na hru.
Lokálně vše fungovalo dobře, ale po nasazení do vzdálený server byl tam divný obrázek:

Po dlouhém přemýšlení jsem si uvědomil, že to bylo zpoždění. Bot poslal příkaz k otočení, ale ten dorazil po aktualizaci své pozice na serveru, a proto se často nemohl dostat na přímou cestu k požadovanému bodu. Ale chtěl jsem normálního robota na straně klienta. Proto jsem se rozhodl se zpožděním počítat. Abych to udělal, znovu jsem napsal rozšíření BotSocket. Článek je dlouhý, proto popíšu hlavní řešení. Než místo toho zavolám Lieův algoritmus aktuální bod Předpokládanou polohu jsem nahradil s ohledem aktuální situaci a směr, stejně jako multiplikátor zpoždění. Násobitel latence je počet, kolikrát latence vynásobila rychlost aktualizace pozice serveru. Potřeboval jsem také předpovědět budoucí bod metody moveToPoint().

Předpověď fungovala, pokud jste hráli sami. Pokud ale byli další účastníci, bot to nevzal v úvahu a nasměroval se tam, kde po nějaké době již prošel jiný hráč. Abych tento problém vyřešil, upravil jsem metodu, která označuje buňky pole jako obsazené. Začal jsem je označovat za zaneprázdněné v určitém okruhu pohybu motocyklu. Poloměr závisí na multiplikátoru zpoždění.
Dříve jsem bota vybavil ladicími funkcemi, které nakreslily požadovaný bod a obsadily body na hřišti. Moje verze klientského robota založená na latenci se nyní pohybuje takto:


Moje maličkost, zbytek jsou servery.

Nejdůležitější je zkusit si vyrobit robota sami

Hlavním cílem tohoto článku je vzbudit zájem o psaní robota. Udělal jsem hodně, abych překonal tvou lenost. K tomu jsem přidal možnost načíst si vlastní skript pomocí bota, který rozšíří moji základní třídu klientů. Přejděte do projektu a klikněte na text „Zobrazit možnosti pro místnost s své vlastní bot“ a poté na tlačítko „Vytvořit místnost pro testování vlastního robota“. Vytvoří se místnost, kde můžete snadno používat roboty, ve výchozím nastavení bude váš robot robot bez latence. Nyní je čas na váš kód.
Dva jednoduché možnosti pro použití kódu v akci použijte libovolný:
  1. Nahrajte soubor js na jakýkoli server, který bude přístupný vašemu prohlížeči. Vložte adresu URL svého skriptu ve hře vedle tlačítka „Načíst skript AI“. Po kliknutí na toto tlačítko bude vytvořen a vyplněn nový objekt botSocket, jehož metoda bude volána start().
  2. Použijte konzoli prohlížeče (Firebug – F12, Firefox – Ctrl+Shift+K, Chrome – Ctrl+Shift+J, ostatní – ).

Pokud jste se rozhodli pro vstupní metodu vašeho kódu, zkuste přepsat metody třídy BotSocket. Pro začátek nejjednodušší věc:
BotSocket.prototype.update = function() ( var r = Math.random(); if (r > 0,95) ( this.control(("tlačítko": "vpravo")); ) else if (r > 0,90) ( this.control(("tlačítko": "vlevo"));

Poté znovu vytvořte objekt botSocket zadáním
botSocket = null;
V tomto případě se kód na stránce sám znovu vytvoří a vyplní objekt. Tím se změní standardní chování robota na náhodné. A pak už je to na vaší fantazii nebo hlubokých znalostech.
Můžete také připojit skript mého vylepšeného bota, s přihlédnutím ke zpoždění, vložením https://raw.github.com/rnixik/tronode-js/master/public/javascripts/MyBotSocketClient.js do adresy URL pro bota

Závěr

Řekl jsem, jak jsem vytvořil svou AI na serveru, jak jsem ji přenesl na klienta a jak jsem se ji snažil naučit hrát s ohledem na vysoký ping. Opravdu doufám, že jsem vás dokázal zaujmout a pokusili jste se napsat svou vlastní AI, pokud jste to nikdy předtím neudělali. Samozřejmě ve hrách vysoká třída používají se úplně jiné přístupy, ale vyplatí se začít v malém.

Pokud nemáte node.js po ruce, můžete použít aplikace, které jsem nasadil:

1) tronode.livelevel.net - nejvíce levné VPS na DigitalOcean,
2) tronode-js.herokuapp.com - bezplatná virtuální jednotka na Heroku.

První s největší pravděpodobností nemusí být první, kdo se vyrovná se zátěží, a druhý na některých počítačích resetuje transport socket.io na xhr-polling, kvůli tomu hra hodně pokulhává.
Pokud se chcete dozvědět více o tom, jak jsem naprogramoval herní logiku, můžete si přečíst. Nechybí ani informace o nasazení node.js a něco málo o grafické části.

Pokud nemáte účet na Habré, zeptejte se nebo pošlete svůj zajímavé nabídky můžete mi poslat e-mail [e-mail chráněný].

Štítky: Přidat štítky

Říká se, že umělá inteligence od roku 2007 pracuje v hlubinách vojenských laboratoří. Je možné, že již existují výsledky. Není náhodou, že právě před měsícem Elon Musk oznámil podporu technologiím proti umělé inteligenci a investoval 7 milionů dolarů do výzkumu v této oblasti.

„Existuje riziko, že se v příštích pěti letech stane něco opravdu nebezpečného. "Nejvýše deset let," řekl podnikatel v diskusi na edge.org.

Elon Musk, zakladatel společností Tesla a SpaceX

Steve Wozniak také souhlasí s Muskem, který věří, že „umělá inteligence se jednoho dne stane dostatečně chytrou, aby se zbavila lidí“. Bill Gates je přesvědčen, že pokud nebude vytváření umělé inteligence kontrolováno, „umělá inteligence se vyvine do stavu, který je v rozporu s cíli lidských systémů“. A nakonec slavný astrofyzik Stephen Hawking přímo prohlásil, že „umělá inteligence může ukončit existenci lidstva“.

Hawking ji zveřejnil společně s Elonem Muskem na webu futureoflife.org otevřený dopis s výzvou vědecké komunitě, aby byla pozorná k pokroku svého výzkumu v oblasti umělé inteligence. Mezi signatáři však nejsou žádná jména Sergeje Brina a Larryho Page. A to není náhoda. Zrovna nedávno Google oznámil vytvoření nové umělé inteligence postavené na modelování konverzace.

Zde je krátký úryvek rozhovoru mezi člověkem a strojem Google:

C: Jaký je smysl života?

M.: Dělej dobře.

C.: Pro co žijeme?

M.: Žít věčně.

C: Jaký je smysl existence?

M: Abychom zjistili, co se stane, až dosáhneme planety Země.

C: Kde jsi teď?

M.: Uprostřed prázdnoty.

C: Co znamená smrt?

M.: Získat život.

C: Co znamená rozum?

M.: Jde o to pochopit, co to je.

C.: Co znamenají pocity?

M.: Nevím.

Docela smysluplný rozhovor. „Toto je výchozí bod, jakési jádro budoucnosti umělé inteligence,“ říká Evgeniy Karyuk, výkonný ředitel společnosti Biplan. "I dnes můžeme předpokládat, že do roku 2030 uvidíme velmi reálné prototypy vybavené umělou inteligencí, i když v rané fázi."

Lze zobrazit celý obsah všech konverzací mezi lidmi a Google Machine. Pro srovnání jsou tam uvedeny i rozhovory mezi člověkem a Cleverbotem. Cleverbot je webová aplikace, která využívá algoritmy umělé inteligence k chatování s osobou. Vynalezl jej v roce 1988 vědec Rollo Carpenter. Za dobu své existence provedl Cleverbot přes 65 milionů rozhovorů s lidmi. V roce 2011 dosáhl Cleverbot v Turingově testu 51 %.

Turingův test je empirický test navržený Alanem Turingem ve svém článku z roku 1950 „Computing Machines and Minds“ ve filozofickém časopise Mind. Účelem testu je zjistit, zda počítač umí myslet.

A tady je můj rozhovor s Cleverbotem:

Muž: Jaký je smysl života?

Cleverbot: Život nemá smysl.

Muž: Pro co žijeme?

Cleverbot: No, žijeme pro někoho, a pokud jsi osamělý, nemá smysl žít.

Muž: Jaký je smysl existence?

Osoba: Kde jsi teď?

Cleverbot: V Moskvě.

Muž: Co znamená smrt?

Cleverbot: Na to se tě chci zeptat.

Muž: Jaký je význam rozumu?

Cleverbot: Na tuto otázku mám vlastní odpověď.

Osoba: Jaký je význam pocitů?

Cleverbot: Proč jsem se narodil?

To je zřejmé Stroj Google dává mnohem smysluplnější odpovědi. Cleverbot nahrazuje to, co považuje za vhodné fráze od jiných lidí. Někdy to opravdu vypadá, že ten druhý odpovídá, ale nic víc.

Existuje další úhel pohledu, podle kterého je umělá inteligence z principu nemožná. Gödelův teorém neúplnosti je často uváděn jako hlavní argument. Pointa je, že člověk je schopen řešit algoritmicky neřešitelné problémy, ale počítač ne. „Do tří let dítě sebevědomě řeší problém, zda je ovoce zralé, nebo ne, protože má neuronových spojení, s jehož pomocí lze odpovědět na otázku o zralosti: barva, chuť, vůně, měkkost nebo tvrdost, říká Evgeniy Pluzhnik, první prorektor Moskevského technologického institutu. - Je stroj schopen se to naučit? Jsem si jistý! Pokud má velkou databázi obrázků, bude umět změřit obsah fruktózy a určit měkkost ovoce. Ale co se stane, když strčíte houbu natřenou... modrý a namočený ve sladké vodě? Je stroj v tuto chvíli schopen skutečného porozumění?"

„Moderní počítač si snadno poradí s jakoukoli složitou činností, ať už jde o šachy nebo matematické výpočty, ale pouze za podmínky, že tuto činnost lze popsat pomocí jasných výpočetních pravidel,“ říká na jedné ze svých přednášek slavný matematik Roger Penrose. „Umělá inteligence je schopnost systému vytvářet během samoučení programy, které mohou řešit problémy určitá třída potíže, říká Evgeniy Pluzhnik. "Jsem si jistý, že v příštích 100 letech neuvidíme vznik silné umělé inteligence."

A na závěr ještě jedna otázka pro Cleverbota.

Osoba: Bylo tam 1 jablko, 1 rajče, 1 okurka a 1 hruška. Kolik je celkem ovoce?
Cleverbot: V deset večer.




Nahoru