La data augmentation Γ¨ una tecnica utilizzata nellβaddestramento delle reti neurali per aumentare la quantitΓ di dati disponibili e migliorare le prestazioni del modello. Consiste nel creare nuovi esempi di addestramento a partire dai campioni originali, applicando trasformazioni casuali come rotazione, zoom, shift orizzontale o verticale, flip orizzontale o verticale e altri tipi di manipolazioni.
Lβobiettivo della data augmentation Γ¨ quello di generare un insieme piΓΉ ampio e variegato di dati che il modello puΓ² imparare durante lβaddestramento. CiΓ² aiuta a prevenire lβoverfitting e migliorare le prestazioni generali del modello su nuovi dati.
Ci sono diverse tecniche implementative per la data augmentation:
- Rotazione: ruotando leggermente le immagini in modo casuale (per esempio tra -10Β° e +10Β°) si possono ottenere varianti dellβimmagine originale;
- Zoom: ingrandendo / rimpicciolendo in modo casuale lβimmagine originale si possono ottenere varianti con oggetti piΓΉ vicini / distanti;
- Shift orizzontali/verticali: spostando leggermente lβimmagine verso sinistra/destra/alto/basso si possono ottenere varianti dellβimmagine originale;
- Flip orizzontali/verticalia : ribaltando lateralmente/orizontalmente rispetto allβasse centrale dellβimmagine si ottiene una nuova variante simmetrica dallβoriginale
- Cambiare luminositΓ /contrastro/saturazione dei pixel dellβimmmaginie rende ancora diverso ogni singolo sample.
- altre tecniche specifiche per problem-specific (esempio aggiungere rumore alle immagini mediche)
Inoltre Γ¨ possibile combinare queste tecniche assieme oppure creandone delle proprie personalizzate.
Lβapplicazione della data augmentation puΓ² essere fatta sia durante la fase di preprocessing dei dati che on-the-fly durante il training stesso attraverso librerie apposite come Keras ImageDataGenerator
o PyTorch torchvision.transforms
eccetera