Benvenuto su Inforge
Rimuovi la pubblicità e partecipa alla più grande comunità italiana sul mondo digitale presente sul web sin dal 2007.
Iscriviti

Guida Cos'è il Machine Learning - In Sintesi, Capitolo 1 - Introduzione

Kode

Utente Emerald
10 Dicembre 2013
1,336
334
393
Ultima modifica:
background.jpg


Cos'è il Machine Learning? Questa guida ha lo scopo di fornire in sintesi, in maniera semplice e comprensibile una panoramica generale su cosa sia il Machine Learning e su quali siano i concetti di base su cui è fondato.

Capitoli:

I - Introduzione
II - Forme di Machine Learning, algoritmi e definizioni
III - Machine Learning in Python, librerie e coding from scratch della vostra prima applicazione.


1. Introduzione al Machine Learning

Il Machine Learning può, oggigiorno, essere considerato uno degli argomenti più richiesti in ambito informatico. I Data Scientist e i Machine Learning Engineers sono tra i primi ruoli tecnici richiesti all'interno delle piccole, medie e grandi imprese, con stipendi che superano anche i 150.000 euro l'anno!

Ma cos'è il Machine Learning? Per molti di noi, può risultare ostico capire cosa significhi realmente questo termine e, in alcuni casi, può anche spaventarci, dato che all'interno di questa "branca" dell'informatica si racchiudono una serie di concetti legati al Data Science e all'Intelligenza Artificiale.

Esso può essere visto anche come una parte di un campo più ampio: Il Data Mining.
Con Data Mining si intende il processo computazionale di scoperta o analisi di pattern (relazioni) ritrovati all'interno di una mole molto grande di dati andando ad utilizzare vari metodi tra cui:

1. Machine Learning
2. Statistica e Modelli Probabilistici
3. Server OLAP basati sulla gestione di Data Warehouse

Quindi possiamo vedere il Machine Learning come tecniche di apprendimento di pattern (relazioni) partendo da un set di dati (Dataset) per fini analitici.

I pattern sono delle regole o delle proprietà non note sulle variabili del dataset.

Per rendere l'idea di cosa sia un pattern, possiamo fare i seguenti esempi reali:

1. L' acquisto di latte e cereali all'interno di un dataset dei prodotti acquistati al supermercato
2. Partendo da una lista di informazioni in cui si hanno le caratteristiche e i costi delle case a Roma, si può stabilire quale sia il prezzo al metro quadro di una casa in base alla via cittadina, alla vicinanza da una delle piazze o da particolari luoghi turistici.
3. I suggerimenti per gli acquisti su Amazon, dei feed su Facebook e su Instagram; basati su dataset che raccolgono l'attività su tali piattaforme da parte di un utente specifico (acquisti, visite alle pagine, ricerche effettuate tramite l'opzione "Cerca").

Da questi tre esempi possiamo immaginare come sia importante non solo acquisire i dati ma anche sapere come utilizzarli. Aziende come Google, Facebook, Amazon, Twitter e molte altre basano i propri interessi economici sulla gestione ottimale dei dati che acquisiscono in cui, tramite algoritmi di Machine Learning, riescono a sfruttarli per creare dei veri e propri servizi.

2. Alcune nozioni fondamentali


Di seguito andiamo a definire una nomenclatura che ci orienterà nella spiegazione di alcuni concetti:
1. Esempio o Tupla: Un'osservazione, come i dati relativi alle caratteristiche di una casa all'interno di un set di dati immobiliare.
2. Variabili di input: Le variabili che sono date in input per ciascun esempio.
3. Variabili di output: Le variabili che vogliamo dedurre, basate sulle informazioni acquisite dalle variabili di input.
4. DataSet: Insieme di esempi con le medesime variabili.
5. Modello: La funzione che partendo dalle variabili di input, forniscono le variabili di output dedotte tramite l'utilizzo di un algoritmo di Machine Learning.
6. Predizione: Rappresenta il valore legato alle variabili di output che sono state indovinate o dedotte dalla funzione (o dal modello). Tale valore non è sempre corretto ma si ha un'alta probabilità di correttezza (Proprietà P.A.C. del paragrafo 3).



