Differenza tra Training e Transfer Learning nel machine learning

Differenza tra Training e Transfer Learning nel machine learning

Training

Il Machine Learning ha un’infinità di utilizzi possibili, sia per la vita di tutti i giorni (ad esempio farsi consigliare cosa guardare in TV), sia in scala globale, ma purtroppo ha anche dei lati negativi. Per poter performare analisi di Dataset di dimensioni notevoli e quindi avere un modello di Machine Learning (ML) in grado di svolgere al meglio il suo compito, c’è bisogno di un’enorme potenza di calcolo. In caso questo non sia possibile, un modello di ML potrebbe impiegare mesi, anni o anche di più per iniziare ad avere risultati ottimi. Questo perchè durante la fase del Training (ovvero la fase di apprendimento), si va incontro a diversi strati di operazioni che possono coinvolgere matrici a molte dimensioni, o comunque elementi molto grandi, e questo deve essere ripetuto per ognuno degli oggetti di un dataset più e più volte. Per questo, avere un acceleratore Hardware (GPU o TPU) è essenziale per poter approcciarsi al ML. Essendo questi abbastanza costosi e quindi non accessibili a tutti, ci sono anche delle piattaforme online che mettono a disposizione i loro acceleratori Hardware (ad esempio Google Colab, Kaggle) per poter introdurre nuove persone a questo mondo.

Differenza tra Training e Transfer Learning nel machine learning

Transfer Learning

Un altro modo per ridurre il tempo impiegato dalla fase di Training di un modello di ML, è l’utilizzo del Transfer Learning. Come suggerisce il nome, questa pratica serve per fare in modo che per affrontare dei task simili non bisogna allenare un modello da capo ogni volta, ma è possibile far sì che alcune feature più comuni apprendibili da un modello vengano riutilizzate per un altro scopo. Per fare un esempio, supponiamo che qualcuno a disposizione di un’elevata potenza di calcolo abbia allenato un modello a distinguere immagini contenenti un cane da quelle contenenti un gatto, e in poco tempo sia riuscito ad ottenere risultati notevolmente positivi. A questo punto, potremmo decidere di ampliare questo modello e provare a distinguere le immagini con un cane dalle immagini con una volpe. Essendo già stato allenato per l’altro task, ora il modello è già in grado di riconoscere immagini con dei cani, quello che potremmo fare è fargli capire in cosa si differenzia un cane da una volpe, e questo sarebbe molto più facile e veloce rispetto al prendere un modello che non sa ancora fare niente e fargli imparare tutto da zero. Il Transfer Learning, quindi, è un ottima risorsa per riuscire a risolvere dei task simili a quelli più famosi e studiati, risparmiando così molto tempo e ottimizzando il lavoro da compiere.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *