Perche' i Neuroni Streaming Battono il ML Tradizionale sui Dati Temporali
Abbiamo testato i neuroni streaming in streaming di Luviner contro gli approcci standard su monitoraggio industriale. Lo streaming ha raggiunto l'88.5%, battendo windowed (83.8%) e stateless (83.7%) — senza buffer.
Il Problema: i Sensori Generano Flussi, Non Tabelle
Ogni sistema di manutenzione predittiva, ogni wearable, ogni monitor medicale affronta la stessa sfida: i dati dai sensori arrivano come un flusso continuo. Un sensore di vibrazioni legge 100 volte al secondo. Un cerotto ECG campiona 250 volte al secondo.
Il ML tradizionale tratta ogni lettura come indipendente. Si bufferizzano N campioni, si estraggono feature statistiche e si classifica la finestra. Ma su un microcontrollore costa caro:
- Memoria: serve un buffer (10-50 letture x numero di sensori)
- Latenza: si aspetta che il buffer si riempia
- Ingegnerizzazione: qualcuno deve progettare le feature giuste
E se la rete neurale potesse semplicemente... ricordare?
I Neuroni Streaming Hanno Memoria
L'architettura proprietaria di Luviner mantiene uno stato interno che si evolve continuamente con l'arrivo di nuovi dati. Ogni neurone porta avanti un riassunto compresso di tutto ciò che ha visto.
Lo stato non si resetta tra le letture. La rete si adatta dinamicamente all'input: reazioni veloci ai cambiamenti improvvisi, trend a lungo termine preservati.
Il Benchmark: Rilevamento Stato Macchina Industriale
Scenario: macchina con 6 sensori di vibrazione, 4 stati operativi:
- NORMALE — vibrazione bassa e regolare
- WARMING — leggermente elevata, drift lento (quasi indistinguibile da NORMALE)
- STRESSED — frequenza più alta, ampiezza crescente
- FAILING — spike caotici
Sfida: WARMING e NORMALE sono quasi identici istante per istante. Solo il trend rivela il degrado. 60 sequenze, 120 step temporali.
Tre Approcci a Confronto
Luviner Streamingo: Training con train_sequential() — stato persistente tra letture consecutive.
Windowed Features: Buffer di 10 letture, 4 feature statistiche per sensore. Approccio classico.
Stateless: Stessa rete, ogni lettura classificata da zero.
Risultati
| Metodo | Accuratezza | RAM per campione | Feature engineering |
|---|---|---|---|
| Luviner Streamingo | 88.5% | 102 float | Nessuna |
| Windowed Features | 83.8% | 60 float | Manuale |
| Stateless | 83.7% | 6 float | Nessuna |
Lo streaming vince: +2.7% rispetto al windowed senza buffer, +3.9% rispetto allo stateless.
Contesto Competitivo
Confronto V3 vs baseline ML standard su 4 dataset pubblici:
| Modello | Accuracy Media | Flash | MCU-ready? |
|---|---|---|---|
| Luviner V3 | 98.0% | ~11 KB | Sì (C puro) |
| Random Forest | 98.6% | ~175 KB | No |
| Decision Tree | 94.0% | ~2.4 KB | Sì |
| MLP float64 | 88.3% | ~82 KB | No |
V3 competitivo con Random Forest, 6x meno memoria di un MLP standard.
Perché Conta
Su un MCU con 32 KB di RAM, ogni float conta. I neuroni streaming comprimono l'informazione temporale nei loro stati interni:
- Nessun buffer — memoria costante
- Nessuna feature engineering — la rete impara da sola
- Predizioni istantanee — nessuna attesa
- Latenza inferiore — un campione alla volta
- Accuracy migliore — cattura pattern che le statistiche perdono
Provalo
docker exec luviner-edge-ai-1 python -m cli.main streaming
docker exec luviner-edge-ai-1 python -m cli.main comparison