Ivan Preziosi - Sviluppare un'architettura data driven in unity - Codemotion ...Codemotion
Utilizzare un'architettura data driven in un gioco sviluppato con Unity, per realizzare un semplice sistema di minimodding, basato sui dati e di facile implementazione. Utilizzeremo gli streaming assets e json per creare una struttura di dati modificabile dagli utenti, al fine di realizzare un sistema di user generated content che possa garantire al gioco maggiore longevità e varietà.
GitHub: https://github.com/RobertoFalconi/GameRatingsPredictor
Brief description and useful links:
Hi everyone!
This is a project originally made by Roberto Falconi and Federico Guidi for the course "Quantitative Methods for Computer Science" and its teacher Luigi Freda, based at Sapienza - University of Rome.
The code is open source and written in Python 3.x but it's also Python 2.x backward compatible.
This project goal is to classifie each video game in the dataset by ESRB rating, to do this we used Logistic Regression, Random Forest and k-NON.
GitHub repository with full code: https://github.com/RobertoFalconi/GameRatingsPredictor
Ivan Preziosi - Sviluppare un'architettura data driven in unity - Codemotion ...Codemotion
Utilizzare un'architettura data driven in un gioco sviluppato con Unity, per realizzare un semplice sistema di minimodding, basato sui dati e di facile implementazione. Utilizzeremo gli streaming assets e json per creare una struttura di dati modificabile dagli utenti, al fine di realizzare un sistema di user generated content che possa garantire al gioco maggiore longevità e varietà.
GitHub: https://github.com/RobertoFalconi/GameRatingsPredictor
Brief description and useful links:
Hi everyone!
This is a project originally made by Roberto Falconi and Federico Guidi for the course "Quantitative Methods for Computer Science" and its teacher Luigi Freda, based at Sapienza - University of Rome.
The code is open source and written in Python 3.x but it's also Python 2.x backward compatible.
This project goal is to classifie each video game in the dataset by ESRB rating, to do this we used Logistic Regression, Random Forest and k-NON.
GitHub repository with full code: https://github.com/RobertoFalconi/GameRatingsPredictor
Progetto e Sviluppo di un Sistema per il Gioco degli Scacchi TridimensionaliMarco Bresciani
Questa Tesi di Laurea presenta le modalità con cui ho progettato e realizzato un'applicazione dotata di intelligenza artificiale in grado di giocare al gioco degli Scacchi Tridimensionali, gioco noto dai telefilm e film di Star Trek (Cfr. [Star Trek]). Le regole cui ho fatto riferimento sono le Federation Standard Rules 5.0 di A. R. Bartmess (Cfr. [Bartmess, 1977], [Bartmess, 2003]).
Partendo da tali regole, ho codificato la notazione algebrica di scrittura delle mosse con una grammatica Extended Bakus-Naur Form (EBNF) e, successivamente, ho ideato un indice di classificazione (che ho chiamato Elo3D) per dare una valutazione al comportamento dei giocatori durante le partite.
La prima parte sviluppata è un'infrastruttura di rete, basata su Remote Method Invocation (RMI), che trasforma l'impalcatura client-server di questa componente del linguaggio Java in una struttura di comunicazione "quasi" punto-punto. Questa consente il gioco sia in locale sia in remoto, in modo assolutamente trasparente per l'utente, fatta salva la conoscenza dell’eventuale indirizzo di rete remoto.
Per l'impostazione di lavoro che ho scelto, l'applicazione fa uso di dati e formati aperti, con un'alta modularità e consentendo una facile espandibilità delle componenti esistenti. A questo scopo ho infatti sviluppato due linguaggi eXtensible Markup Language (XML) per definire i messaggi che le varie componenti l'applicazione si sarebbero scambiati tra loro e per definire una modalità di memorizzazione dello stato di una partita e i dati di un giocatore.
In quest'applicazione ho messo a disposizione diversi algoritmi di Intelligenza Artificiale (IA), tra i quali (e con i quali) ho eseguito numerose partite e confronti per valutarne le prestazioni. Ho sviluppato un'applicazione in grado di utilizzare anche molteplici insiemi di regole di gioco, facilmente selezionabili dall'utente senza alcuna necessità di configurazione o pre-impostazione.
Cosa c'è dietro al Deep Learning, la sottocategoria del Machine Learning basata sull'utilizzo di architetture ispirate alla struttura del cervello umano, le cosiddette reti neurali artificiali. Analizziamo insieme le potenzialità e gli svantaggi dell'apprendimento "profondo" e le sue applicazioni nel campo della computer vision.
Identificare feature significative per l’analisi nell’informatica forense uti...Antonio Notarangelo
Tecniche di intelligenza artificiale usate per scoprire le prove in una grande varietà di crimini informatici, evitando di compromettere la sicurezza e la riservatezza delle informazioni.
2006 Talk di sera ERLUG (Emilia Romagna Linux User Group)
Realizzati insieme ad Ilias Bartolini . 5a e ultima parte
Presentazione di XP vers. 2.0 come descritta dal secondo libro bianco [nota: all'epoca era stato appena pubblicato ... riferimenti non precisi :-) ]
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperienceAntonio Notarangelo
G.E.M.I.X. (Game Engine Movie Interaction Experience) è un’applicazione progettata e sviluppata come soluzione al problema dell’utilizzo dei game engine nell’ industria
cinematografica, più precisamente nel campo delle pre-visualizzazioni.
Il suo scopo è quello di comprovare l’effettiva efficacia di un motore grafico, Unreal Engine 4 nello specifico,
nella creazione di pre-visualizzazioni, ottenendo il massimo rendimento dalle sue caratteristiche principali:
il rendering in tempo reale e le modifiche al volo delle scene.
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Francesco Komauli
L’idea del progetto di questa tesi è applicare all’addestramento di reti neurali artificiali le funzionalità di uno strumento di gestione di progetti software, in questo caso Maven, per rendere configurabili e componibili in modo dichiarativo, e possibilmente estendibili, sia l’algoritmo di addestramento che le componenti di supporto, come la persistenza della rete neurale e la gestione dei dati dell’insieme di addestramento. Tale idea è nata dall’analogia tra progetti software e addestramento di reti neurali artificiali. Prima dell’introduzione di strumenti di gestione, ciascun progetto software possedeva una propria organizzazione del processo di compilazione, test, deploy, di versionamento e di gestione delle dipendenze. Maven introduce un’interfaccia comune ed un insieme di convenzioni che, oltre a rendere portabile il progetto, ne semplifica il processo di build. Le reti neurali vengono costruite e addestrate usando strumenti di calcolo matematico o scrivendo un eseguibile che utilizzi una libreria dedicata. Il codice per l’addestramento è sviluppato per lo specifico problema, talvolta scartato una volta terminato il suo compito. Nonostante l’addestramento di reti neurali non sia deterministico come un processo di compilazione, ma adotti una serie di tecniche ed euristiche per trovare soluzioni non ottime, sono state cercate delle caratteristiche comuni ai due processi. Si vuole quindi introdurre Maven per definire un prototipo di interfaccia comune all’addestramento di reti neurali artificiali, tenendo conto delle problematiche di questo tipo di processo. Il meccanismo sviluppato per consentire configurabilità e componibilità delle componenti introduce il concetto di servizi: tipologie di oggetti a ciascuna delle quali è associata una factory col compito di configurare le istanze create. Nella configurazione da iniettare attraverso una factory sono tenuti distinti i puri dati, come parametri numerici o stringhe, e servizi collaboratori dotati di comportamento. Attraverso questa distinzione è possibile rappresentare in formato puramente testuale la gerarchia di composizione di un qualunque servizio. Le responsabilità del gestore di progetti sono importare le factory da librerie dichiarate come dipendenze, costruire i servizi in base alla struttura gerarchica specificata nel descrittore di progetto ed utilizzarli per effettuare l’addestramento.
Marketing Aumentato e Intelligenza Artificiale - Master MUMMMasterMarketing
Vincenzo Cosenza - Marketing & Innovation Consultant / Advisor / Founder Osservatorio Metaverso - illustra il tema del marketing aumentato: un marketing che è ancorato ai principi di quello tradizionale, ma che allo stesso tempo assorbe e fa proprie le novità tecnologiche.
Tesi di laurea di Giancarlo Todone dal titolo
"Progetto e realizzazione di una infrastruttura modulare per acquisizione ed archiviazione remota di documenti"
Software testing with mocking framework (Android App)gioacchinolonardo
Software testing, especially unit testing, is where it is very common for a tester to need to test a class or just one method of the class, without having the various dependencies for that class or method available. This project shows how to use the mocking frameworks on an Android application.
Extended Summary of "Evolutionary Optimization of Deep Learning Activation Fu...MicheleScomina
Extended Summary of "Evolutionary Optimization of Deep Learning
Activation Functions".
Tesi di laurea triennale UniTS - Fast Track - Michele Scomina - Presentazione
Sviluppo di un Framework semantico per la contestualizzazione delle activityMichele Palumbo
Partendo da un’analisi di un algoritmo di video-tracking, abbiamo ricevuto, come output, un file. Questo file è stato ulteriormente partizionato per permettere di inserire i tag che vengono fuori dalle tecnologie semantiche.
Il file corredato con i tag semantici, ci viene dato come estensione rdf, che costituisce l'ontologia, dalla quale abbiamo, successivamente, sviluppato le queries.
abbiamo estratto informazioni concentrandoci sulle activity complesse, per risalire alle azioni salienti per quanto riguarda le situazioni di imminente pericolo, ad esempio, persone che attraversano, macchine che si spostano sulla strada, etc., le quali denotano una situazione di potenziale pericolo.
Inoltre, abbiamo rilevato anche situazioni pericolose già accadute (incidenti), ad esempio, macchine che decelerano, persone che camminano in gruppi, etc., in quanto ci possono essere persone che si raggruppano e soccorrono la vittima del sinistro stradale.
Progetto e Sviluppo di un Sistema per il Gioco degli Scacchi TridimensionaliMarco Bresciani
Questa Tesi di Laurea presenta le modalità con cui ho progettato e realizzato un'applicazione dotata di intelligenza artificiale in grado di giocare al gioco degli Scacchi Tridimensionali, gioco noto dai telefilm e film di Star Trek (Cfr. [Star Trek]). Le regole cui ho fatto riferimento sono le Federation Standard Rules 5.0 di A. R. Bartmess (Cfr. [Bartmess, 1977], [Bartmess, 2003]).
Partendo da tali regole, ho codificato la notazione algebrica di scrittura delle mosse con una grammatica Extended Bakus-Naur Form (EBNF) e, successivamente, ho ideato un indice di classificazione (che ho chiamato Elo3D) per dare una valutazione al comportamento dei giocatori durante le partite.
La prima parte sviluppata è un'infrastruttura di rete, basata su Remote Method Invocation (RMI), che trasforma l'impalcatura client-server di questa componente del linguaggio Java in una struttura di comunicazione "quasi" punto-punto. Questa consente il gioco sia in locale sia in remoto, in modo assolutamente trasparente per l'utente, fatta salva la conoscenza dell’eventuale indirizzo di rete remoto.
Per l'impostazione di lavoro che ho scelto, l'applicazione fa uso di dati e formati aperti, con un'alta modularità e consentendo una facile espandibilità delle componenti esistenti. A questo scopo ho infatti sviluppato due linguaggi eXtensible Markup Language (XML) per definire i messaggi che le varie componenti l'applicazione si sarebbero scambiati tra loro e per definire una modalità di memorizzazione dello stato di una partita e i dati di un giocatore.
In quest'applicazione ho messo a disposizione diversi algoritmi di Intelligenza Artificiale (IA), tra i quali (e con i quali) ho eseguito numerose partite e confronti per valutarne le prestazioni. Ho sviluppato un'applicazione in grado di utilizzare anche molteplici insiemi di regole di gioco, facilmente selezionabili dall'utente senza alcuna necessità di configurazione o pre-impostazione.
Cosa c'è dietro al Deep Learning, la sottocategoria del Machine Learning basata sull'utilizzo di architetture ispirate alla struttura del cervello umano, le cosiddette reti neurali artificiali. Analizziamo insieme le potenzialità e gli svantaggi dell'apprendimento "profondo" e le sue applicazioni nel campo della computer vision.
Identificare feature significative per l’analisi nell’informatica forense uti...Antonio Notarangelo
Tecniche di intelligenza artificiale usate per scoprire le prove in una grande varietà di crimini informatici, evitando di compromettere la sicurezza e la riservatezza delle informazioni.
2006 Talk di sera ERLUG (Emilia Romagna Linux User Group)
Realizzati insieme ad Ilias Bartolini . 5a e ultima parte
Presentazione di XP vers. 2.0 come descritta dal secondo libro bianco [nota: all'epoca era stato appena pubblicato ... riferimenti non precisi :-) ]
Design of G.E.M.I.X.: Game Engine Movie Interaction eXperienceAntonio Notarangelo
G.E.M.I.X. (Game Engine Movie Interaction Experience) è un’applicazione progettata e sviluppata come soluzione al problema dell’utilizzo dei game engine nell’ industria
cinematografica, più precisamente nel campo delle pre-visualizzazioni.
Il suo scopo è quello di comprovare l’effettiva efficacia di un motore grafico, Unreal Engine 4 nello specifico,
nella creazione di pre-visualizzazioni, ottenendo il massimo rendimento dalle sue caratteristiche principali:
il rendering in tempo reale e le modifiche al volo delle scene.
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Francesco Komauli
L’idea del progetto di questa tesi è applicare all’addestramento di reti neurali artificiali le funzionalità di uno strumento di gestione di progetti software, in questo caso Maven, per rendere configurabili e componibili in modo dichiarativo, e possibilmente estendibili, sia l’algoritmo di addestramento che le componenti di supporto, come la persistenza della rete neurale e la gestione dei dati dell’insieme di addestramento. Tale idea è nata dall’analogia tra progetti software e addestramento di reti neurali artificiali. Prima dell’introduzione di strumenti di gestione, ciascun progetto software possedeva una propria organizzazione del processo di compilazione, test, deploy, di versionamento e di gestione delle dipendenze. Maven introduce un’interfaccia comune ed un insieme di convenzioni che, oltre a rendere portabile il progetto, ne semplifica il processo di build. Le reti neurali vengono costruite e addestrate usando strumenti di calcolo matematico o scrivendo un eseguibile che utilizzi una libreria dedicata. Il codice per l’addestramento è sviluppato per lo specifico problema, talvolta scartato una volta terminato il suo compito. Nonostante l’addestramento di reti neurali non sia deterministico come un processo di compilazione, ma adotti una serie di tecniche ed euristiche per trovare soluzioni non ottime, sono state cercate delle caratteristiche comuni ai due processi. Si vuole quindi introdurre Maven per definire un prototipo di interfaccia comune all’addestramento di reti neurali artificiali, tenendo conto delle problematiche di questo tipo di processo. Il meccanismo sviluppato per consentire configurabilità e componibilità delle componenti introduce il concetto di servizi: tipologie di oggetti a ciascuna delle quali è associata una factory col compito di configurare le istanze create. Nella configurazione da iniettare attraverso una factory sono tenuti distinti i puri dati, come parametri numerici o stringhe, e servizi collaboratori dotati di comportamento. Attraverso questa distinzione è possibile rappresentare in formato puramente testuale la gerarchia di composizione di un qualunque servizio. Le responsabilità del gestore di progetti sono importare le factory da librerie dichiarate come dipendenze, costruire i servizi in base alla struttura gerarchica specificata nel descrittore di progetto ed utilizzarli per effettuare l’addestramento.
Marketing Aumentato e Intelligenza Artificiale - Master MUMMMasterMarketing
Vincenzo Cosenza - Marketing & Innovation Consultant / Advisor / Founder Osservatorio Metaverso - illustra il tema del marketing aumentato: un marketing che è ancorato ai principi di quello tradizionale, ma che allo stesso tempo assorbe e fa proprie le novità tecnologiche.
Tesi di laurea di Giancarlo Todone dal titolo
"Progetto e realizzazione di una infrastruttura modulare per acquisizione ed archiviazione remota di documenti"
Software testing with mocking framework (Android App)gioacchinolonardo
Software testing, especially unit testing, is where it is very common for a tester to need to test a class or just one method of the class, without having the various dependencies for that class or method available. This project shows how to use the mocking frameworks on an Android application.
Extended Summary of "Evolutionary Optimization of Deep Learning Activation Fu...MicheleScomina
Extended Summary of "Evolutionary Optimization of Deep Learning
Activation Functions".
Tesi di laurea triennale UniTS - Fast Track - Michele Scomina - Presentazione
Sviluppo di un Framework semantico per la contestualizzazione delle activityMichele Palumbo
Partendo da un’analisi di un algoritmo di video-tracking, abbiamo ricevuto, come output, un file. Questo file è stato ulteriormente partizionato per permettere di inserire i tag che vengono fuori dalle tecnologie semantiche.
Il file corredato con i tag semantici, ci viene dato come estensione rdf, che costituisce l'ontologia, dalla quale abbiamo, successivamente, sviluppato le queries.
abbiamo estratto informazioni concentrandoci sulle activity complesse, per risalire alle azioni salienti per quanto riguarda le situazioni di imminente pericolo, ad esempio, persone che attraversano, macchine che si spostano sulla strada, etc., le quali denotano una situazione di potenziale pericolo.
Inoltre, abbiamo rilevato anche situazioni pericolose già accadute (incidenti), ad esempio, macchine che decelerano, persone che camminano in gruppi, etc., in quanto ci possono essere persone che si raggruppano e soccorrono la vittima del sinistro stradale.
Similar to Extended summary of 'Deep Learning for Video Game Playing' (20)
BIM obblighi e opportunità (nicolafurcolo.it) R.pdfNicola Furcolo
Slide BIM: una grande opportunità per gli operatori delle costruzioni.
Il BIM rappresenta una grandissima opportunità per chiunque operi nel settore delle costruzioni:
architetti
ingegneri
geometri
periti
topografi
imprese di costruzioni
pubbliche amministrazioni
RUP
dirigenti PA
A breve il BIM diventa obbligatorio di fatto per ogni appalto pubblico, ma una grande opportunità anche per i lavori privati.
Ti metto a disposizione qui sotto le SLIDE introduttive sul BIM che puoi scaricare gratuitamente.
Se hai bisogno di una consulenza tecnica sul BIM, contattami subito! www.nicolafurcolo.it
Convegno SPEKTRA da A2A - 28 maggio 2024 | NERELLI Andrea
Extended summary of 'Deep Learning for Video Game Playing'
1. ANNO ACCADEMICO 2021/2022
DIPARTIMENTO DI INGEGNERIA E ARCHITETTURA
TESI TRIENNALE IN INGEGNERIA ELETTRONICA ED INFORMATICA
Extendedsummary of
“Deep Learning for Video Game Playing”
Candidato: Relatore:
Kevin Vargu Prof. Andrea DeLorenzo
2. INTRODUZIONE
In questo articolo è offerta una panoramicasui recenti sviluppi riguardanti
l’applicazione del deep learning nei videogiochi. Questi ultimi offrono una
grandevarietà di sfide che dipendono non solo dal genere ma anche dal gioco
stesso, presentando così un’ambiente ideale per testare quelli che sono i
progressi nel campo.
L’obiettivo di questo articolo è visionarele tecniche di deep learning utilizzate
per giocare bene ai videogiochi, soffermandosisu diversi generi e sulle
difficoltà che si incontrano in essi. Esistono inoltre diverse sfide aperte per
l’intelligenza artificiale nell’ambiente videoludico di cui si sta cercando
soluzione anche attraverso il deep learning.
PANORAMICA DEEP LEARNING NEI VIDEOGIOCHI
La base del deep learning sono le reti neurali artificiali (ANNs), funzionidefinite
dalla loro struttura di rete e dal peso di ciascuna connessione interna; in base
all’architettura si possono suddividere in due categorie: reti neurali
feedforward, cheprendono in ingresso un singolo input e danno come risultato
la probabilità o il valore di ogni possibile azione, e reti neurali ricorrenti (RNN),
nelle quali tra gli input sono presenti informazioniriguardantilo stato
precedente della rete.
Le ANNs possono essere ottimizzate per giocare ai videogiochi e le principali
metodologie per farlo sono le seguenti:
1. Supervised learning
Un modello, cioè un programma allenato attraverso un insieme di dati
con l’obiettivo di operaresu di essi, è addestrato attraverso esempi.
Durantel’allenamento gli viene chiesto di prendere decisioni di cui è
nota la risposta corretta, usando poi l’errorecommesso per aggiornarlo,
con l’obiettivo di farlo operare con esempi mai incontrati.
I dati necessari possono essere fornitidalla registrazione di una persona
che gioca o da un algoritmo che è in grado di completare il gioco, usando
poi le informazioniacquisite non solo per giocare ma anche per imparare
a prevedere le possibili transazionidi stato di un gioco.
2. Unsupervised learning
Viene fornito come input un insieme di dati con l’obiettivo di trovare
caratteristiche comuni al suo interno ed effettuare operazionidi
interesse.
3. 3. Reinforcement learning
Un agente, cioè un’entità che opera in un’ambiente per raggiungere
degli obiettivi, interagisce con l’ambiente circostante e quest’ultimo
fornisce dei premi sui quali l’agente si baserà per le azionifuture. Nei
videogiochi i giocatori sono modellati come agenti e i premi sono i
risultati del gioco. Gli approccimaggiormente usati sono: temporal
difference (TD) learning, Q-learning, SARSA (State-Action-Reward-State-
Action) e i metodi Actor-Critic.
4. Approcci evolutivi
Spesso riferiti come neuroevolutivi(NE), sono approcciin grado di
ottimizzare la struttura della rete, offrendo potenzialmente la possibilità
di trovareautomaticamente l’architettura migliore per giocare a uno
specifico videogioco.
5. Approcci di apprendimento ibrido
Metodi che combinano deep learning con altri approccidi machine
learning con l’obiettivo di sfruttareal meglio i pregi di entrambi.
METODI DI DEEP LEARNING PER I VIDEOGIOCHI
Ciascun genere di videogioco deve essere considerato come un ambiente
autonomo data la ponderosa differenza che due diversi generi possono avere.
Risulta quindi indispensabile trattare separatamente per ciascuno di essi le
sfide offerte, le piattaforme utilizzate per la ricercae i metodi impiegati.
A. Giochi Arcade
Sono videogiochi sviluppati prevalentemente in due dimensioni dovei
requisiti principali sono riflessi rapidi e abilità di lettura dell’ambiente
circostante. La piattaforma più utilizzata per il deep learning è l’Arcade
Learning Environment(ALE), che estrae il punteggio del gioco e il
contenuto della RAM per poterli adoperare successivamente per
allenare l’agente.
Il primo algoritmo che ha mostrato prestazioni paragonabilia quelle di
un umano esperto è stato Deep Q-Network (DQN), basato sul Q-
learning, nel quale le esperienze di gioco sono mantenute in memoria
permettendo così di riutilizzarle e imparare da esse. Nel corso degli anni
è stato modificato più volte portando a diverse versioni che hanno
cercato di migliorarne le prestazioni e i punti deboli.
DQNnon è stato l’unico metodo di reinforcement learning utilizzato, a
esso sono seguiti AsynchronousAdvantageActor-Critic (A3C) e sue
4. varianti come AdvantageActor-Critic (A2C) e Unsupervised
Reinforcement and Auxiliary Learning (UNREAL), actor-critic method
with experience replay (ACER),ImportanceWeighted Actor-Learner
Architecture (IMPALA), TrustRegion Policy Optimization (TRPO) e
Proximal Policy Optimization (PPO).
Il reinforcement learning non è stata l’unica strategia utilizzata, approcci
neuroevolutivicome le Evolution Strategies (ES), Novelty search e Deep
Ga hanno ottenuto risultati migliori di DQN, allo stesso modo di approcci
di supervised learning come UCTtoClassification; questi ultimi si sono
pure dimostrati capaci di ridurrele dimensioni della rete e migliorare le
prestazioni.
Tra i giochi Arcade è di particolare interesse Montezuma’s Revenge,
gioco con premi quasi assenti che rappresenta una sfida per il
reinforcement learning. I metodi classici dei giochi Arcade ottengono
risultati quasi nulli, portando alla necessità di nuovestrategie che
cercano di favorirel’esplorazionestimolando la curiosità, come Pseudo-
counts che premia configurazionidi pixel inaspettate.
Metodi promettenti sono hierarchical-DQN(h-DQN) e Ape-X DQN, dove
vengono separati i processi decisionali da quelli operativi, e Deep Q-
learning fromDemonstrations (DQfD) checontiene una memoria
inizializzata con dati di gioco forniti da un giocatore esperto.
B. Giochi di corsa
Giochi dove si controlla un veicolo, gestendone eventualmente le
risorse, con l’obiettivo di completare un circuito nel più breve tempo
possibile, sfruttando al meglio l’ambiente circostante e interagendo con
avversari; ambiente popolareper reinforcement learning è TORCS.
A causa della continuità e dell’elevata dimensione dello spazio d’azione
algoritmi end-to-end come DQNnon possono essere utilizzati, portando
alla ricercadi soluzioni alternative basate principalmente su due
paradigmi: sistemi che mappano dalle immagini alle azioni e sistemi che
analizzano i dati forniti per prenderedecisioni. Direct perception è un
approccio intermedio, dove una rete converte le immagini in indicatori
significativi, dai quali vengono prese le decisioni.
C. First-Person Shooters (FPS)
Sfida principale è l’individuare nemici ed eliminarli sfruttando al meglio
l’ambiente circostante, cercando di prevederele loro mosse e in alcuni
casi lavorando in squadra.
5. Una piattaforma popolareè VizDoom, permette agli agenti di giocare a
Doomed è stata sede della Visual Doom AI Competition 2016, nella
quale una rete neurale feedforward addestrata con A3Cusando reward
shaping, per gestire il meccanismo di assegnazione dei premi, e
curriculumlearning, per velocizzarel’apprendimento, ha offerto le
prestazioni migliori in caso di ambienti già incontrati, mentre Direct
FuturePrediction (DFP), la cui architettura si basa su tre reti che
gestiscono i pixel dello schermo, lo stato dell’agente e il suo obiettivo, si
è adeguato meglio ad ambienti nuovi.
Altri metodi utilizzati nei giochi FPS sono UNREAL, Distill and Transfer
Learning (Distral) ed Intrinsic Curiosity Module (ICM).
D. Giochi Open-World
Giochi con grandelibertà di azione, con obiettivi che possono non
esistere o non essere direttamente individuabili, formando un’ambiente
ideale per metodi di reinforcement learning che riutilizzano durante il
gioco le informazionigià acquisite, come per esempio HierarchicalDeep
Reinforcement Learning Network (H-DRLN).
Altre tecniche utilizzate sono Teacher-StudentCurriculumLearning
(TSCL), formato da un insegnante che gestisce degli studenti che
svolgono compiti specifici, RecurrentMemory Q-Network (RMQN) e
Feedback Recurrent Memory Q-Network (FRMQN), capaci di risolvere
problemi che richiedono memoria e percezione dell’ambiente
circostante.
Piattaforma popolare è ProjectMalmo, costruita su Minecraft.
E. Giochi di strategia in tempo reale
Giocatore controlla un vasto insieme di unità con l’obiettivo di
sopraffarel’avversario potendo fare le propriemosse in qualsiasi istante.
La sfida principale è organizzarepianicomplessi cercando di prevedere
le azioni nemiche.
StarCraftè il gioco più studiato; La Brood War API (BWAPI) permette di
comunicarecon esso per estrarre informazioni; ci sono però poche
tecniche di deep learning.
L’ambiente è molto complesso a causa dei multipli agenti da controllare
contemporaneamente e dell’assenza di premi in gioco oltre a chi vince la
partita. Il secondo problema si può risolvere aggiungendo un premio
come differenza tra danni inflitti e subiti. Gli agenti invece non possono
essere allenati individualmente poiché non sarebbe possibile individuare
chi ha contribuito al raggiungimento dell’obiettivo. Le soluzioni possono
6. essere allenare una rete che controlla tutti gli agenti, come Multiagent
Bidirectionally-Coordinated Network (BiCNet) o CounterfactualMulti-
Agent (COMA), o allenare ciascun agente trattando gli altri come parte
dell’ambiente, Independent Q-learning (IQL).
F. Giochi sportivi di squadra
Giochi che tentano di simulare il più realisticamente possibile sport di
squadra.
Le piattaforme più utilizzate si basano sul calcio, come RoboCup 2D Half-
Field-Offense (HFO) dovedue squadresi alternano in attacco e difesa,
nel quale Inverting Gradients bounding approach ha portato ai risultati
migliori.
G. Giochi di avventura testuale
Gioco interattivo dove ai giocatori viene raccontata una storia a cui
prendono parte attivamente, scegliendo le azioni da compiere da una
lista o scrivendole.
Data la natura di questa tipologia di giochi, è stata sviluppata
un’architettura della rete apposita, chiamata LSTM-DQN, inoltre per
migliorare le prestazioni la ricerca si è spostata verso l’apprendimento di
modelli linguistici e “l’immersione di parole”, tecniche utilizzate da Deep
Reinforcement Relevance Net (DRRN), Golovin Agent e Action
Elimination Network (AEN).
I risultati ottenuti sono stati adoperati anche all’esterno di questa
tipologia di giochi, per esempio deep distributed recurrentQ-network
(DDRQN) ha implementato un protocollo per facilitare la comunicazione
tra gli agenti.
SFIDE APERTE
Nonostante i progressi ottenuti, esistono ancora diverse sfide aperte per il
deep learning che possono essere divise in quattro categorie:
A. Proprietà dell’agente
La maggioranza dei lavori di deep learning è focalizzata sul
completamento di un singolo gioco, senza riuscire a trasmettere le
conoscenze acquisite in giochi differenti. Non è inoltre sufficiente
riuscire a perfezionareun gioco, un agente dovrebbeessere in grado di
adattare le proprieazioni in base all’ambiente circostante e simulare i
comportamenti umani, modificando le prestazioni a seconda delle
necessità e degli obiettivi.
7. I moderni approccidi deep learning non sono ancora in grado di
completare al meglio tutte le sfide offerte dai videogiochi, quelli che
offrono un basso numero di premi, che richiedono un’elevata
pianificazione delle azioni da svolgere o che richiedono di controllare più
agenti contemporaneamente sono ancora un ostacolo.
B. Utilizzo nell’industria videoludica
La maggior parte delle architetture dei modernigiochi derivano da
soluzioni adottate in un periodo in cui non era possibile utilizzare l’IA.
Riprogettare nuovi giochi libererebbe da queste limitazioni e
permetterebbe un migliore utilizzo dell’IA, come per creare e addestrare
NPC, poiché ad oggi è utilizzata maggiormente per testare i giochi.
C. Apprendimento di modelli di gioco
Gran parte dei lavoridi deep learning per i videogiochiaddestra una rete
neurale a comportarsi in base al suo stato, senza comprenderele
meccaniche del gioco, che permetterebbero all’agente non solo di
performaremeglio ma anche di adeguarsi più facilmente ad altri
videogiochi.
D. Risorse computazionali
A causa dei modelli computazionalipiù avanzati e dell’elevato numero di
agenti diventa un problema la velocità computazionale, portando alla
ricerca di nuoviapprocci in grado di alleggerire il carico di lavoro.
CONCLUSIONI
Dall’articolo si è evidenziato che la maggior parte degli approccidi deep
learning per giocare ai videogiochi si basano sul reinforcement learning, anche
se alternative competitive sono fornite da algoritmi evolutivi e di supervised
learning, riuscendo a superarele prestazioni umane nei videogiochipiù
semplici, mentre si stanno ancora svolgendo studi per completare quelli più
complicati e affrontaresfide diverse dal completamento di un gioco.
FONTI
N. Justesen, P. Bontrager, J. Togelius and S. Risi, "Deep Learning for Video
Game Playing," in IEEE Transactions on Games, vol. 12, no. 1, pp. 1-20, March
2020, doi: 10.1109/TG.2019.2896986.