Estratto del documento

Università degli Studi di Napoli Federico II

CdLS in Ingegneria Informatica

Corso di intelligenza artificiale (6 CFU)

Anno Accademico 2008/2009

Studenti: 1

Sommario

  • Rete neurale MLP.................................................................................................................3
  • Il contest...............................................................................................................................3
  • Operazioni sul dataset.........................................................................................................4
  • Feature selection..................................................................................................................8
  • Addestramento rete neurale MLP........................................................................................11
  • Osservazione sul costo e operazione Rejected..................................................................312

Rete neurale Multilayer Perceptron

Nella seguente sezione saranno indicati i passi eseguiti per l'addestramento e il dimensionamento della nostra rete neurale, che nello specifico è la MultiLayer Perceptron, attraverso l'insieme dei campioni forniti nel dataset messo a disposizione dai docenti. Nel nostro caso di studio, i campioni contenuti nel dataset rappresentano pacchetti appartenenti a flussi di rete generati da diverse applicazioni (Http, Ftp, BitTorrent, ...).

Il contest

Una volta entrati in possesso del contest, verifichiamo che esso è costituito da tre file:

  • MatriceDeiCosti.txt: file contenente la matrice di missclassificazione. Questa matrice verrà utilizzata per monitorare e dunque per ottimizzare il costo del classificatore addestrato. Ciascun elemento rappresenta il costo da pagare nel classificare campioni della classe i come campioni della classe j. Va da sé che gli elementi sulla diagonale principale hanno costo nullo (ammesso che sia le righe che le colonne hanno lo stesso ordinamento). L'ultima colonna fornisce il costo per ciascuna classe in caso di rigetto da parte del classificatore.
    80251102168811863Rejected
    0111555
    801011555
    251101555
    1101110555
    21101010100116881
    101010101011863
  • README.txt: questo file fornisce essenzialmente 3 indicazioni:
    • La prima ci fornisce indicazioni inerenti al numero di campioni che costituisce il dataset, nel nostro caso vediamo che esso è costituito da 58478 istanze (!).
    • La seconda indicazione ci informa che le istanze del dataset sono caratterizzate da 22 attributi che si presentano nella forma xk, yk dove xk è caratterizzato da 21 attributi. Il primo indica l'ID (relativo per classe di appartenenza) del campione e i restanti 20 rappresentano la dimensione (payload-size) alla quale viene aggiunto un segno che indica la direzione del pacchetto, dal client verso il server (+) o dal server verso il client (-) mentre yk fornisce la classe di appartenenza di xk.
    • La terza informazione è rappresentata appunto dalle diverse classi di appartenenza dei campioni; abbiamo 6 classi di appartenenza: “80” per Http, “25” per Smtp, “110” per pop3, “21” ftp, “6881” per BitTorrent e “1863” per Msn. Per ciascuna classe sono indicati il numero di campioni appartenenti.
  • TrainingSet.txt: contiene i campioni del dataset oggetto di studio.

Operazioni sul dataset

Illustreremo qui le operazioni che sono state eseguite sul dataset attraverso l'ambiente Knime. La prima operazione eseguita è stata quella di acquisizione del dataset attraverso l'utilizzo del nodo File Reader, questo nodo necessita essenzialmente come parametro di configurazione il path del file (il quale dovrà avere una opportuna formattazione dei dati) costituente il dataset. Ciò che viene restituito in uscita dal nodo è il DS sotto forma di matrice dove sulle righe abbiamo i campioni e sulle colonne gli attributi di cui l'ultima rappresenta la classe di appartenenza del campione individuato dalla riga.

Le successive operazioni, eseguite direttamente all'interno del nodo File Reader, sono state l'esclusione della colonna ID dal data set (in quanto questa contiene un identificativo del pacchetto e quindi non utile ai fini del processo di addestramento) e quella di convertire la colonna "class" del DS in stringa; quest'ultima operazione, sebbene non necessaria ai fini dell'addestramento, è stata comunque eseguita per poter poi assegnare a ciascuna classe un colore di riferimento e dunque di poterle distinguere facilmente.

L'operazione di colorazione, per classe di appartenenza, dei campioni è stata eseguita dal nodo Color Manager, il quale necessita come parametro di configurazione la selezione della colonna di riferimento (class nel nostro caso). A valle dell'esecuzione del nodo Color Manager, effettuando una view sull'elaborazione, abbiamo constatato che i campioni sono ordinati per classe, ovvero prima quelli della classe 110 poi quelli della classe 1863, 21, 25, 6881 e poi infine quelli della classe 80; in più abbiamo notato che i valori assegnati agli attributi da PK_size1 a PK_size20 sono interi relativi che spesso differiscono tra loro per diversi ordini di grandezza.

Illustrazione 1: DS prima dello shuffle

Onde evitare che questi aspetti dei campioni possano influire negativamente sulle prestazioni della rete, si è proceduto quindi a normalizzare l'intero dataset e a mescolarlo. Tali operazioni sono state effettuate attraverso l'utilizzo di due nodi Shuffle e Normalizer.

Illustrazione 2: DS dopo lo shuffle

Riportiamo di seguito la parte del progetto in Knime che realizza le operazioni sopra menzionate.

Illustrazione 3: Parte del progetto di Knime che effettua elaborazioni sul DS

Notiamo nell'immagine ulteriori nodi di cui non abbiamo ancora parlato e tra questi elenchiamo il nodo Pie Chart e lo Scatter Plot. Il nodo Pie Chart è stato introdotto solo per una questione puramente grafica, in effetti esso riporta su di un grafico a torta le istanze del DS raggruppate per classi (informazione per altro già fornita nel file Readme.txt).

Illustrazione 4: Pie Chart

Il nodo Scatter Plot invece rappresenta graficamente i campioni su di un sistema di assi cartesiani; il nodo renderizza i campioni sugli assi a seconda delle features selezionate. Riportiamo di seguito un esempio dove abbiamo selezionato per l'ascissa l'attributo ID mentre per le ordinate l'attributo PK_size1:

Illustrazione 5: Scatter plot ID.PK_size1

Tale grafo può essere di notevole aiuto nella fase di features selection nel capire quali sono, appunto, le...

Anteprima
Vedrai una selezione di 9 pagine su 37
Intelligenza Artificiale - tesina Pag. 1 Intelligenza Artificiale - tesina Pag. 2
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Intelligenza Artificiale - tesina Pag. 6
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Intelligenza Artificiale - tesina Pag. 11
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Intelligenza Artificiale - tesina Pag. 16
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Intelligenza Artificiale - tesina Pag. 21
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Intelligenza Artificiale - tesina Pag. 26
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Intelligenza Artificiale - tesina Pag. 31
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Intelligenza Artificiale - tesina Pag. 36
1 su 37
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher valeria0186 di informazioni apprese con la frequenza delle lezioni di Intelligenza Artificiale e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Sansone Carlo.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community