Subsections


2.3.3 Modelli ibridi HMM-NN

Già a partire dalla metà degli anni 80 la tecnologia neurale si è affermata nell'ambito della pattern recognition come un potente strumento di classificazione non lineare e non parametrico. La sua applicazione nel campo del riconoscimento vocale è stata notevomente ostacolata dalla natura del segnale vocale. Esso infatti ha un comportamento di tipo sequenziale e temporale, mentre le reti neutali sono più adatte al riconoscimento di pattern statici. Solo nel 1988 si sono cominciati a compiere i primi studi su modelli ibridi markoviani-neurali (HMM-NN).

Questi modelli integrano i pregi di entrambe le tecniche.

Figure 2.11: Frame di contesto
Image FIGframe_contesto
Ereditano dall'Hidden Markov Model la capacità di gestire fenomeni temporali attraverso un modellamento ad automa a stati finiti delle parole (figura 2.10) che consente di utilizzare l'algoritmo di Viterbi per trovare la sequenza di stati ottima. Dall'altro lato i vantaggi della tecnologia neurale sono molteplici. In primo luogo le reti neurali sono per loro definizione discriminative. Durante il training le varie classi da riconoscere sono messe in competizione l'una contro l'altra, creando una più precisa separazione tra di loro e dando risultati migliori rispetto all'utilizzo di misture di gaussiane. Inoltre nell'Hidden Markov Model dove essere rispettata l'indipendenza stocastica tra un frame e il successivo, mentre nelle reti neurali questo assunto cade. Ciò permette di considerare anche il contesto sinistro e destro di un frame, dando migliori risultati al riconoscimento (figura 2.11). I modelli ibridi HMM-NN sono stati sviluppati in vari laboratori di ricerca, in particolare Bourland e Morgan [1] hanno dato un notevole contributo sia teorico che sperimentale scrivendo un libro sull'argomento.
Figure 2.12: Esempio di rete neurale per il riconoscimento vocale
Image FIGrete_neurale_standard

Nel corso degli anni si sono sperimentate diverse strutture di reti neurali al fine di adattarle al riconoscimento vocale, con svariate peculiarità. Una struttura base è quella riportata in figura (2.12). Possiamo notare, in primo luogo, che di solito vengono utilizzate reti a più livelli. In questo caso sono presenti tre livelli completamente interconnessi. In strutture più complesse sono presenti ulteriori livelli e la connessione non è completa. Partendo dal basso si vede una sequenza di frames di ingresso. Rappresentati come in figura (2.11). L'input alla rete è una finestra di sette frame che ad ogni iterazione si sposta di 1 frame verso destra. Una volta caricati i valori di questi frame nel livello di ingresso della rete neurale (input layer), con le formule descritte nella sezione 2.2.1 vi è una propagazione dei valori fino ai nodi di uscita (output layer). A questo punto si ottiene una probabilità che può essere utilizzata come probabilità di emissione nel modello ad automi, simile a quello descritto per l'Hidden Markov Model.


2.3.3.1 Training di una rete neurale per il riconoscimento vocale

Come per le reti neurali generiche, anche per quelle finalizzate al riconscimento vocale, la fase di training ha un'importanza essenziale per un adeguato funzionamento della rete. Sebbene ci siano molte similitudini con le reti neurali classiche, l'addestramento di un modello ibrido markoviano-neurale richiede qualche accorgimento in più, dovuto proprio alla natura temporale del segnale che deve riconoscere.

Come si era già spiegato qualche paragrafo addietro, l'addestramento di una rete neurale avviene dandone in ingresso un pattern che, confrontato con il relativo target, permette la correzione dell'errore compiuto, attraverso l'algoritmo di back-propagation. In questo caso però sia i pattern in ingresso che i target dipendono dal tempo. Come si è visto gli ingressi dipendenti dal tempo non creano alcun problema. Lo stesso vale per i target, l'unico accorgimento da prendere è che siano sincronizzati con l'ingresso. Dando ad esempio in input il frame relativo al fonema "a" dovrò confrontarlo con un target "a" in uscita, ci sarà poi un momento in cui avverrà il passaggio ad un altro fonema, anche il target in quel momento dovrà cambiare.

Il processo che porta alla determinazione del momento in cui avviene il passaggio tra un target e il successivo si chiama segmentazione. Può essere eseguita manualmente attraverso l'analisi diretta del segnale vocale: un operatore, osservando la forma d'onda e lo spettro di fraquenza, intercetta tutti i frame in cui vi è questo passaggio. Il metodo più usato, visto gli ottimi risultati che si riescono ad ottenere e i tempi lunghissimi di un approcio manuale, è la segmentazione automatica. Sapendo quali sono le frasi dette, quindi la seguenza di simboli che compongono la frase, si utilizza la rete neurale e l'algoritmo di Viterbi per segmentare. Anche se per segmentare basta una rete di qualità bassa, al migliorare delle prestazioni della rete aumenta la precisione della segmentazione, quindi è buona norma aggiornarla periodicamente durante la fase di training. Quando bisogna addestrare una rete completamente nuova, sorgono due problemi:

Per fare il training di una rete nuova si fornisce la seguente procedura:
  1. inizializzare la rete con pesi piccoli e random
  2. assumere una prima segmentazione, anche approssimata, ottenuta da modelli esistenti (HMM o neurali)
  3. caricare la segmentazione corrente
  4. addestrare la rete neurale per alcune iterazioni, al fine di ottenere i parametri che approssimino tale segmentazione
  5. calcolare una nuova segmentazione tramite l'algoritmo di Viterbi, utilizzando la rete neurale addestrata finora
  6. aggiornare la segmentazione corrente applicando una funzione che tiene conto della segmentazione corrente e di quella ricalcolata al punto (5.). Si usa la seguente formula $ {seg\_attuale} = \alpha \cdot {seg\_attuale} + ( 1 - \alpha ) \cdot {seg\_nuova} $ con $\alpha$ che varia da 1 a 0 nel corso del training. Ripetera dal punto (3.).
A questo punto il modello è pronto per essere utilizzato.

Stefano Scanzio 2007-10-16