Case study: implementare reti neurali per il riconoscimento delle immagini con calcoli dettagliati
Le reti neurali sono ampiamente utilizzate nelle attività di riconoscimento delle immagini grazie alla loro capacità di apprendere modelli complessi, che esplorano il processo di implementazione, inclusi i calcoli dettagliati coinvolti nella formazione di una rete neurale per la classificazione delle immagini.
Progettazione della rete neurale
La rete è costituita da uno strato di ingresso, uno strato nascosto e uno strato di uscita. Per semplicità, considerare un piccolo set di dati con immagini rappresentate da 4 pixel ciascuno. Lo strato di ingresso ha 4 neuroni, lo strato nascosto ha 3 neuroni, e lo strato di uscita ha 2 neuroni che rappresentano due classi.
Pesi iniziali e biasi
I pesi sono inizializzati casualmente. Ad esempio, i pesi tra input e strato nascosto sono:
- 11 = 0.2
- 12 = -0.3
- 13 = 0.4
- 21 = -0.5
- 22 = 0,1
- 23 = -0.2
- 31 = 0.3
- 32 = -0.4
- 33 = 0.2
Le offerte sono impostate a zero inizialmente per semplicità.
Propagazione e Calcoli in avanti
Data un'immagine di input con valori di pixel [0.5, 0.2, 0.1, 0.7], gli input di livello nascosti sono calcolati come:
H1 = (0.5)(0.2) + (0.2)(-0.3) + (0.1)(0.4) = 0,1 - 0.06 + 0.04 = 0.08
H2 = (0.5)(-0.5) + (0.2)(0.1) + (0.2) = -0.25 + 0,02 - 0,02 = -0.25
H3 = (0.5)(0.3) + (0.2)(-0.4) + (0.1)(0.2) = 0,15 - 0.08 + 0,02 = 0,09
Applicando una funzione di attivazione, come sigmoid, le uscite a strati nascosti sono:
OH1 = 1 / (1 + e-0.08[]]]] ≈ 0.52
OH2[] = 1 / (1 + e0.25[]]]]] ≈ 0.43
OH3 = 1 / (1 + e-0.09[]]]] ≈ 0.52
Le uscite vengono poi utilizzate come input per lo strato di uscita, dove i pesi sono applicati allo stesso modo alle probabilità di classe di calcolo.
Calcolo di errore e di accumulo di pesi
Supponiamo che la classe vera sia la classe 1, rappresentata come [1, 0].
1 = 1 / (1 + e-z]]1]]
Dove z1] è la somma ponderata delle uscite nascoste. L'errore è calcolato come:
Perdita = 0,5 * (target - output)2[
Utilizzando discese gradienti, i pesi vengono aggiornati in base al tasso di errore e apprendimento, ad esempio, 0.1.
Riepilogo delle Calcoli
Questo processo si ripete per epoche multiple, regolando pesi per migliorare l'accuratezza. Calcoli dettagliati comportano moltiplicazioni di matrice, funzioni di attivazione e derivati di errore, che sono essenziali per la formazione di reti neurali in modo efficace.