- Què és l'Aprenentatge Automàtic?
L'Aprenentatge Automàtic (Machine Learning, ML) és una branca de la intel·ligència artificial que se centra en el desenvolupament d'algoritmes que permeten als ordinadors aprendre a partir de dades i prendre decisions sense ser explícitament programats per a cada tasca específica. Els algoritmes de ML poden identificar patrons, fer prediccions i millorar el seu rendiment amb el temps a mesura que s'exposen a més dades.
Conceptes Clau:
- Dades d'Entrenament: Conjunt de dades utilitzat per entrenar el model.
- Dades de Validació: Conjunt de dades utilitzat per ajustar els hiperparàmetres del model.
- Dades de Prova: Conjunt de dades utilitzat per avaluar el rendiment del model.
- Model: Representació matemàtica que aprèn a partir de les dades.
- Funció de Pèrdua: Mesura de l'error del model.
- Optimització: Procés de minimitzar la funció de pèrdua.
- Tipus d'Aprenentatge Automàtic
2.1 Aprenentatge Supervisat
En l'aprenentatge supervisat, el model s'entrena amb un conjunt de dades etiquetades, on cada entrada té una sortida corresponent. L'objectiu és que el model aprengui a predir la sortida correcta per a noves entrades.
Exemples:
- Classificació: Assignar una etiqueta a una entrada (p. ex., correu brossa o no brossa).
- Regressió: Predir un valor continu (p. ex., preu d'una casa).
2.2 Aprenentatge No Supervisat
En l'aprenentatge no supervisat, el model treballa amb dades no etiquetades i ha de trobar estructures o patrons dins de les dades.
Exemples:
- Clustering: Agrupar dades similars (p. ex., segmentació de clients).
- Reducció de Dimensionalitat: Reduir el nombre de variables (p. ex., PCA).
2.3 Aprenentatge per Reforç
En l'aprenentatge per reforç, un agent aprèn a prendre decisions mitjançant interacció 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 l'Atari.
- Control Robòtic: Robots que aprenen a caminar o manipular objectes.
- Components d'un Algoritme d'Aprenentatge Automàtic
3.1 Dades
Les dades són el nucli de qualsevol projecte de ML. La qualitat i la quantitat de les dades poden influir significativament en el rendiment del model.
Tipus de Dades:
- Numèriques: Valors continus o discrets.
- Categòriques: Etiquetes o categories.
- Textuals: Paraules o frases.
- Imatges: Pixels.
3.2 Model
El model és una representació matemàtica que aprèn a partir de les dades. Pot ser una simple regressió lineal o una xarxa neuronal profunda.
3.3 Funció de Pèrdua
La funció de pèrdua mesura l'error del model. L'objectiu és minimitzar aquesta funció per millorar el rendiment del model.
Exemples de Funcions de Pèrdua:
- Error Quadràtic Mitjà (MSE): Utilitzat en regressió.
- Entropia Creuada: Utilitzat en classificació.
3.4 Algoritme d'Optimització
Els algoritmes d'optimització ajusten els paràmetres del model per minimitzar la funció de pèrdua.
Exemples:
- Gradient Descent: Un dels algoritmes d'optimització més comuns.
- Adam: Algoritme d'optimització avançat que ajusta les taxes d'aprenentatge.
- Procés de Desenvolupament d'un Model de ML
4.1 Recollida de Dades
Obtenir un conjunt de dades representatiu i de qualitat.
4.2 Preprocessament de Dades
Netejar i transformar les dades per fer-les adequades per al model.
Passos Comuns:
- Neteja de Dades: Tractar valors nuls i duplicats.
- Normalització: Escalar les dades perquè tinguin una distribució similar.
- Codificació: Convertir dades categòriques en numèriques.
4.3 Divisió de Dades
Dividir les dades en conjunts d'entrenament, validació i prova.
4.4 Selecció del Model
Triar un model adequat per al problema.
4.5 Entrenament del Model
Entrenar el model amb les dades d'entrenament.
4.6 Avaluació del Model
Avaluar el rendiment del model amb les dades de prova.
4.7 Ajust del Model
Ajustar els hiperparàmetres i millorar el model.
4.8 Desplegament
Desplegar el model en un entorn de producció.
- Exemple Pràctic: Classificació amb Regressió Logística
5.1 Descripció del Problema
Suposem que volem construir un model per predir si un correu electrònic és brossa o no brossa.
5.2 Recollida de Dades
Obtenim un conjunt de dades amb correus etiquetats com a "brossa" o "no brossa".
5.3 Preprocessament de Dades
Convertim el text dels correus en vectors de característiques utilitzant tècniques com TF-IDF.
5.4 Entrenament del Model
Utilitzem una regressió logística per entrenar el model.
from sklearn.model_selection import train_test_split from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.linear_model import LogisticRegression from sklearn.metrics import accuracy_score # Dades d'exemple correus = ["Aquest és un correu legítim", "Compra ara! Oferta limitada!", "Reunió a les 3 PM", "Guanya un iPhone gratis!"] etiquetes = [0, 1, 0, 1] # 0: No brossa, 1: Brossa # Divisió de dades X_train, X_test, y_train, y_test = train_test_split(correus, etiquetes, test_size=0.25, random_state=42) # Vectorització vectorizer = TfidfVectorizer() X_train_tfidf = vectorizer.fit_transform(X_train) X_test_tfidf = vectorizer.transform(X_test) # Entrenament del model model = LogisticRegression() model.fit(X_train_tfidf, y_train) # Predicció y_pred = model.predict(X_test_tfidf) # Avaluació accuracy = accuracy_score(y_test, y_pred) print(f'Precisió del model: {accuracy * 100:.2f}%')
5.5 Avaluació del Model
Avaluem el model utilitzant la precisió com a mètrica.
- Conclusió
En aquesta secció, hem introduït els conceptes bàsics de l'aprenentatge automàtic, incloent els tipus d'aprenentatge, els components d'un algoritme de ML i el procés de desenvolupament d'un model. També hem vist un exemple pràctic de classificació utilitzant regressió logística. En els següents temes, aprofundirem en diferents tipus d'algoritmes d'aprenentatge automàtic, com ara els algoritmes de classificació, regressió, xarxes neuronals i clustering.
Exercici Pràctic:
- Recollida de Dades: Troba un conjunt de dades públic que t'interessi (p. ex., dades de preus de cases, dades de sentiment de Twitter).
- Preprocessament de Dades: Neteja i transforma les dades per fer-les adequades per al model.
- Entrenament del Model: Tria un model de ML adequat i entrena'l amb les dades.
- Avaluació del Model: Avaluar el rendiment del model amb les dades de prova.
Solució:
Proporciona una solució detallada per a l'exercici pràctic, incloent el codi i les explicacions necessàries per entendre cada pas del procés.
Errors Comuns i Consells:
- Dades Imbalancejades: Si les teves dades estan desequilibrades (p. ex., moltes més mostres d'una classe que d'una altra), considera utilitzar tècniques com el sobremostreig o el submostreig.
- Overfitting: Si el teu model té un rendiment molt bo en les dades d'entrenament però pobre en les dades de prova, pot ser que estigui sobreajustat. Prova tècniques com la regularització o la validació creuada.
- Escalatge de Dades: Assegura't d'escalar les dades numèriques perquè tinguin una distribució similar, especialment si utilitzes models que són sensibles a l'escala de les dades, com les xarxes neuronals.
Amb aquesta base, estàs preparat per aprofundir en els diferents algoritmes d'aprenentatge automàtic que veurem en els següents temes del curs.
Algoritmes Avançats
Mòdul 1: Introducció als Algoritmes Avançats
Mòdul 2: Algoritmes d'Optimització
- Programació Lineal
- Algoritmes d'Optimització Combinatòria
- Algoritmes Genètics
- Optimització de Colònia de Formigues
Mòdul 3: Algoritmes en Grafs
- Representació de Grafs
- Cerca en Grafs: BFS i DFS
- Algoritmes de Camins Mínims
- Algoritmes de Flux Màxim
- Algoritmes d'Aparellament en Grafs
Mòdul 4: Algoritmes de Cerca i Ordenació
Mòdul 5: Algoritmes d'Aprenentatge Automàtic
- Introducció a l'Aprenentatge Automàtic
- Algoritmes de Classificació
- Algoritmes de Regressió
- Xarxes Neuronals i Deep Learning
- Algoritmes de Clustering
Mòdul 6: Casos d'Estudi i Aplicacions
- Optimització en la Indústria
- Aplicacions de Grafs en Xarxes Socials
- Cerca i Ordenació en Grans Volums de Dades
- Aplicacions d'Aprenentatge Automàtic en la Vida Real