Il cuore dell’apprendimento automatico supervisionato risiede nella classificazione, un processo essenziale per categorizzare dati eterogenei in insiemi omogenei. Nel contesto dell'ingegneria computazionale e dell'intelligenza artificiale applicata, MATLAB si conferma uno strumento centrale per lo sviluppo rapido ed efficace di modelli di classificazione, grazie all’integrazione delle sue Toolboxes specializzate: Statistics and Machine Learning Toolbox e Curve Fitting Toolbox.
MATLAB consente due modalità distinte per la progettazione e l’implementazione di classificatori: l’App mode e la Function mode. L’approccio tramite App offre un'interfaccia intuitiva, pensata soprattutto per studenti e utenti alle prime armi, che possono costruire e testare modelli in modo interattivo, riducendo drasticamente la curva di apprendimento. Tuttavia, proprio questa semplificazione nasconde gran parte della logica computazionale e delle tecniche di sviluppo, impedendo un controllo fine delle operazioni e delle strategie algoritmiche.
Per una comprensione e una padronanza più professionali del processo di classificazione, la modalità tramite funzioni MATLAB è insostituibile. Tramite l’uso diretto delle funzioni, come fitctree, fitcknn, fitcsvm, fitcnb, fitcensemble, o fitcecoc, è possibile progettare pipeline complesse e personalizzabili, selezionando e pre-elaborando i dati, costruendo modelli predittivi su misura, e valutando le prestazioni tramite metriche approfondite come l’accuratezza, la precisione, il recall e l’analisi delle matrici di confusione.
In particolare, il progetto "Animal_Sound_Classification" rappresenta un caso studio significativo. In esso, i suoni campionati di animali vengono analizzati e classificati attraverso un modello di classificazione multiclasse. Il tasso di accuratezza raggiunto, pari all’84%, viene visualizzato tramite una confusion chart, che consente di osservare direttamente la distribuzione delle previsioni corrette e degli errori. Tale matrice è uno strumento diagnostico cruciale per comprendere la capacità del modello di distinguere correttamente tra classi differenti.
Questo progetto è accessibile direttamente dalla directory Springer Students\Class Projects\Chapter 6\Multiclass Classification Project, ed è basato sul file MATLAB Animal_Sound_Classification.m. I risultati mostrano che, grazie alla capacità del modello di trattare segnali acustici complessi, la classificazione dei suoni di animali può essere trattata efficacemente come un problema multiclasse.
Nel capitolo dedicato, sono state discusse in dettaglio diverse tecniche di classificazione, tra cui: la classificazione binaria, quella multiclasse, e – in forma introduttiva – la classificazione multilabel, che è stata tuttavia esclusa dalle analisi più approfondite per via della sua complessità implementativa. Le tecniche analizzate includono: K-Nearest Neighbors (KNN), Decision Tree (DT), Naive Bayes (NB), Support Vector Machine (SVM), e Random Forest (RF). Di particolare interesse è anche l’algoritmo ECOC (Error-Correcting Output Codes), che permette di eseguire classificazioni multiclasse attraverso la combinazione strategica di classificatori binari.
I progetti pratici analizzati comprendono classificatori binari per la diagnosi del diabete, classificazioni multiclasse di segnali audio, e classificazioni d’immagini di frutta utilizzando l’approccio ECOC. Questi esempi dimostrano come i modelli possono essere impiegati su dati eterogenei – numerici, audio, visivi – con successo, a condizione di un’adeguata selezione e pre-elaborazione delle caratteristiche salienti.
La valutazione dei modelli è un aspetto fondamentale: attraverso l’uso della confusion chart, è possibile quantificare il tasso di classificazione corretta, osservare i falsi positivi e negativi, e determinare in quali classi il modello tende a commettere errori sistematici. Tuttavia, tale matrice visualizza sia le predizioni corrette sia quelle errate, e quindi fornisce una visione completa e non limitata della performance.
È inoltre importante notare che il processo di classificazione segue una sequenza metodologica precisa: selezione dei dati, scelta del classificatore, fase di training, test e valutazione. Questa pipeline consente la riproducibilità e l’ottimizzazione dei risultati, specialmente quando si adottano tecniche di feature extraction su immagini o segnali audio, utilizzando strumenti come HOG, SURF, LBP o Bag of Features (BoF).
Per i modelli di classificazione basati su immagini, l’efficacia dipende strettamente dalla qualità delle caratteristiche estratte. L’estrazione delle caratteristiche diventa quindi un passaggio cruciale prima dell’addestramento del classificatore. MATLAB fornisce strumenti integrati per questo scopo, permettendo di costruire modelli robusti anche per task complessi come il riconoscimento visivo.
È essenziale che il lettore comprenda come la modalità App, pur utile come punto di partenza, sia solo una fase iniziale per progetti professionali. Il passaggio al coding diretto con funzioni permette una maggiore comprensione dei meccanismi sottostanti e un controllo dettagliato su iperparametri, validazione incrociata, gestione degli squilibri di classe, e altre problematiche reali.
Infine, l’integrazione dei classificatori all’interno di pipeline più ampie, che includano la raccolta e la pulizia dei dati, la normalizzazione, la selezione automatica delle feature, l’ottimizzazione degli iperparametri e la validazione su dati di test, è ciò che distingue un progetto didattico da una reale applicazione AI industriale.
Come si valuta e costruisce un modello di rete neurale per la previsione dei terremoti con MATLAB
Il processo di valutazione e costruzione di un modello di rete neurale profonda per la previsione dei terremoti si basa sull’analisi accurata dei dati e sulla corretta preparazione degli stessi. La funzione readtable() permette di importare dati tabellari in formato cella, che richiede poi la conversione tramite table2array() in array numerici double, indispensabili per le successive elaborazioni. I dati vengono quindi organizzati per colonne, in modo da assegnare a ogni variabile locale il suo rispettivo vettore, come latitudine, longitudine, profondità e ora, estratti dai corrispondenti campi del dataset.
La manipolazione dei dati assume una forma cruciale: poiché le predizioni della rete generano output con quattro righe, anche i dati target devono essere replicati su quattro righe mediante repmat(), per garantire la compatibilità nel confronto. La funzione predict() applica il modello di rete precedentemente addestrato (ad esempio trainedNetwork_1) agli input di test, generando predizioni che vengono poi confrontate con i valori reali tramite gsubtract(), calcolando gli errori assoluti. La visualizzazione grafica di questi errori e degli indicatori di performance come il RMSE di addestramento consente una valutazione chiara dell’efficacia del modello.
Per costruire concretamente un progetto di previsione dei terremoti con funzioni di deep learning, si utilizza spesso una rete neurale superficiale (shallow neural network) come punto di partenza. Le funzioni fitnet() e fitrnet() sono tra le più comuni per compiti di regressione, con fitnet() che mostra maggiore versatilità, potendo gestire anche problemi di classificazione. Nel codice di esempio, il dataset silver_m.csv, contenente 3000 record, viene caricato e convertito in array trasposti per rispettare le specifiche di formato richieste dal training di rete.
L’addestramento della rete viene configurato scegliendo una funzione di training come trainlm (Levenberg-Marquardt), noto per la velocità e l’efficienza in problemi meno complessi. La rete viene creata con un numero definito di neuroni nascosti, in questo caso dieci, e il dataset viene diviso in proporzioni di addestramento, validazione e test, bilanciando così l’apprendimento e la capacità di generalizzazione.
È fondamentale che il modello addestrato sia esportato nello Workspace di MATLAB prima di eseguire le fasi di testing e valutazione, poiché l’assenza del modello genera errori di esecuzione. L’intero flusso si articola quindi nella lettura dati, conversione e preparazione, addestramento della rete, valutazione delle predizioni e visualizzazione degli errori.
Oltre ai passaggi tecnici, è importante comprendere la natura intrinseca del dataset e la rilevanza delle variabili scelte: latitudine, longitudine, profondità e ora influenzano direttamente la capacità della rete di modellare la complessità del fenomeno sismico. La trasformazione dei dati in formati adeguati, la scelta appropriata della funzione di training e la configurazione dei parametri della rete determinano in modo decisivo la qualità della predizione.
Un’ulteriore comprensione essenziale riguarda il bilanciamento tra la semplicità della rete (ad esempio con pochi neuroni) e la capacità di catturare pattern complessi: reti troppo semplici rischiano di non apprendere sufficientemente, mentre reti troppo complesse possono incorrere in overfitting, riducendo la loro efficacia su dati nuovi. Inoltre, l’interpretazione degli errori e la validazione continua sono cruciali per evitare risultati fuorvianti e per migliorare iterativamente il modello.
In sintesi, la costruzione di modelli di deep learning per la previsione dei terremoti richiede una metodologia rigorosa che unisce manipolazione dati, scelta accurata degli strumenti di training e analisi critica dei risultati per ottenere una soluzione affidabile e applicabile.
Come si utilizza l’App Neural Net Clustering per costruire modelli di apprendimento non supervisionato basati sull’algoritmo SOM?
L'App Neural Net Clustering di MATLAB, parte integrante della Deep Learning Toolbox, rappresenta uno strumento visuale avanzato per implementare modelli di apprendimento non supervisionato tramite reti neurali, specificamente con le mappe auto-organizzanti (Self-Organizing Maps, SOM). Questo approccio consente di creare, visualizzare e addestrare reti SOM per risolvere problemi di clustering in modo efficace. L’App permette di importare dati da file esterni o dal workspace di MATLAB, definire e addestrare reti SOM, analizzare i risultati mediante grafici di visualizzazione come la distanza tra nodi vicini e i piani dei pesi, generare script MATLAB per replicare e personalizzare l’addestramento, nonché esportare modelli e risultati per utilizzi successivi.
L’algoritmo SOM è fondamentalmente uno strumento di riduzione dimensionale e clustering che mappa uno spazio di input multidimensionale in uno spazio a dimensione inferiore, tipicamente bidimensionale, preservando la topologia dei dati. Il processo si articola in due fasi principali: addestramento e mappatura. Durante l’addestramento, ogni nodo (neurone) della mappa, fissato in posizione nel piano, viene associato a un vettore di pesi nel dominio dello spazio di input. L’algoritmo modifica iterativamente questi vettori pesi per avvicinarli ai dati di input, minimizzando una misura di distanza, solitamente la distanza euclidea, senza alterare la struttura topologica. Una volta addestrata, la mappa può classificare nuovi dati assegnandoli al nodo con il vettore peso più simile.
Questa architettura a griglia di neuroni, organizzata in strutture esagonali o rettangolari, permette di condensare informazioni complesse e multidimensionali in rappresentazioni visuali intuitive, facilitando l’interpretazione e l’analisi dei dati. Il meccanismo di apprendimento competitivo che caratterizza le SOM contribuisce a definire regioni di similarità nei dati, evidenziando cluster naturali e pattern nascosti.
L’esempio applicativo presentato con il dataset Earthquake Perception, composto da variabili fisiologiche e psicologiche di persone colpite da un terremoto, dimostra come una matrice originaria di 472 osservazioni e 43 caratteristiche possa essere ridotta e trattata per finalità di clustering con solo 10 variabili chiave. Attraverso una preparazione accurata del dataset, che include la pulizia e la sostituzione di valori mancanti, si costruisce un dataset adatto all’addestramento.
L’App Neural Net Clustering si avvia facilmente tramite il comando “nctool” o attraverso l’interfaccia grafica di MATLAB, mostrando una rete di clustering di default con un layer di neuroni disposti su una griglia (ad esempio 10x10 con 100 neuroni totali). Dopo l’importazione dei dati, che richiede la trasposizione della matrice per adattarla al formato richiesto (caratteristiche per righe, osservazioni per colonne), si procede all’addestramento mediante il metodo batch del SOM. Il completamento dell’addestramento fornisce informazioni utili come numero di epoche e valori obiettivo, utili per valutare l’efficacia del modello.
È fondamentale comprendere che, nonostante la semplicità d’uso dell’App, il successo del clustering dipende dalla qualità e dalla preparazione del dataset, dalla scelta della dimensione della mappa e dalla parametrizzazione dell’addestramento. L’interpretazione dei risultati deve tenere conto della natura topologica preservata dalla SOM e delle relazioni tra i cluster identificati.
L’utilizzo di SOM tramite questa applicazione non si limita solo alla riduzione dimensionale o al clustering: rappresenta un metodo potente per esplorare dati complessi, scoprire strutture intrinseche e preparare i dati per ulteriori analisi supervisionate o decisioni basate sull’apprendimento automatico. La flessibilità nel generare script MATLAB permette inoltre agli utenti di personalizzare il processo, integrando la fase di clustering in pipeline analitiche più ampie.
Endtext
Come funziona un Sistema di Inferenza Fuzzy e perché è essenziale comprendere la logica fuzzy
I Sistemi di Inferenza Fuzzy (FIS) si suddividono in tre categorie principali, corrispondenti ai diversi livelli di complessità: Tipo-I, Tipo-II (incluso il Tipo-II Intervallo) e Tipo-III. L’aumento del “tipo” indica un incremento significativo nella complessità del sistema. In questo contesto, ci si concentra principalmente sui primi due tipi, poiché sono quelli più largamente impiegati nelle applicazioni pratiche e teoriche.
La logica fuzzy, introdotta nel 1965 da Lotfi A. Zadeh, rappresenta un modo innovativo di affrontare l’incertezza e l’ambiguità nelle informazioni, qualcosa di assolutamente naturale nel ragionamento umano ma non immediatamente gestibile dalle macchine digitali tradizionali. Per quasi un decennio questa teoria rimase poco riconosciuta fino a quando, nel 1974, E. H. Mamdani applicò con successo la logica fuzzy nel controllo automatico di un motore a vapore. Da allora, le applicazioni industriali si sono moltiplicate, estendendosi a numerosi settori come la produzione, la finanza, la medicina e la robotica.
Il concetto fondamentale della logica fuzzy è la capacità di elaborare dati “sfumati” o imprecisi, molto simili al modo in cui l’essere umano interpreta il mondo. Prendiamo un esempio semplice: quando una persona dice “vai piano sulla strada”, non definisce una velocità esatta come 50 o 60 km/h, ma si affida a una comprensione intuitiva, approssimativa, che non può essere tradotta direttamente in numeri rigidi. Questo tipo di ragionamento, con risposte come “non molto soddisfatto” o “abbastanza soddisfatto”, è naturale per gli esseri umani, ma totalmente estraneo alle macchine tradizionali, che si basano su dati binari e precisi (0 o 1, alto o basso).
Per permettere ai computer di gestire informazioni vaghe o qualitative, è necessario un sistema che trasformi i dati precisi in variabili linguistiche fuzzy e viceversa. Questo avviene attraverso tre passaggi fondamentali: la fuzzificazione, che converte i dati precisi in valori fuzzy rappresentati da funzioni di appartenenza; l’inferenza fuzzy, in cui tali valori sono combinati con regole di controllo basate sull’esperienza e sull’intuizione umana per produrre un’uscita fuzzy; infine, la defuzzificazione, che riporta l’uscita fuzzy a un valore preciso utilizzabile dalle macchine.
Le regole di controllo rappresentano il cuore del sistema fuzzy e sono direttamente collegate alla conoscenza umana e al buon senso. Ad esempio, in un sistema di controllo del condizionatore d’aria, una regola potrebbe essere “se la temperatura è troppo alta, allora riduci la velocità del motore di riscaldamento”. Tali regole permettono al sistema di agire in modo simile a come farebbe un essere umano, affrontando l’incertezza e la sfumatura con naturalezza.
Nei sistemi reali, le variabili in ingresso e in uscita spesso non sono unidimensionali, ma multiple e complesse, richiedendo la definizione di funzioni di appartenenza per ciascuna dimensione e per ciascun output. In ogni caso, l’essenza di un sistema di inferenza fuzzy è un ciclo continuo di conversione dati netti (crisp) in dati sfumati (fuzzy) e viceversa, che riflette il modo in cui gli esseri umani percepiscono e controllano il mondo reale, dove le grandezze fisiche raramente sono assolutamente nette o definite.
È importante riconoscere che la logica fuzzy consente di incorporare una visione universale e globale delle grandezze fisiche, superando i limiti dei tradizionali sistemi di controllo classici che operano su valori rigidi e ben delimitati. Ogni grandezza fisica, come la temperatura, può infatti contenere componenti in gradi diversi, dall’alto al basso, che devono essere considerate simultaneamente.
Con l’evoluzione delle tecnologie fuzzy, sono stati sviluppati anche metodi di controllo più sofisticati che combinano la logica fuzzy con altre tecniche classiche e avanzate, come il controllo PID-fuzzy, il controllo fuzzy a modalità scivolante, e il controllo neuro-fuzzy, ampliando così le possibilità applicative di questi sistemi.
Comprendere la logica fuzzy e i sistemi di inferenza fuzzy significa quindi accettare un nuovo paradigma di gestione dell’informazione, basato sulla natura intrinsecamente imprecisa del mondo reale. Questo permette di progettare sistemi di controllo e decisione capaci di imitare il ragionamento umano in situazioni complesse e ambigue, migliorando così l’efficienza e la flessibilità delle tecnologie moderne.
Come prevenire e gestire l'incrostazione e la corrosione negli scambiatori di calore industriali
Qual è il futuro dell'osservazione automatica degli oggetti spaziali non cooperativi?
Qual è l'importanza della luce bianca nell'illuminazione e nelle applicazioni visive moderne?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский