Introducció
Les xarxes neuronals artificials (ANNs) i el deep learning són tècniques fonamentals en l'aprenentatge automàtic. Aquestes tècniques s'inspiren en la manera en què el cervell humà processa la informació i són capaces d'aprendre i generalitzar a partir de grans quantitats de dades.
Objectius del Tema
- Comprendre els conceptes bàsics de les xarxes neuronals.
- Aprendre sobre les arquitectures de xarxes neuronals profundes.
- Implementar una xarxa neuronal simple utilitzant una biblioteca de deep learning.
- Conèixer les aplicacions pràctiques del deep learning.
Conceptes Bàsics de les Xarxes Neuronals
Neurona Artificial
Una neurona artificial és la unitat bàsica d'una xarxa neuronal. Es compon de:
- Entrades (x1, x2, ..., xn): Valors d'entrada.
- Peses (w1, w2, ..., wn): Coeficients que ponderen les entrades.
- Funció d'Activació (f): Funció que transforma la suma ponderada de les entrades.
- Sortida (y): Resultat de la funció d'activació.
Fórmula de la Neurona
\[ y = f\left(\sum_{i=1}^{n} w_i x_i + b\right) \] On \( b \) és el biaix (bias).
Funcions d'Activació
Les funcions d'activació introdueixen no linealitat en el model. Algunes de les més comunes són:
- Sigmoide: \( f(x) = \frac{1}{1 + e^{-x}} \)
- ReLU (Rectified Linear Unit): \( f(x) = \max(0, x) \)
- Tanh: \( f(x) = \tanh(x) \)
Arquitectura de Xarxes Neuronals
Les xarxes neuronals es poden classificar segons la seva arquitectura:
- Perceptró Multicapa (MLP): Xarxa amb capes d'entrada, ocultes i de sortida.
- Xarxes Convolucionals (CNN): Utilitzades principalment per a processament d'imatges.
- Xarxes Recurrentes (RNN): Adequades per a dades seqüencials com text o sèries temporals.
Xarxes Neuronals Profundes (Deep Learning)
Definició
El deep learning fa referència a xarxes neuronals amb múltiples capes ocultes, permetent la modelització de relacions complexes en les dades.
Arquitectures Comunes
- CNN (Convolutional Neural Networks): Per a tasques de visió per computador.
- RNN (Recurrent Neural Networks): Per a tasques de processament de seqüències.
- GAN (Generative Adversarial Networks): Per a generació de dades sintètiques.
Implementació d'una Xarxa Neuronal Simple
Llibreria: TensorFlow/Keras
import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # Definir el model model = Sequential([ Dense(64, activation='relu', input_shape=(input_dim,)), Dense(64, activation='relu'), Dense(1, activation='sigmoid') ]) # Compilar el model model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) # Entrenar el model model.fit(X_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
Explicació del Codi
- Importació de Llibreries: Importem TensorFlow i Keras.
- Definició del Model: Utilitzem
Sequential
per crear una xarxa amb capes seqüencials. - Capas:
Dense(64, activation='relu', input_shape=(input_dim,))
: Capa densa amb 64 neurones i funció d'activació ReLU.Dense(1, activation='sigmoid')
: Capa de sortida amb una neurona i funció d'activació sigmoide.
- Compilació: Especificar l'optimitzador, la funció de pèrdua i les mètriques.
- Entrenament: Entrenem el model amb les dades d'entrenament.
Aplicacions Pràctiques del Deep Learning
- Visió per Computador: Reconeixement d'imatges, detecció d'objectes.
- Processament del Llenguatge Natural (NLP): Traducció automàtica, anàlisi de sentiments.
- Vehicles Autònoms: Navegació i detecció d'obstacles.
- Salut: Diagnòstic d'imatges mèdiques, predicció de malalties.
Exercicis Pràctics
Exercici 1: Implementar una Xarxa Neuronal per Classificació de Dígits
Utilitza el conjunt de dades MNIST per entrenar una xarxa neuronal que classifiqui dígits manuscrits.
Pasos:
- Carrega el conjunt de dades MNIST.
- Preprocessa les dades (normalització).
- Defineix i entrena una xarxa neuronal.
- Avalua el model.
Exercici 2: Crear una CNN per Classificació d'Imatges
Utilitza el conjunt de dades CIFAR-10 per entrenar una xarxa convolucional que classifiqui imatges en 10 categories.
Pasos:
- Carrega el conjunt de dades CIFAR-10.
- Preprocessa les dades (normalització i augmentació).
- Defineix i entrena una CNN.
- Avalua el model.
Resum
En aquest tema, hem explorat els conceptes bàsics de les xarxes neuronals i el deep learning. Hem après sobre les arquitectures de xarxes neuronals profundes i hem implementat una xarxa neuronal simple utilitzant TensorFlow/Keras. Finalment, hem vist algunes aplicacions pràctiques del deep learning i hem proposat exercicis pràctics per reforçar els conceptes apresos.
Preparació per al Següent Tema
En el següent tema, explorarem els Algoritmes de Clustering, una tècnica d'aprenentatge no supervisat per agrupar dades similars.
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