CORE ML¶
Core ML è il framework principale di Apple per integrare modelli di machine learning nelle app. Apple lo descrive come una rappresentazione unificata dei modelli che l’app può usare, insieme ai dati dell’utente, per fare predizioni ed eseguire training o fine-tuning on-device. Non è un framework di UIKit: è un framework dedicato al machine learning, utilizzabile in diversi tipi di app Apple.
Supporta una vasta gamma di tipi di modelli, inclusi quelli per la visione artificiale, il riconoscimento del linguaggio naturale, la previsione di serie temporali e molto altro. Gli sviluppatori possono utilizzare Core ML per aggiungere funzionalità avanzate alle loro app, come il riconoscimento delle immagini, la classificazione del testo, il riconoscimento vocale e le raccomandazioni personalizzate.
Il flusso di lavoro tipico per la creazione di un modello di machine learning (ML) può essere riassunto in queste fasi:
Problem (Problema) La prima fase consiste nell'identificare e definire chiaramente il problema che si vuole risolvere con il machine learning. Ad esempio, può essere la classificazione di immagini, la previsione di vendite future, o il riconoscimento vocale. Definire il problema è cruciale per determinare l'approccio, i dati necessari e il tipo di modello da utilizzare.
Data (Dati) Dopo aver definito il problema, il passo successivo è raccogliere e preparare i dati necessari. Questo può includere la raccolta di dati esistenti, la pulizia dei dati, e la loro suddivisione in insiemi di addestramento e di test. I dati sono il cuore del machine learning. Senza dati di qualità, non è possibile costruire modelli accurati e affidabili.
Train (Addestramento) In questa fase, si utilizza l'insieme di addestramento per "insegnare" al modello come fare previsioni. Questo processo implica l'uso di algoritmi di machine learning che apprendono dai dati forniti. L'addestramento è il processo attraverso il quale il modello impara a riconoscere schemi nei dati e a fare previsioni basate su questi schemi.
Evaluate (Valutazione) Dopo aver addestrato il modello, è necessario valutarne le prestazioni utilizzando l'insieme di test. Questo passaggio aiuta a determinare quanto bene il modello generalizza su nuovi dati non visti durante l’addestramento. Valutare il modello assicura che le sue previsioni siano accurate e che il modello non sia troppo adattato ai dati di addestramento (overfitting) o troppo generalizzato (underfitting).
MLModel (Modello di Machine Learning) Il risultato finale del processo è il modello di machine learning addestrato e validato, pronto per essere utilizzato in applicazioni reali. Un modello di machine learning ben addestrato e valutato può essere integrato in sistemi e applicazioni per risolvere il problema iniziale, automatizzando compiti complessi e migliorando l'efficienza e l'accuratezza delle previsioni.
Esempio pratico Supponiamo che si voglia creare un modello di riconoscimento di immagini per distinguere tra cani e gatti.
- Problem: Riconoscere se una data immagine contiene un cane o un gatto
- Data: Raccogliere un dataset di immagini di cani e gatti, etichettate correttamente
- Train: Utilizzare un algoritmo di deep learning per addestrare un modello sui dati di addestramento
- Evaluate: Valutare le prestazioni del modello su un insieme di test di immagini non viste durante l’addestramento
- MLModel: Una volta che il modello ha raggiunto una precisione soddisfacente, salvarlo e utilizzarlo in un'applicazione di riconoscimento di immagini.

Questo schema rappresenta un ciclo continuo, dove il modello può essere migliorato raccogliendo più dati e rifinendo il processo di addestramento e valutazione.