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:

  1. 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}')

  1. 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()

  1. 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)

  1. 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.

© Copyright 2024. Tots els drets reservats