Quali tipologie di AI esistono? – quick guide

Machine Learning o non machine learning? 

Amleto (circa) 

La differenziazione principale tra i vari modelli sussiste nell’esistenza di intelligenze artificiali in grado di imparare dagli eventi e dalle situazioni, o più spesso da un test-set preciso, e AI statiche, fatte e finite, che possono operare solo in un ambiente specifico, che anche se sono in grado di reagire a situazioni disparate, non hanno bisogno di essere allenate. 

In questo articolo ci si riferirà talvolta agli “agenti”, ovvero costrutti software di intelligenza artificiale con un obbiettivo specifico. 

Algoritmi di AI euristiche, alberi decisionali 

Direct Heuristic Search 

Questa categoria raggruppa genericamente tutte quelle AI che data una serie di informazioni sul target, lo stato attuale e le strategie utilizzabili, cercano una soluzione sub-ottimale spesso con una logica greedy (analisi di ogni possibilità), oppure con qualche filtro e ottimizzazione. Sono facili da sviluppare e in genere performanti, ma non hanno possibilità di confronto con algoritmi molto più precisi e avanzati come i Tree Search o le reti neurali. 

Tree Search Algorithms 

fonte: wikipedia.org CC4.0

Forse l’algoritmo più famoso in questa categoria è il MTTS (Monte Carlo tree search), questi algoritmi si occupano di decision making. Grazie a una previsione accurata dei prossimi rami dell’albero, si stabilisce quale stato futuro è il più conveniente, e si esegue la scelta che più avvicina la macchina a quello stato. Altri esempi di algoritmi di Tree Search sono Depth-first search, e Breadth-first search, che però non cercano il ramo più promettente, ma quello esatto, sono quindi più adatti in situazioni in cui la scelta migliore è una e la situazione presenta poche incognite. 

Algoritmi di reti neurali, Artificial Neural Networks (ANNs) 

Decisamente più complicati e costosi dal punto di vista di spazio di archiviazione, le reti neurali artificiali possono essere allenate a partire da un test-set, per poi agire in modo più performante e preciso di molti algoritmi euristici. 

Supervised learning vs Unsupervised learning

Gli algoritmi di apprendimenti “Supervised” sono tutti quelli che si basano su un test-set specificato, ovvero che presenta dei valori di verità che accompagnano i test, come immagini di animali con una label (etichetta), che indica di che animale si tratta. Software basati su questa tecnica sono molto utilizzati nel campo del riconoscimento immagini e del natural language processing, ovvero l’analisi del linguaggio naturale, come il riconoscimento degli stati d’animo e delle opinioni dello scrittore. 

Nella modalità di apprendimento “Unsupervised“, agli agenti viene presentato un test-set completamente non specificato, con un’assenza totale di label, dove l’AI si occupa di stabilire lei stessa le connessioni tra i vari input. Metodo in uso soprattutto nel campo della data science, quando si rende necessario scoprire eventuali densità all’interno di un dataset e evidenziare similarità (anche chiamate modelli) tra gli elementi che lo compongono. 

Reinforcement learning

fonte: filosoft.it

Ricevere un compenso rende qualsiasi task più stimolante per noi umani. Lo stesso vale per le AI. 

Nel reinforcement learning, gli agenti mirano a massimizzare il reward (la ricompensa), ogni azione che porta l’agente ad avvicinarsi all’obbiettivo incrementa il reward, mentre ogni azione controproducente lo decrementerà. Questa strategia di apprendimento è adatta a tutti quegli ambiti in cui non si conosce il metodo perfetto per ottenere quello che si desira. Immaginiamo di dover fare atterrare un drone automatizzato, i terreni, le condizioni atmosferiche, potrebbero cambiare, il drone stesso potrebbe essere danneggiato, non è possibile scrivere a priori una funzione di atterraggio sempre perfetta. Con il reinforcement learning si riesce ad allenare una rete neurale insegnandole come comportarsi sulla base di una ricompensa.  

Il drone sta rallentando? Punteggio positivo, il drone urta qualcosa? Punteggio negativo. Drone schiantato? Bancarotta, e così via. 

Ultimo appunto, cos’è il deep learning? 

Da wikipedia: “The adjective “deep” in deep learning refers to the use of multiple layers in the network”

fonte: moonbooks.org

Una ANN è formata di diversi neuroni che dato un input restituiscono un determinato output. Ciò che rende un algoritmo di machine learning “deep”, è il fatto che a determinati input si assegnano determinati output che sono poi input di altri neuroni. 

Leonardo Bonadimani – Whatar – Filosoft

www.twitch.tv/whatartv