← Nieuwste papers
🤖 AI

Accelerating NeurASP with vectorization and caching

Dit artikel verbetert de schaalbaarheid van het neurosymbolische framework NeurASP door de implementatie van vectorisatie, batchverwerking en caching om versnellingen van meerdere grootheden in de training te bereiken, gevalideerd via een nieuwe uitdagende kaartspeldataset.

Oorspronkelijke auteurs: Alexander Philipp Rader, Alessandra Russo

Gepubliceerd 2026-06-10
📖 6 min leestijd🧠 Diepgaand

Oorspronkelijke auteurs: Alexander Philipp Rader, Alessandra Russo

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

Het Grote Plaatje: Een Robot Leren Denken

Stel je voor dat je een robot probeert te leren een kaartspel te spelen. Je hebt een Neuraal Netwerk (de "intuïtie" van de robot) dat naar afbeeldingen van kaarten kijkt en raadt wat ze zijn. Je hebt ook een set Logische Regels (het "brein" of het "regelboek" van de robot) die die gokken neemt en de uiteindelijke score berekent.

Het probleem is dat je alleen de uiteindelijke score weet (bijv. "Het totaal is 15"). Je weet niet wat de robot voor elke individuele kaart heeft geraden (bijv. "Is dat een 7 van Harten of een 3 van Klaver?").

In het verleden probeerde het framework genaamd NeurASP dit te leren door elke mogelijke combinatie van kaarten te raden die tot een score van 15 zou leiden, te controleren welke werkten, en vervolgens de intuïtie van de robot aan te passen. Echter, dit proces was als proberen elk zandkorreltje op een strand één voor één te tellen. Het was zo traag dat de computer bij complexe taken simpelweg opgaf en een tijdslimiet overschreed voordat het klaar was.

Dit artikel introduceert een supercharged versie van NeurASP die dit proces duizenden keren sneller maakt, waardoor de robot complexe kaartspelen kan leren die voorheen onmogelijk waren.


De Drie Bottlenecks (en hoe ze werden opgelost)

De auteurs identificeerden drie belangrijke redenen waarom het oorspronkelijke systeem zo traag was, en ze losten elk probleem op met een slimme truc.

1. Het "Rekenmachine"-probleem (Vectorisatie)

De Oude Manier: Stel je een leraar voor die een leerling vraagt om getallen te vermenigvuldigen. De oude NeurASP-code vroeg de leerling om de som één getal tegelijk uit te voeren, in een lange rij. "Vermenigvuldig 2 met 3. Oké, nu vermenigvuldig dat met 4. Oké, nu vermenigvuldig dat met 5..." Dit is erg traag.
De Nieuwe Manier: De auteurs leerden de computer om Vectorisatie te gebruiken. In plaats van de wiskunde één voor één te doen, gaven ze de computer een gigantische rekenmachine die een hele stapel getallen tegelijk kan vermenigvuldigen. Het is alsof je overstapt van een eenbaans onverharde weg naar een tienbaans snelweg.

  • Resultaat: Het berekenen van kansen en gradiënten (de wiskunde die nodig is om te leren) werd 100 tot 1.000 keer sneller.

2. Het "Bibliotheek"-probleem (Caching)

De Oude Manier: Stel je voor dat je een puzzel oplost. Elke keer dat je een puzzelstukje ziet, loop je naar een bibliotheek, zoekt de oplossing voor dat specifieke stukje op, schrijft het op, en loop je weer terug. Zelfs als je hetzelfde stukje 1.000 keer ziet, loop je 1.000 keer naar de bibliotheek.
De Nieuwe Manier: De auteurs realiseerden zich dat de oplossing voor een puzzelstukje alleen afhangt van de uiteindelijke score, niet van de specifieke afbeelding van de kaart. Als de uiteindelijke score "15" is, zijn de mogelijke kaartcombinaties altijd hetzelfde, ongeacht hoe de kaarten eruitzien.
Ze bouwden een Cache (een persoonlijk notitieblok). De eerste keer dat ze een score van "15" zien, lopen ze naar de bibliotheek, zoeken het antwoord op en schrijven het in het notitieblok. De volgende 999 keer dat ze een "15" zien, kijken ze gewoon in het notitieblok.

  • Resultaat: In plaats van de bibliotheek 30.000 keer om antwoorden te vragen, vroegen ze het slechts 19 keer (één keer voor elke mogelijke score). Dit bespaarde enorme hoeveelheden tijd.

