Come gli algoritmi imparano e si adattano

24 maggio 2018
Sohrob Kazerounian
Distinguished AI Researcher
Come gli algoritmi imparano e si adattano

Esistono numerose tecniche per creare algoritmi in grado di apprendere e adattarsi nel tempo. In linea di massima, possiamo organizzare questi algoritmi in una delle tre categorie: apprendimento supervisionato, non supervisionato e con rinforzo.

L'apprendimento supervisionato si riferisce a situazioni in cui ogni istanza di dati in ingresso è accompagnata da un valore desiderato o target per quell'ingresso. Quando i valori target sono un insieme di categorie discrete finite, il compito di apprendimento è spesso noto come problema di classificazione. Quando gli obiettivi sono una o più variabili continue, il compito è chiamato regressione.

Ad esempio, i compiti di classificazione possono includere la previsione se una determinata e-mail è spam o ham (cioè non spam) o quale delle N famiglie di malware deve essere classificata come un determinato file binario. Un compito di regressione potrebbe essere quello di prevedere quanti incidenti di sicurezza un host di una rete causerà in un determinato periodo di tempo. In entrambi i casi, l'obiettivo dell'apprendimento supervisionato è quello di apprendere una mappatura funzionale tra lo spazio di input da cui provengono i dati e uno spazio desiderato o target che descrive i dati.

L'apprendimento non supervisionato, invece, si riferisce a scenari in cui un algoritmo o un agente deve imparare solo dai dati grezzi, senza alcun feedback o supervisione sotto forma di valori target. Ciò significa spesso imparare a raggruppare esempi simili nei dati - un compito noto come clustering - oimparare qualcosa sulle distribuzioni sottostanti nello spazio di input da cui sono tratti i dati.

Ad esempio, il clustering può essere utilizzato per determinare gruppi di macchine in una rete che sono simili in base a caratteristiche come il numero di host interni o esterni con cui iniziano le connessioni e il numero di host che iniziano le connessioni con loro.

In alternativa, i metodi non supervisionati possono essere utilizzati per il rilevamento delle anomalie, imparando le proprietà e le statistiche del traffico normale su una rete, in modo che le connessioni di rete che si discostano troppo dalla norma possano essere etichettate come anomale. Sebbene sia difficile enumerare tutti i possibili casi d'uso, l'obiettivo dell'apprendimento non supervisionato è quello di imparare qualcosa sui dati sottostanti senza l'uso di etichette predeterminate che li descrivano.

Uno degli sviluppi storici che hanno dato origine alla popolarità del deep learning è stato il pretraining non supervisionato. È stato utilizzato per apprendere un insieme iniziale di pesi in una rete neurale prima di utilizzare metodi supervisionati per affinare l'apprendimento per le classi di immagini che la rete stava cercando di categorizzare. Alcuni buoni esempi di preaddestramento non supervisionato si trovano nel modello neocognitron di Fukushima del 1975 e nella macchina profonda di Botlzmann di Hinton e Salukhutdinov.

Infine, l'apprendimento per rinforzo si riferisce a paradigmi di apprendimento in cui un agente, interagendo con un ambiente, compie una sequenza di azioni. Ogni azione può cambiare lo stato dell'ambiente e, invece di ricevere un feedback esplicito sull'azione corretta da intraprendere a ogni passo, riceve solo segnali di ricompensa generici sul suo rendimento.

Oggi gli esempi prototipici di apprendimento per rinforzo si trovano nei videogiochi, dove un agente osserva lo stato dell'ambiente. Negli scacchi potrebbe essere lo stato della scacchiera o, in un gioco Nintendo, l'insieme dei pixel sullo schermo. A ogni passo temporale decide un'azione appropriata, come ad esempio quale pezzo muovere successivamente o se spostarsi a sinistra, a destra, in alto, in basso o se premere a/b.

L'agente non riceve un feedback esplicito sull'azione migliore da intraprendere a ogni passo. Riceve invece un feedback attraverso un segnale di ricompensa che arriva potenzialmente un po' di tempo dopo che l'azione è stata compiuta. Ad esempio, può trattarsi di una ricompensa positiva per aver vinto una partita a scacchi o per aver superato un livello, o in alternativa di una ricompensa negativa per ogni punto segnato da un avversario in un gioco come Pong.

Utilizzando il solo segnale di ricompensa, l'agente dovrebbe cercare di aumentare la probabilità di intraprendere azioni che portano a ricompense positive e diminuire la probabilità di intraprendere azioni che portano a ricompense negative o punitive. L'apprendimento per rinforzo diventerà probabilmente un aspetto sempre più importante del pen-testing automatizzato e del rilevamento delle intrusioni. Tuttavia, rimane in uno stato relativamente nascente per quanto riguarda il settore della cybersecurity ed è improbabile che possa funzionare bene in scenari di produzione.

Detto questo, il team AI di Vectra ha già iniziato a ricercare e sviluppare algoritmi di apprendimento per rinforzo per creare agenti che apprendono comportamenti di attacco in grado di eludere i sistemi IDS, consentendo così la creazione automatica di dati da cui un sistema IDS può imparare.

DOMANDE FREQUENTI