Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors
post

Egyre jobb szortírozó algoritmusokat ír a mesterséges intelligencia

Online szortírozó algoritmusok akár több billió alkalommal is lefutnak naponta, hogy a felhasználók érdeklődésének, érdekeinek megfelelő listákat rendezzenek össze. A Google kutatói gyorsabb alternatívákat dolgoztak ki, főszerepben a mesterséges intelligencia.

Képek: Google DeepMind

 

Az AlphaDev nevű új rendszer megtanult három-öt számot gyorsabban rendezni, mint a korábbi csúcstechnológiás módszerek. Az algoritmusok felgyorsításával tetszőleges méretű listák például keresőmotorok, e-kereskedelmi oldalak és mások számára is rövidebb idő alatt rendezhetők.

A legtöbb programozó a szortírozó algoritmusokat magasszintű programozási nyelven, például C++-ban valósítja meg, amelyet a fordítóprogram a processzort és a memóriát kontrolláló Assembly (összeállítási) utasításokká alakít át. Egy fordító a C++ egyetlen sorát összeállítási utasítások változatos szekvenciáivá fordítja le. Funkcionalitásuk megegyezik, sebességük viszont változó. Megerősítéses tanulással működő ágens azonban megtanulhatja, hogyan válassza ki a sebességet maximalizáló fordítást.

 

Mire kaptak jutalmat az algoritmusok?

Az AlphaDev közösen és megerősítéses tanulással tanuló neurális hálózatok gyűjteménye. A kutatók eredetileg úgy állították be a rendszert, hogy rendezetlen számokból álló sorozatot és összeállítási utasítások üres listáját adták meg neki.

Az algoritmusokat az utasítások egyenként történő hozzáadásával hozta létre. Akkor kaptak jutalmat, amikor a számokat helyesen és gyorsan rendező utasításokat választottak.

 

 

Minden egyes kiválasztott új utasításnál egy transzformer kiszámította az utasítások addigi beágyazását, egy másik idegháló pedig az utasítások alkalmazása után a számok sorrendjének beágyazását. A rendszer összefűzte a két beágyazást, hogy megjelenítse az aktuális állapotot.

Azokat figyelembe véve, két hálózat választotta ki az utasításokat. Az első előrejelzte a jelenlegi állapotért járó teljes jövőbeli jutalmat, és kiszámolta, hogy bármely adott utasítás javít-e az algoritmuson. A második minden lehetséges utasítás hozzáadásával kiszámolta a jutalmat, és előrejelezte az eredményként kapott állapotot megjelenítő beágyazást.

 

Játékmodellek a való világban

A rendszer lehetséges utasításszekvenciákon keresztül igyekezett rájönni, hogy melyik utasítás vezetett leggyakrabban a legmagasabb előrejelzett jutalmakhoz, majd az utasítást hozzáadta az algoritmushoz.

Mihelyst kidolgozott egy algoritmust, a fejlesztők feltöltötték a több mint egy évtizede nem frissített központi C++ könyvtárba. Az így kapott algoritmusok most nyílt forráskódú szubrutinokként funkcionálnak a C++ alapértelmezett szortírozó algoritmusában.

A rendszert többször tesztelték, az eredmények kifejezetten jók. Munkájukkal a kutatók a játékmodellek, például az AlphaZero tréningmódszerét és architektúráját valóvilágbeli problémák megoldására használják. A nóvum, hogy szortírozó algoritmusok írását megerősítéses tanulási feladatként definiálták újra.

ICT Global News

VIDEOGALÉRIA
FOTÓGALÉRIA

Legnépszerűbb cikkek

ICT Global News

Iratkozz fel a hírlevelünkre, hogy ne maradj le az IT legfontosabb híreiről!