Per avere una "definizione" di machine learning (apprendimento automatico) possiamo far riferimento a Wikipedia https://it.wikipedia.org/wiki/Apprendimento_automatico
ML.NET di Microsoft è compatibile con altri framework e può utilizzare modelli creati in altri ambienti come ONNX e Tensorflow
Librerie e framework sviluppati per essere utilizzati in c# :
1) ML.NET : è un framework sviluppato da Microsoft ,molto potente e ricco di funzionalità
2) ONNX : si tratta di un formato per salvare i modelli di machine learning : Open Neural Network eXchange , qui trovate le librerie necessarie per utilizzare in C# il formato ONNX https://onnxruntime.ai/docs/get-started/with-csharp.html
3) Accord .Net framework : http://accord-framework.net/ ,sviluppato sotto licenza GNU
4) TensorFlow.NET : qui trovate una sintesi delle sue caratteristiche https://ironpdf.com/blog/net-help/tensorflow-net/ ,e qua trovate il codice sorgente https://github.com/SciSharp/TensorFlow.NET/ , il codice è soggetto alla licenza apache 2.0
5) Keras.NET: qui il progetto https://github.com/SciSharp/Keras.NET , licenza MIT . L' "About" è esplicativo sulle finalità del software : "Keras.NET is a high-level neural networks API for C# and F#, with Python Binding and capable of running on top of TensorFlow, CNTK, or Theano. "
-Apprendimento supervisionato e non supervisionato :
a) apprendimento supervisionato : questo algoritmo è da scegliere se si hanno dati cosiddetti etichettati .In questa ipotesi è necessario addestrare il modello su un dataset che contiene gli input (caratteristiche) ed i relativi output (etichette) . Lo scopo è avere una funzione che relazioni gli input agli output in modo da poter prevedere gli output per degli input sconosciuti al dataset iniziale , un caso tipico si ha quando si classificano delle email come spam oppure no
b) apprendimento non supervisionato : in questo caso il modello dell'addestramento non ha etichette ed il fine è scoprire caratteristiche o relazioni presenti nei dati stessi ,non etichettati, un caso potrebbe essere l'acquisto di un bene per una cifra molto alta con la nostra carta di credito quando facciamo sempre degli acquisti di "modesto" valore
-Definiamo i passi per costruire un modello di apprendimento supervisionato :
a) occorre specificare in modo dettagliato il problema che vogliamo risolvere ,dobbiamo acquisire un dataset che contenga sia le features(caratteristiche) che le etichette per eseguire l'addestramento .
Le features sono degli elementi misurabili del problema che vogliamo risolvere , possono essere degli attributi o delle variabili .
Le etichette : il modello addestrato deve essere in grado di prevedere le etichette per quei dati che ne sono privi ,per verificare il funzionamento corretto del modello dobbiamo quindi verificare le etichette "nuove"
b)elaborazione dei dati :
1) esplorazione dei dati : in questa fase si possono cercare dati anomali o mancanti nel dataset ,in certi casi un dato anomalo non è da cancellare ma è significativo
2) divisione del dataset in due parti : addestramento e test ,lasciando all'addestramento un indicativo 80% ed un 20% per il test
c) scelta del modello : a questo punto dobbiamo scegliere un algoritmo.
La libreria ML.NET contiene diversi algoritmi "pronti" , a questo link troverete un elenco https://learn.microsoft.com/it-it/dotnet/machine-learning/how-to-choose-an-ml-net-algorithm
d) per addestrare il modello: in visual studio si può semplicemente
scegliete Modello di Machine Learning ,aggiungete un Machine Learning Model
ora avrete la possibilità di scegliere un algoritmo tra quelli proposti ed in quale ambiente eseguirlo, locale o remoto,
per vedere un' esercitazione completa di dati di prova rimando a https://learn.microsoft.com/it-it/dotnet/machine-learning/tutorials/sentiment-analysis .
Per segnalazioni errori od altro potete inviare un email a gianmarco.castagna@gmail.com oppure aggiungere un commento , per ingrandire le immagini fate doppio click sull'immagine.
Nessun commento:
Posta un commento