El Machine Learning (ML) és una branca de la intel·ligència artificial que es centra en el desenvolupament d'algoritmes que permeten als ordinadors aprendre a partir de dades. A diferència dels sistemes tradicionals de programació, on els desenvolupadors han de definir explícitament cada regla, els sistemes de ML aprenen patrons i regles a partir de les dades.
- Definició de Machine Learning
El Machine Learning es pot definir com:
- Un camp de la IA que utilitza tècniques estadístiques per donar als sistemes informàtics la capacitat d'aprendre a partir de dades.
- Un procés d'automatització de la construcció de models analítics.
- Components Clau del Machine Learning
2.1 Dades
Les dades són el nucli del ML. Sense dades, els algoritmes de ML no poden aprendre. Les dades poden ser de diferents tipus:
- Dades estructurades: Taules de bases de dades, fulls de càlcul.
- Dades no estructurades: Text, imatges, vídeos.
2.2 Algoritmes
Els algoritmes són els mètodes matemàtics que utilitzen les dades per aprendre. Alguns exemples d'algoritmes de ML inclouen:
- Regressió lineal
- Classificadors de màxima versemblança
- Xarxes neuronals
2.3 Model
Un model és el resultat de l'aprenentatge d'un algoritme a partir de les dades. Un model pot fer prediccions o prendre decisions basades en noves dades.
2.4 Entrenament
L'entrenament és el procés pel qual un algoritme de ML aprèn a partir de les dades. Aquest procés implica ajustar els paràmetres de l'algoritme per minimitzar l'error en les prediccions.
2.5 Validació
La validació és el procés de verificar que el model funciona correctament amb dades noves que no ha vist durant l'entrenament.
- Tipus de Machine Learning
3.1 Aprenentatge Supervisat
En l'aprenentatge supervisat, l'algoritme aprèn a partir d'un conjunt de dades etiquetades. Això significa que cada exemple d'entrenament està associat amb una etiqueta o resultat desitjat.
Exemples:
- Classificació: Assignar una etiqueta a una entrada (per exemple, correu brossa o no correu brossa).
- Regressió: Predir un valor continu (per exemple, el preu d'una casa).
3.2 Aprenentatge No Supervisat
En l'aprenentatge no supervisat, l'algoritme aprèn a partir de dades no etiquetades. L'objectiu és trobar estructures ocultes o patrons en les dades.
Exemples:
- Clustering: Agrupar dades similars (per exemple, segmentació de clients).
- Associació: Trobar regles que descriguin grans porcions de les dades (per exemple, recomanacions de productes).
3.3 Aprenentatge per Reforç
En l'aprenentatge per reforç, un agent aprèn a prendre decisions mitjançant interaccions amb un entorn. L'agent rep recompenses o penalitzacions basades en les seves accions i ajusta la seva estratègia per maximitzar la recompensa acumulada.
Exemples:
- Jocs: Agents que aprenen a jugar a jocs com el Go o el Poker.
- Robòtica: Robots que aprenen a caminar o manipular objectes.
- Procés de Desenvolupament de Models de Machine Learning
4.1 Recollida de Dades
El primer pas és recollir les dades necessàries per entrenar el model. Aquestes dades han de ser representatives del problema que es vol resoldre.
4.2 Preprocessament de Dades
El preprocessament implica netejar i transformar les dades per fer-les adequades per a l'entrenament. Això pot incloure:
- Neteja de dades: Tractament de valors perduts, eliminació de duplicats.
- Transformació de dades: Normalització, codificació de variables categòriques.
4.3 Selecció de l'Algoritme
Seleccionar l'algoritme adequat depèn del tipus de problema (classificació, regressió, clustering) i de les característiques de les dades.
4.4 Entrenament del Model
Entrenar el model implica utilitzar les dades d'entrenament per ajustar els paràmetres de l'algoritme.
4.5 Avaluació del Model
Avaluar el model implica utilitzar dades de validació per mesurar el rendiment del model. Això pot incloure mètriques com l'exactitud, la precisió, el record i l'F1-score.
4.6 Ajust del Model
Si el model no té un rendiment adequat, es poden ajustar els hiperparàmetres, utilitzar més dades o provar amb un algoritme diferent.
4.7 Desplegament
Un cop el model està entrenat i validat, es pot desplegar en un entorn de producció per fer prediccions en temps real.
- Exemples Pràctics
Exemple de Regressió Lineal en Python
import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import LinearRegression # Dades d'exemple X = np.array([[1], [2], [3], [4], [5]]) y = np.array([1, 3, 2, 3, 5]) # Crear el model de regressió lineal model = LinearRegression() model.fit(X, y) # Prediccions y_pred = model.predict(X) # Visualitzar els resultats plt.scatter(X, y, color='blue') plt.plot(X, y_pred, color='red') plt.xlabel('X') plt.ylabel('y') plt.title('Regressió Lineal') plt.show()
Explicació del Codi
- Importació de Llibreries: Importem les llibreries necessàries.
- Dades d'Exemple: Definim les dades d'entrada (X) i les etiquetes (y).
- Creació del Model: Creem un model de regressió lineal utilitzant
LinearRegression
desklearn
. - Entrenament del Model: Entrenem el model amb les dades d'exemple.
- Prediccions: Utilitzem el model per fer prediccions sobre les dades d'entrada.
- Visualització: Visualitzem les dades originals i la línia de regressió.
- Exercicis Pràctics
Exercici 1: Classificació amb K-Nearest Neighbors (KNN)
Descripció: Utilitza l'algoritme KNN per classificar un conjunt de dades d'exemple.
Dades:
from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier from sklearn.metrics import accuracy_score # Carregar el conjunt de dades Iris iris = load_iris() X = iris.data y = iris.target # Dividir les dades en entrenament i prova X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42) # Crear el model KNN knn = KNeighborsClassifier(n_neighbors=3) # Entrenar el model knn.fit(X_train, y_train) # Fer prediccions y_pred = knn.predict(X_test) # Avaluar el model accuracy = accuracy_score(y_test, y_pred) print(f'Exactitud: {accuracy}')
Solució:
- Carregar el Conjunt de Dades: Utilitzem el conjunt de dades Iris de
sklearn
. - Dividir les Dades: Dividim les dades en conjunts d'entrenament i prova.
- Crear el Model: Creem un model KNN amb
n_neighbors=3
. - Entrenar el Model: Entrenem el model amb les dades d'entrenament.
- Fer Prediccions: Utilitzem el model per fer prediccions sobre les dades de prova.
- Avaluar el Model: Avaluem l'exactitud del model utilitzant
accuracy_score
.
- Resum
En aquesta secció, hem explorat els conceptes bàsics del Machine Learning, incloent-hi la definició, els components clau, els tipus d'aprenentatge i el procés de desenvolupament de models. També hem vist exemples pràctics de regressió lineal i classificació amb KNN. Amb aquests fonaments, estàs preparat per aprofundir en tècniques més avançades i aplicar el Machine Learning a problemes reals.
Fonaments d'Intel·ligència Artificial (IA)
Mòdul 1: Introducció a la Intel·ligència Artificial
Mòdul 2: Principis Bàsics de la IA
Mòdul 3: Algoritmes en IA
Mòdul 4: Aprenentatge Automàtic (Machine Learning)
- Conceptes Bàsics de Machine Learning
- Tipus d'Aprenentatge Automàtic
- Algoritmes de Machine Learning
- Avaluació i Validació de Models
Mòdul 5: Xarxes Neuronals i Deep Learning
- Introducció a les Xarxes Neuronals
- Arquitectura de Xarxes Neuronals
- Deep Learning i les seves Aplicacions