L'aprenentatge automàtic (Machine Learning) és una branca de la intel·ligència artificial que permet als sistemes aprendre i millorar a partir de l'experiència sense ser explícitament programats. Hi ha diversos tipus d'aprenentatge automàtic, cadascun amb les seves pròpies característiques i aplicacions. En aquesta secció, explorarem els principals tipus d'aprenentatge automàtic:
- Aprenentatge Supervisat
Definició
L'aprenentatge supervisat és una tècnica en la qual el model és entrenat amb un conjunt de dades etiquetades. Això significa que cada exemple d'entrenament està associat amb una etiqueta o resultat desitjat.
Característiques
- Dades etiquetades: Necessita un conjunt de dades d'entrenament amb etiquetes.
- Funció objectiu: L'objectiu és aprendre una funció que mapeja les entrades a les sortides desitjades.
- Exemples: Classificació i regressió.
Exemples
- Classificació: Assignar una etiqueta a una entrada (p. ex., identificar si un correu electrònic és spam o no).
- Regressió: Predir un valor continu (p. ex., predir el preu d'una casa basant-se en les seves característiques).
Algoritmes Comuns
- Regressió Lineal
- Regressió Logística
- Màquines de Suport Vectorial (SVM)
- K-Nearest Neighbors (KNN)
- Àrbre de Decisió
- Random Forest
Exemple de Codi: Regressió Lineal en Python
import numpy as np from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # Generar dades d'exemple X = np.array([[1], [2], [3], [4], [5]]) y = np.array([1.5, 3.5, 5.5, 7.5, 9.5]) # Dividir les dades en entrenament i prova X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Crear el model de regressió lineal model = LinearRegression() # Entrenar el model model.fit(X_train, y_train) # Predir amb el model y_pred = model.predict(X_test) # Avaluar el model mse = mean_squared_error(y_test, y_pred) print(f'Error quadràtic mitjà: {mse}')
- Aprenentatge No Supervisat
Definició
L'aprenentatge no supervisat és una tècnica en la qual el model és entrenat amb un conjunt de dades sense etiquetes. L'objectiu és descobrir estructures ocultes o patrons en les dades.
Característiques
- Dades no etiquetades: No necessita etiquetes per a les dades d'entrenament.
- Objectiu: Identificar estructures ocultes, com agrupaments o associacions.
- Exemples: Clustering i reducció de dimensionalitat.
Exemples
- Clustering: Agrupar dades similars (p. ex., segmentació de clients en màrqueting).
- Reducció de Dimensionalitat: Reduir el nombre de variables (p. ex., PCA per a visualització de dades).
Algoritmes Comuns
- K-Means
- Hierarchical Clustering
- DBSCAN
- Principal Component Analysis (PCA)
- t-Distributed Stochastic Neighbor Embedding (t-SNE)
Exemple de Codi: K-Means Clustering en Python
import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans # Generar dades d'exemple X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]) # Crear el model K-Means kmeans = KMeans(n_clusters=2, random_state=0) # Entrenar el model kmeans.fit(X) # Predir els clusters y_kmeans = kmeans.predict(X) # Visualitzar els resultats plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, s=50, cmap='viridis') centers = kmeans.cluster_centers_ plt.scatter(centers[:, 0], centers[:, 1], c='red', s=200, alpha=0.75) plt.show()
- Aprenentatge Semi-Supervisat
Definició
L'aprenentatge semi-supervisat combina elements de l'aprenentatge supervisat i no supervisat. Utilitza un petit conjunt de dades etiquetades juntament amb un gran conjunt de dades no etiquetades per entrenar el model.
Característiques
- Dades mixtes: Utilitza tant dades etiquetades com no etiquetades.
- Objectiu: Millorar la precisió del model utilitzant dades no etiquetades.
- Exemples: Classificació amb dades limitades etiquetades.
Exemples
- Classificació de Text: Utilitzar un petit conjunt de documents etiquetats per entrenar un model que classifiqui una gran quantitat de documents no etiquetats.
Algoritmes Comuns
- Label Propagation
- Co-Training
- Generative Adversarial Networks (GANs)
- Aprenentatge per Reforç
Definició
L'aprenentatge per reforç és una tècnica en la qual 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.
Característiques
- Interacció amb l'entorn: L'agent aprèn mitjançant prova i error.
- Recompenses: L'agent rep recompenses o penalitzacions.
- Objectiu: Maximitzar la recompensa acumulada a llarg termini.
Exemples
- Jocs: Entrenar un agent per jugar a jocs com el Go o els escacs.
- Robòtica: Entrenar robots per realitzar tasques específiques.
Algoritmes Comuns
- Q-Learning
- Deep Q-Networks (DQN)
- Policy Gradients
- Actor-Critic Methods
Exemple de Codi: Q-Learning en Python
import numpy as np # Definir l'entorn states = ["A", "B", "C", "D"] actions = ["left", "right"] rewards = { "A": {"left": 0, "right": 1}, "B": {"left": 1, "right": 0}, "C": {"left": 0, "right": 1}, "D": {"left": 1, "right": 0} } # Inicialitzar la taula Q Q = np.zeros((len(states), len(actions))) # Paràmetres d'aprenentatge alpha = 0.1 gamma = 0.9 epsilon = 0.1 # Funció per seleccionar una acció def choose_action(state): if np.random.uniform(0, 1) < epsilon: return np.random.choice(actions) else: return actions[np.argmax(Q[state])] # Entrenament for episode in range(1000): state = np.random.choice(states) while state != "D": action = choose_action(state) next_state = "B" if action == "left" else "C" reward = rewards[state][action] Q[state][actions.index(action)] = Q[state][actions.index(action)] + alpha * (reward + gamma * np.max(Q[next_state]) - Q[state][actions.index(action)]) state = next_state print("Taula Q entrenada:") print(Q)
Resum
En aquesta secció, hem explorat els principals tipus d'aprenentatge automàtic: supervisat, no supervisat, semi-supervisat i per reforç. Cada tipus té les seves pròpies característiques, aplicacions i algoritmes comuns. Comprendre aquests tipus és fonamental per seleccionar l'enfocament adequat per a diferents problemes d'aprenentatge automàtic.
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