3. Tipi di variabili


Le variabili possono essere di due tipi:
1. Numeriche: Rappresenta un valore racchiuso all'interno di un dominio aritmetico (numeri naturali, decimali, reali...)
2. Categoriche: Rappresenta un valore che è racchiuso all'interno di un insieme logico (nomi di città, prodotti alimentari...)

4. Tipi di Dati

dataset.png

I dati possono essere racchiusi in due insiemi:

1. Training Data:
Rappresentano gli esempi che vengono utilizzati per far "imparare" all'algoritmo di Machine Learning le proprietà e le relazioni del DataSet.
2. Testing Data: Rappresentano degli esempi che vengono utilizzati per dimostrare l'efficacia del modello (o funzione) risultante dall'algoritmo di Machine Learning.

5. Cos'è il Machine Learning


Il Machine Learning può essere visto come il cuore pulsante all'interno del processo di Data Mining ed è anche alla base dell'Intelligenza Artificiale che, oggigiorno, non ha ancora raggiunto lo stato dell'arte.

L' idea alla base del ML è quella di prendere molte osservazioni (i dati) e stabilire tramite algoritmi di apprendimento una funzione che abbia uno specifico obiettivo (indovinare il prezzo di una casa in base alle sue caratteristiche, definire il prezzo di un prodotto in base alle sue caratteristiche qualitative e metterlo in relazione con i prezzi dei suoi competitor...) che è "appreso" automaticamente dai dati.

Ma come mai gli umani non possono imparare direttamente i pattern dal set dei dati fornito in input?
Molto spesso i set di dati sono molto ampi (sia in termini di tuple, sia in termini di variabili per tuple), oppure hanno delle relazioni non lineari che rendono difficile individuare le varie proprietà di correlazione.


6. La precisione del Machine Learning


Essendo basato sulla statistica e sulla probabilità, il Machine Learning estrae dei pattern e delle conoscenze dai dati tramite un approccio probabilistico che molto raramente è preciso al 100%. Tale forma di apprendimento automatico è basato principalmente su delle proprietà fondamentali chiamate P.A.C. (Probably Approximately Correct) che definiscono come il modello (o funzione) che si crea dall'applicazione dell'algoritmo del Machine Learning risulta essere corretto per la maggior parte dei casi con un livello di generalizzazione e di approssimazione di errori che non risultano rilevanti per raggiungere l'obiettivo del modello di ML.


7. Tipi di Algoritmi Machine Learning


ml-2.png

Il Machine Learning è diviso in tre categorie:

1. Supervised Machine Learning: Tecniche in cui si utilizzano delle variabili peer imparare e definire un modello in grado di dedurre il valore di una variabile di output specifica del modello. Viene definito supervised perchè l'algoritmo definisce quale sia la variabile di output all'interno dell'insieme delle variabili del set di dati.
Un esempio è quello di dedurre il prezzo (outcome o output) di una casa andando a sapere i metri quadri, la città, la via in cui si trova, se ha un giardino e altre caratteristiche di tale genere. Tecniche di questo genere sono, ad esempio:
- Regressione
- Classificazione

Sostanzialmente, entrambe le tecniche definiscono una funzione che si avvicina graficamente ai valori di output reali, la differenza tra le due strategie è che nella regressione la variabile di output è di tipo numerico, mentre nella classificazione essa è di tipo categorico.

2. Unsupervised Machine Learning: Tecniche in cui non si utilizzano valori di input per stabilire dei valori di output specifici, non esistono valori di output e molto spesso non ci sta un obiettivo da raggiungere a priori ma si vogliono trovare delle regole o delle proprietà di relazioni all'interno dei dati. Le maggiori tecniche di Unsupervised Machine Learning sono:
- Clustering: Divide gli esempi in gruppi differenti (chiamati cluster) gli esempi di uno stesso gruppo hanno delle proprietà simili che
definiscono i criteri di divisione.
- Association Rules: Scopre delle relazioni basate sulla soddisfacibilità di alcune condizioni basate su un costrutto IF-ELSE
- Anomaly Detection: Identifica gli esempi che sono anomali, ossia che non rispettano delle proprietà comuni (prezzo di una casa troppo alto rispetto alle abitazioni del vicinato)
- Generative Methods: Partendo da alcuni esempi forniti dal set di dati di input, si stabilizzano delle proprietà utilizzate per generare nuovi esempi.