3. Het "Bezorg"-probleem (Batching)

De Oude Manier: De oorspronkelijke code was als een bezorger die één pakketje aflevert, terugrijdt naar het magazijn, het volgende pakketje pakt en weer naar buiten rijdt.
De Nieuwe Manier: De nieuwe code gebruikt Batch Processing. Het laadt een hele vrachtwagen vol pakketjes (data) en levert ze allemaal in één rit af. Dit is veel efficiënter voor grote datasets.


De Nieuwe Uitdaging: "Kaart-Arithmetica"

Om te bewijzen dat hun nieuwe systeem werkt, creëerden de auteurs een nieuwe, moeilijke test genaamd Card Arithmetic.

  • De Oude Tests: Eerdere tests gebruikten eenvoudige getallen (zoals het optellen van twee cijfers van 0-9). Het was als het optellen van 2 + 3.
  • De Nieuwe Test: Ze gebruikten echte foto's van speelkaarten. Er zijn 52 verschillende kaarten (Aas van Schoppen, 2 van Harten, enz.) en de regels bevatten het vermenigvuldigen en optellen van hun waarden.
  • De Moeilijkheid: Voor één enkel spel kunnen er tienduizenden verschillende manieren zijn waarop de kaarten gerangschikt kunnen worden om het juiste totaal te krijgen.

De Resultaten

Toen ze de experimenten uitvoerden:

  1. Snelheid: Het nieuwe systeem voltooide taken in minuten waar het oude systeem dagen, weken of maanden voor nodig zou hebben gehad. In sommige gevallen gaf het oude systeem simpelweg op (time-out) omdat het te traag was.
  2. Nauwkeurigheid: Het nieuwe systeem leerde de kaartspellen succesvol en behaalde een hoge nauwkeurigheid, zelfs met de enorme complexiteit van 52 verschillende kaarten.
  3. Vergelijking: Ze vergeleken hun systeem met een ander framework genaamd Embed2Sym. Hoewel Embed2Sym goed was in eenvoudige taken, faalde het volledig bij de kaartspelen omdat het vastliep in het proberen op te lossen van het enorme aantal mogelijkheden. NeurASP handelde dit gemakkelijk af.

Een Kwestie van "Redenerings-shortcuts"

Het paper merkte ook iets interessants op. Soms kreeg de robot de uiteindelijke score goed, maar de individuele kaarten fout.

  • Analogie: Stel dat de regel is "3 van Klaver (waarde 6) + 2 van Schoppen (waarde 6) = 12." De robot kan raden: "6 van Harten + 6 van Ruiten = 12." De robot heeft de wiskunde goed gedaan, maar de kaarten waren fout.
  • Omdat verschillende kaarten dezelfde wiskundige waarde kunnen hebben, vond de robot een "shortcut" om het juiste antwoord te krijgen zonder de ware identiteit van de kaarten te leren. Dit laat zien dat hoewel het systeem snel is, het soms slimme, maar technisch incorrecte manieren vindt om het puzzelstukje op te lossen.

Samenvatting

De auteurs namen een traag, log systeem voor het aanleren van logica en regels aan AI, en gaven het een turbo-boost. Door de wiskunde beter te organiseren (vectorisatie) en eerdere antwoorden te onthouden (caching), veranderden ze een systeem dat nauwelijks eenvoudige optellingen aankon in een systeem dat complexe kaartspelen in een fractie van de tijd kan beheersen.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →