Come gli algoritmi apprendono e si adattano

24 maggio 2018
Sohrob Kazerounian
Distinguished AI Researcher
Come gli algoritmi apprendono 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 tre categorie: apprendimento supervisionato, apprendimento non supervisionato e apprendimento per rinforzo.

L'apprendimento supervisionato si riferisce a situazioni in cui ogni istanza di dati di input è accompagnata da un valore desiderato o target per quell'input. Quando i valori target sono un insieme di categorie discrete finite, l'attività di apprendimento è spesso nota come problema di classificazione. Quando i target sono una o più variabili continue, l'attività è chiamata regressione.

Ad esempio, i compiti di classificazione possono includere la previsione se una determinata e-mail sia spam o ham (cioè non spam) o a quale delle N famiglie di malware debba essere classificato malware determinato file binario. Un compito di regressione potrebbe includere il tentativo di prevedere quanti incidenti di sicurezza causerà un host su una rete durante un periodo di tempo specifico. 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.

Al contrario, l'apprendimento non supervisionato si riferisce a scenari in cui un algoritmo o un agente deve apprendere 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'attività nota come clustering, o apprendere qualcosa sulle distribuzioni sottostanti nello spazio di input da cui vengono estratti i dati.

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

In alternativa, è possibile utilizzare metodi non supervisionati per il rilevamento delle anomalie, apprendendo 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 possa essere difficile enumerare tutti i possibili casi d'uso, l'obiettivo dell'apprendimento non supervisionato è quello di apprendere qualcosa sui dati sottostanti senza l'uso di etichette predeterminate che li descrivono.

Uno degli sviluppi storici che ha dato origine alla popolarità del deep learning è stato il pre-addestramento non supervisionato. È stato utilizzato per apprendere una serie iniziale di pesi in una rete neurale prima di utilizzare metodi supervisionati per mettere a punto l'apprendimento per le classi di immagini che la rete stava cercando di classificare. Alcuni buoni esempi di pre-addestramento non supervisionato si possono trovare nel modello neocognitron di Fukushima del 1975 e nella deep Botlzmann machine di Hinton e Salukhutdinov.

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

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

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

Utilizzando solo il 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 è destinato a diventare un aspetto sempre più importante dei test di penetrazione automatizzati e del rilevamento delle intrusioni. Tuttavia, rimane in uno stato relativamente embrionale per quanto riguarda il settore della sicurezza informatica ed è improbabile che funzioni bene in scenari di produzione.

Detto questo, il team di IA di Vectra ha già iniziato a ricercare e sviluppare algoritmi di apprendimento rinforzato per creare agenti in grado di apprendere comportamenti di attacco in grado di eludere i sistemi IDS, consentendo così la creazione automatizzata di dati dai quali un sistema IDS può apprendere.

Domande frequenti