Le reti neurali convoluzionali (CNN) sono un tipo di modello di deep learning che è stato ampiamente utilizzato per varie attività di visione artificiale come la classificazione delle immagini, il rilevamento di oggetti e la segmentazione delle immagini. In questo campo di studio, le CNN si sono dimostrate altamente efficaci grazie alla loro capacità di apprendere automaticamente ed estrarre caratteristiche significative dalle immagini.
I passaggi fondamentali coinvolti nella costruzione di una CNN possono essere riassunti come segue:
1. Preelaborazione: il primo passo nella costruzione di una CNN è la preelaborazione delle immagini di input. Ciò comporta in genere il ridimensionamento delle immagini a una dimensione fissa, la normalizzazione dei valori dei pixel e l'aumento del set di dati, se necessario. La preelaborazione aiuta a ridurre la complessità computazionale e a migliorare le prestazioni del modello.
2. Strati convoluzionali: gli elementi costitutivi fondamentali di una CNN sono gli strati convoluzionali. Questi strati eseguono l'operazione di convoluzione, che comporta lo scorrimento di un piccolo filtro (noto anche come kernel) sull'immagine di input e il calcolo del prodotto scalare tra il filtro e il campo ricettivo locale dell'immagine. L'output di questa operazione è una mappa delle caratteristiche che rappresenta la presenza di determinate caratteristiche nell'immagine di input. Più strati convoluzionali possono essere impilati insieme per apprendere caratteristiche complesse e gerarchiche.
3. Funzione di attivazione: dopo l'operazione di convoluzione, una funzione di attivazione viene applicata in base all'elemento all'output di ogni strato convoluzionale. La funzione di attivazione più comunemente utilizzata nelle CNN è l'unità lineare rettificata (ReLU), che introduce la non linearità nel modello e aiuta nell'apprendimento di modelli complessi.
4. Livelli di raggruppamento: i livelli di raggruppamento vengono utilizzati per ridurre le dimensioni spaziali delle mappe delle caratteristiche conservando le informazioni più importanti. L'operazione di pooling più comunemente utilizzata è il pooling massimo, che seleziona il valore massimo da un quartiere locale nella mappa delle caratteristiche. Il raggruppamento aiuta a ridurre la complessità computazionale e a rendere il modello più robusto a piccole traduzioni e distorsioni nelle immagini di input.
5. Livelli completamente connessi: dopo diversi livelli convoluzionali e di raggruppamento, le mappe delle caratteristiche vengono appiattite in un vettore unidimensionale e passate attraverso uno o più livelli completamente connessi. Questi strati collegano ogni neurone in uno strato a ogni neurone nello strato successivo, in modo simile a una rete neurale tradizionale. I livelli completamente connessi sono responsabili dell'apprendimento delle funzionalità di alto livello e delle previsioni finali.
6. Livello di output: il livello di output di una CNN dipende dall'attività specifica da svolgere. Ad esempio, nella classificazione delle immagini, il livello di output è tipicamente costituito da una funzione di attivazione softmax che produce una distribuzione di probabilità tra le diverse classi. Nel rilevamento di oggetti, lo strato di output può essere costituito da più neuroni che rappresentano la presenza o l'assenza di oggetti diversi nell'immagine.
7. Funzione di perdita: la funzione di perdita misura la differenza tra l'output previsto della CNN e le etichette di verità di base. La scelta della funzione di perdita dipende dal compito specifico. Ad esempio, nella classificazione delle immagini, viene comunemente utilizzata la perdita di entropia incrociata.
8. Ottimizzazione: l'obiettivo dell'ottimizzazione è aggiornare i parametri della CNN per minimizzare la funzione di perdita. Ciò viene in genere eseguito utilizzando un algoritmo di ottimizzazione come la discesa del gradiente stocastico (SGD) o Adam. I parametri della CNN vengono aggiornati iterativamente calcolando i gradienti della funzione di perdita rispetto ai parametri e regolandoli di conseguenza.
9. Formazione e valutazione: la CNN viene addestrata su un set di dati etichettato alimentando le immagini di input attraverso la rete e regolando i parametri utilizzando l'algoritmo di ottimizzazione. Il processo di addestramento prevede più iterazioni o epoche, in cui ogni epoca consiste nel passare l'intero set di dati attraverso la rete. Le prestazioni della CNN vengono valutate su un set di convalida separato per monitorare la sua capacità di generalizzazione. Una volta che la CNN è stata addestrata, può essere utilizzata per fare previsioni su nuove immagini invisibili.
La costruzione di una rete neurale convoluzionale comporta la preelaborazione delle immagini di input, l'applicazione di livelli convoluzionali per estrarre le caratteristiche, l'applicazione di funzioni di attivazione per introdurre la non linearità, l'utilizzo di livelli di pooling per ridurre le dimensioni spaziali, l'utilizzo di livelli completamente connessi per apprendere le funzionalità di alto livello, la definizione di un livello di output in base all'attività, scegliendo una funzione di perdita appropriata, ottimizzando i parametri utilizzando un algoritmo di ottimizzazione e addestrando e valutando la CNN su dati etichettati.
Altre domande e risposte recenti riguardanti Reti neurali convoluzionali (CNN):
- Qual è il ruolo del livello completamente connesso in una CNN?
- Come prepariamo i dati per addestrare un modello CNN?
- Qual è lo scopo della backpropagation nella formazione delle CNN?
- In che modo il raggruppamento aiuta a ridurre la dimensionalità delle mappe delle caratteristiche?
Altre domande e risposte:
- Settore: Intelligenza Artificiale
- programma: Apprendimento approfondito EITC/AI/DLPTFK con Python, TensorFlow e Keras (vai al programma di certificazione)
- Lezione: Reti neurali convoluzionali (CNN) (vai alla lezione correlata)
- Argomento: Introduzione alle reti neurali convoluzionali (CNN) (vai all'argomento correlato)
- Revisione d'esame