3. Reinforcement Learning: Tecniche che aiutano un computer (agente) ad apprendere un comportamento tramite ripetute interazioni di tipo trial-and-error” (eseguite per tentativi ed errori) con un ambiente dinamico. Questo approccio consente all’agente di attuare una serie di decisioni in grado di massimizzare una metrica di ricompensa per l’attività, senza essere esplicitamente programmato per tale operazione e senza l’intervento dell’uomo.

8. Conclusioni


Abbiamo dato una panoramica generale di cosa sia il Machine Learning, da quanti e quali tipi di algortmi è formato, con quali componenti interagisce e quali siano gli obiettivi del suo utilizzo. Nel prossimo capitolo, andremo a parlare de vari tipi di algoritmi di Supervised,Unsupervised Learning e Reinforcement Learning andando ad elencare e spiegare più nello specifico le strategie più utilizzate.

Noi dello staff speriamo che questi contenuti possano suscitare curiosità da parte della nostra community, stimolandone l'interesse andando ad accrescere il desiderio di approfondire i concetti spiegati. Se hai qualche domanda o dei feedback riguardo gli argomenti presentati nella guida, faccelo sapere tramite un commento qui sotto!

Al prossimo capitolo!

- kode
 
Supporta Inforge con una donazione
Supporta Inforge con un acquisto su NordVPN

Thomas Shelby

Utente Gold
28 Giugno 2020
1,192
489
345


Cos'è il Machine Learning? Questa guida ha lo scopo di fornire in sintesi, in maniera semplice e comprensibile una panoramica generale su cosa sia il Machine Learning e su quali siano i concetti di base su cui è fondato.

Capitoli:
I - Introduzione
II - Lista degli algoritmi principali
III - Machine Learning in Python


1. Introduzione al Machine Learning

Il Machine Learning può, oggigiorno, essere considerato uno degli argomenti più richiesti in ambito informatico. I Data Scientist e i Machine Learning Engineers sono tra i primi ruoli tecnici richiesti all'interno delle piccole, medie e grandi imprese, con stipendi che superano anche i 150.000 euro l'anno!

Ma cos'è il Machine Learning? Per molti di noi, può risultare ostico capire cosa significhi realmente questo termine e, in alcuni casi, può anche spaventarci, dato che all'interno di questa "branca" dell'informatica si racchiudono una serie di concetti legati al Data Science e all'Intelligenza Artificiale.

Esso può essere visto anche come una parte di un campo più ampio: Il Data Mining.
Con Data Mining si intende il processo computazionale di scoperta o analisi di pattern (relazioni) ritrovati all'interno di una mole molto grande di dati andando ad utilizzare vari metodi tra cui:

1. Machine Learning
2. Statistica e Modelli Probabilistici
3. Server OLAP basati sulla gestione di Data Warehouse

Quindi possiamo vedere il Machine Learning come tecniche di apprendimento di pattern (relazioni) partendo da un set di dati (Dataset) per fini analitici.

I pattern sono delle regole o delle proprietà non note sulle variabili del dataset.

Per rendere l'idea di cosa sia un pattern, possiamo fare i seguenti esempi reali:

1. L' acquisto di latte e cereali all'interno di un dataset dei prodotti acquistati al supermercato
2. Partendo da una lista di informazioni in cui si hanno le caratteristiche e i costi delle case a Roma, si può stabilire quale sia il prezzo al metro quadro di una casa in base alla via cittadina, alla vicinanza da una delle piazze o da particolari luoghi turistici.
3. I suggerimenti per gli acquisti su Amazon, dei feed su Facebook e su Instagram; basati su dataset che raccolgono l'attività su tali piattaforme da parte di un utente specifico (acquisti, visite alle pagine, ricerche effettuate tramite l'opzione "Cerca").

