Passa ai contenuti principali

CNN e Viterbi: presente e passato (passato che ancora sopravvive)



Esiste un nesso tra l’algoritmo Viterbi e le CNN?
La risposta è Sì. Un nesso unicamente concettuale, dal momento che entrambi operano su sequenze di dati cercando pattern e dipendenze.
L'algoritmo Viterbi opera su una sequenza temporale di simboli/stati, trovando il percorso a massima verosimiglianza all’interno del famoso trellis (diagramma che rappresenta graficamente l'evoluzione temporale degli stati possibili di un sistema). 
È essenzialmente un algoritmo per decodificare sequenze codificate con codici convoluzionali.
Le CNN, sebbene tipicamente associate all'elaborazione di immagini, possono essere viste come un modo per estrarre caratteristiche gerarchiche da sequenze di dati spazialmente correlati attraverso operazioni di convoluzione.
Il nesso si rafforza quando consideriamo le CNN-1D (monodimensionali) che operano su sequenze temporali, proprio come l'algoritmo di Viterbi.
In questo caso i kernel scorrono lungo la sequenza dei dati e si comportano come l'algoritmo Viterbi mentre valuta le transizioni tra stati successivi. In altre parole, entrambi sfruttano la località temporale dei dati per fare predizioni.
Tuttavia, ci sono differenze fondamentali: il Viterbi è un algoritmo deterministico che trova la soluzione ottimale globale per un modello Markoviano¹, mentre le CNN sono modelli di apprendimento statistico che apprendono rappresentazioni dai dati attraverso l’addestramento ottimizzato.
Oggi, il decoder Viterbi è spesso integrato in blocchi più grandi all'interno di SoC (System on Chip) complessi che gestiscono l'intera catena di comunicazione digitale.

Sistema che implementa il Viterbi
Il codificatore convoluzionale:
  • è come una macchina che prende una sequenza di bit (0 e 1) in ingresso
  • usa due polinomi generatori, G1 = 111 e G2 = 101, per produrre due bit in uscita per ogni bit in ingresso
  • usa un buffer di memoria (registri di scorrimento) per ricordare i bit precedenti
Il decoder di Viterbi:
  • cerca di correggere gli errori di trasmissione
  • per ogni bit ricevuto, considera tutti i possibili bit originali che potrebbero averlo generato
  • sceglie il percorso più probabile basandosi sulla "distanza", detta di Hamming, tra ciò che riceve e ciò che si aspetterebbe di ricevere
Analizziamo il processo completo:

1. TRASMISSIONE:
   - Input originale: 1 (t0) 0 (t1) 1 (t2) 0 (t3)
   - Per ogni bit:
     * t=0: Input=1 → Registri=100 → Output=11
     * t=1: Input=0 → Registri=010 → Output=01
     * t=2: Input=1 → Registri=101 → Output=10
     * t=3: Input=0 → Registri=010 → Output=00
   - Sequenza trasmessa: 11 01 10 00

2. CANALE:
   - La sequenza attraversa il canale di comunicazione
   - Potrebbero verificarsi errori di trasmissione
   - In questo esempio la sequenza arriva senza errori

3. RICEZIONE:
   - Sequenza ricevuta: 11 01 10 00
   - Processo di Viterbi:
     * t=0: inizia dallo stato 00 (metrica=0)
     * t=1: calcola le metriche per due stati possibili (m=2, m=1)
     * t=2: aggiorna le metriche (m=3, m=2)
     * t=3: conclude nel miglior stato (m=3)
   - Percorso ottimo (blu) → Sequenza decodificata: 1 0 1 0

CARATTERISTICHE CHIAVE:
  1. La codifica raddoppia la lunghezza del messaggio (4 bit → 8 bit)
  2. Ogni bit di input influenza più bit di output
  3. Il decoder può recuperare la sequenza originale anche in presenza di errori
  4. Il percorso blu rappresenta la sequenza più probabile
4. RICEZIONE CON ERRORE:
    - Sequenza ricevuta: 11 11 10 00
    - Processo di Viterbi:
      * t=0: inizia dallo stato S0 (metrica=0).
      * t=1: quattro stati possibili dopo la prima transizione:
    • S0 → S0 (input 0, output atteso 00) → m=2
    • S0 → S1 (input 1, output atteso 11) → m=0 (migliore)
    • S1 → S2 (input 0, output atteso 10) → m=3 (a causa dell'errore ricevuto)
    • S1 → S3 (input 1, output atteso 01) → m=1
     * t=2: aggiornamento metriche nei quattro stati:
    • S0 → S0 (input 0, output atteso 00) → m=4
    • S0 → S1 (input 1, output atteso 11) → m=2
    • S1 → S2 (input 0, output atteso 10) → m=3
    • S1 → S3 (input 1, output atteso 01) → m=1 (migliore)
    * t=3:  dopo l'ultima transizione, le metriche finali nei quattro stati sono:
    • S0 → S0 → m=3
    • S0 → S1 → m=3
    • S1 → S2 → m=1 (migliore)
    • S1 → S3 → m=3

Conclusione: il miglior percorso termina in S2 con metrica 1, ed è quello selezionato dal Trellis (verde nel diagramma)

Sequenza decodificata: 1 0 1 1 (corretto, perché il decoder ha compensato l'errore!). Il primo bit ricevuto è il primo bit della coppia (1,1).

¹Un processo stocastico è un processo di Markov se per ogni tempo e per ogni possibile sequenza di stati, vale:

\begin{equation} P(X_{t+1} | X_t, X_{t-1}, ..., X_0) = P(X_{t+1} | X_t) \end{equation}

cioè il futuro dipende solo dal presente e non dalla storia passata.

Post popolari in questo blog

Salmoni, scarpette, cetrioli e altro

Tutto il testo contenuto in questa pagina è stato pensato e scritto dall'autore del blog.   1. Come il salmone 2. Ooops! 3. Le scarpette hi-tech 4. Equivoci contemporanei 5. I saccenti 6. Medaglie di legno 7. La festività del Nulla 8. Gli aggiornamenti elettronici del Libro dell'Apocalisse 9. Dubbi ne ho 10. La maieutica del vulcaniano 11. Un piacevole vasetto di miele 12. Povere sfere 13. Caos comune mezzo gaudio 14. La fontana senza volti 15. Il piromane super beffardo 16. Boom di serpenti 17. Sistemi in via di degradazione 18. Il gatto nero 19. Alain Delon è ancora vivo? 20. Per sempre con i cani 21. Eventi imprevedibili 22. I robot sottomessi 23. Lady Gaga e Bruno Mars incantano 24. Definizioni mancate 25. Il mio nemico drone 26. Errore di valutazione 27. Ringraziamenti 28. Cari cetrioli, vi scrivo 29. Boom di detective 30. Gli UFO trascurati 31. Il grande salto delle rane 32. La malattia artificiale 33. Homo consumens 34. Lacune informatiche 35. Sei troppo! 36. ...

Welcome reader!

Siamo equi: ci sono sciocchezze che fanno meditare   (da Improvvisi per macchina da scrivere di Giorgio Manganelli)   Le repliche sismiche stabilizzano la faglia dopo una sua frattura; analogamente i pensieri d'assestamento riordinano la mente dopo un periodo turbolento o di trasformazione interiore. Nel blog, questi pensieri vengono organizzati, tra il serio e il faceto, in 60 mie riflessioni che mi sono servite a comprendere meglio e, a volte, a metabolizzare alcune esperienze cognitive, emotive e sociali. Riflessioni che, per varie ragioni, non hanno alimentato il confronto dialogico usuale, spesso condizionato dai frame che semplificano, spesso eccessivamente, i nostri ruoli “pubblici”, specie negli ambienti lavorativi. Per questo, “Pensieri d’assestamento” va inteso come la rottura di un frame atteso; come un comportamento fuori contesto che però non può essere rinegoziato, vista la natura asimmetrica della comunicazione; come un “angolo degli oratori”, in cui...

Interpretazioni

Esistono diversi modelli di intelligenza artificiale generativa, i cosiddetti LLM (Large Language Models), e ognuno di essi può valutare in modo diverso i testi “human written”, attribuendo un diverso valore semantico alle parole e alle frasi, come se per una stessa opera esistessero più piani di lettura. Tuttavia, se questa multidimensionalità esegetica non è stata concepita dall’autore, allora le diverse interpretazioni riflettono semplicemente la complessità delle reti neurali, complessità che appare molto simile, almeno nei risultati, alla sensibilità del lettore. Per sensibilità del lettore intendo la capacità di cogliere le sfumature, i dettagli stilistici, le connessioni logiche-argomentative di un testo, andando oltre la semplice comprensione letterale. Il bagaglio di esperienze, conoscenze e prospettive personali può influenzare profondamente la decodifica di un testo. Per questo motivo, una stessa opera può evocare emozioni, riflessioni e pensieri diversi a seconda delle p...