Da questi tre esempi possiamo immaginare come sia importante non solo acquisire i dati ma anche sapere come utilizzarli. Aziende come Google, Facebook, Amazon, Twitter e molte altre basano i propri interessi economici sulla gestione ottimale dei dati che acquisiscono in cui, tramite algoritmi di Machine Learning, riescono a sfruttarli per creare dei veri e propri servizi.

2. Alcune nozioni fondamentali

Di seguito andiamo a definire una nomenclatura che ci orienterà nella spiegazione di alcuni concetti:
1. Esempio o Tupla: Un'osservazione, come i dati relativi alle caratteristiche di una casa all'interno di un set di dati immobiliare.
2. Variabili di input: Le variabili che sono date in input per ciascun esempio.
3. Variabili di output: Le variabili che vogliamo dedurre, basate sulle informazioni acquisite dalle variabili di input.
4. DataSet: Insieme di esempi con le medesime variabili.
5. Modello: La funzione che partendo dalle variabili di input, forniscono le variabili di output dedotte tramite l'utilizzo di un algoritmo di Machine Learning.
6. Predizione: Rappresenta il valore legato alle variabili di output che sono state indovinate o dedotte dalla funzione (o dal modello). Tale valore non è sempre corretto ma si ha un'alta probabilità di correttezza (Proprietà P.A.C. del paragrafo 3).



3. Tipi di variabili

Le variabili possono essere di due tipi:
1. Numeriche: Rappresenta un valore racchiuso all'interno di un dominio aritmetico (numeri naturali, decimali, reali...)
2. Categoriche: Rappresenta un valore che è racchiuso all'interno di un insieme logico (nomi di città, prodotti alimentari...)

4. Tipi di Dati

I dati possono essere racchiusi in due insiemi:

1. Training Data:
Rappresentano gli esempi che vengono utilizzati per far "imparare" all'algoritmo di Machine Learning le proprietà e le relazioni del DataSet.
2. Testing Data: Rappresentano degli esempi che vengono utilizzati per dimostrare l'efficacia del modello (o funzione) risultante dall'algoritmo di Machine Learning.

5. Cos'è il Machine Learning

Il Machine Learning può essere visto come il cuore pulsante all'interno del processo di Data Mining ed è anche alla base dell'Intelligenza Artificiale che, oggigiorno, non ha ancora raggiunto lo stato dell'arte.

L' idea alla base del ML è quella di prendere molte osservazioni (i dati) e stabilire tramite algoritmi di apprendimento una funzione che abbia uno specifico obiettivo (indovinare il prezzo di una casa in base alle sue caratteristiche, definire il prezzo di un prodotto in base alle sue caratteristiche qualitative e metterlo in relazione con i prezzi dei suoi competitor...) che è "appreso" automaticamente dai dati.

Ma come mai gli umani non possono imparare direttamente i pattern dal set dei dati fornito in input?
Molto spesso i set di dati sono molto ampi (sia in termini di tuple, sia in termini di variabili per tuple), oppure hanno delle relazioni non lineari che rendono difficile individuare le varie proprietà di correlazione.


6. La precisione del Machine Learning

Essendo basato sulla statistica e sulla probabilità, il Machine Learning estrae dei pattern e delle conoscenze dai dati tramite un approccio probabilistico che molto raramente è preciso al 100%. Tale forma di apprendimento automatico è basato principalmente su delle proprietà fondamentali chiamate P.A.C. (Probably Approximately Correct) che definiscono come il modello (o funzione) che si crea dall'applicazione dell'algoritmo del Machine Learning risulta essere corretto per la maggior parte dei casi con un livello di generalizzazione e di approssimazione di errori che non risultano rilevanti per raggiungere l'obiettivo del modello di ML.


7. Tipi di Algoritmi Machine Learning


Il Machine Learning è diviso in tre categorie:

1. Supervised Machine Learning: Tecniche in cui si utilizzano delle variabili peer imparare e definire un modello in grado di dedurre il valore di una variabile di output specifica del modello. Viene definito supervised perchè l'algoritmo definisce quale sia la variabile di output all'interno dell'insieme delle variabili del set di dati.
Un esempio è quello di dedurre il prezzo (outcome o output) di una casa andando a sapere i metri quadri, la città, la via in cui si trova, se ha un giardino e altre caratteristiche di tale genere. Tecniche di questo genere sono, ad esempio:
- Regressione
- Classificazione

Sostanzialmente, entrambe le tecniche definiscono una funzione che si avvicina graficamente ai valori di output reali, la differenza tra le due strategie è che nella regressione la variabile di output è di tipo numerico, mentre nella classificazione essa è di tipo categorico.

2. Unsupervised Machine Learning: Tecniche in cui non si utilizzano valori di input per stabilire dei valori di output specifici, non esistono valori di output e molto spesso non ci sta un obiettivo da raggiungere a priori ma si vogliono trovare delle regole o delle proprietà di relazioni all'interno dei dati. Le maggiori tecniche di Unsupervised Machine Learning sono:
- Clustering: Divide gli esempi in gruppi differenti (chiamati cluster) gli esempi di uno stesso gruppo hanno delle proprietà simili che
definiscono i criteri di divisione.
- Association Rules: Scopre delle relazioni basate sulla soddisfacibilità di alcune condizioni basate su un costrutto IF-ELSE
- Anomaly Detection: Identifica gli esempi che sono anomali, ossia che non rispettano delle proprietà comuni (prezzo di una casa troppo alto rispetto alle abitazioni del vicinato)
- Generative Methods: Partendo da alcuni esempi forniti dal set di dati di input, si stabilizzano delle proprietà utilizzate per generare nuovi esempi.
3. Reinforcement Learning: Tecniche che aiutano un computer (agente) ad apprendere un comportamento tramite ripetute interazioni di tipo trial-and-error” (eseguite per tentativi ed errori) con un ambiente dinamico. Questo approccio consente all’agente di attuare una serie di decisioni in grado di massimizzare una metrica di ricompensa per l’attività, senza essere esplicitamente programmato per tale operazione e senza l’intervento dell’uomo.

8. Conclusioni

Abbiamo dato una panoramica generale di cosa sia il Machine Learning, da quanti e quali tipi di algortmi è formato, con quali componenti interagisce e quali siano gli obiettivi del suo utilizzo. Nel prossimo capitolo, andremo a parlare de vari tipi di algoritmi di Supervised,Unsupervised Learning e Reinforcement Learning andando ad elencare e spiegare più nello specifico le strategie più utilizzate.

Noi dello staff speriamo che questi contenuti possano suscitare curiosità da parte della nostra community, stimolandone l'interesse andando ad accrescere il desiderio di approfondire i concetti spiegati. Se hai qualche domanda o dei feedback riguardo gli argomenti presentati nella guida, faccelo sapere tramite un commento qui sotto!

Al prossimo capitolo!

- kode
Bella guida, complimenti :)
 
  • Mi piace
Reactions: Kode

Kode

Utente Emerald
10 Dicembre 2013
1,336
334
393
Ultima modifica:
Tendo a precisare una cosa dati alcuni dubbi di alcuni utenti su Telegram riguardo la guida:

Machine Learning e AI sono due cose correlate ma non sono la stessa cosa.

Ecco a voi un immagine che vale più di mille parole:

AI-ML-DL.png


Da come potete notare, possiamo vedere il Machine Learning come una parte dell'Intelligenza Artificiale, mentre il Deep Learning (Le reti neurali o in genere qualsiasi algoritmo di simulazione del comportamento e del pensiero umano) è una parte del Machine Learning. Bisogna tener presente che il Deep Learning in se non raffigura una tecnica di apprendimento (come Supervised, Unsupervised o Reinforcement) ma può essere visto come un sotto-tipo del Supervised Learning.

Spiegherò il tutto meglio nella prossima guida che uscirà inn questi giorni.

Ultima considerazione: Ho modificato i nomi dei capitoli successivi cosi da rendere noto a tutti i contenuti che andrò a spiegare più avanti. Inoltre, resterò sempre aperto a vostri feedback per qualsiasi aspetto della guida, Inforge è una community e il sapere va condiviso in modo da rendere il tutto più comprensibile per chiunque :)

A presto!
 
Supporta Inforge con una donazione
Supporta Inforge con un acquisto su NordVPN