Les xarxes neuronals són un component fonamental de la intel·ligència artificial moderna, especialment en el camp del deep learning. Aquestes estructures estan inspirades en el funcionament del cervell humà i són capaces d'aprendre i generalitzar a partir de dades. En aquesta secció, explorarem els conceptes bàsics de les xarxes neuronals, la seva estructura i el seu funcionament.
- Què són les Xarxes Neuronals?
Les xarxes neuronals són models computacionals que imiten la manera en què les neurones del cervell humà processen la informació. Estan formades per capes de neurones artificials, també conegudes com a nodes, que estan connectades entre si.
Conceptes Clau:
- Neurona Artificial: La unitat bàsica d'una xarxa neuronal. Cada neurona rep entrades, les processa i genera una sortida.
- Capa: Les neurones estan organitzades en capes. Hi ha tres tipus principals de capes:
- Capa d'Entrada: Rep les dades d'entrada.
- Capa Oculta: Processa les dades. Pot haver-hi múltiples capes ocultes.
- Capa de Sortida: Genera la sortida final del model.
- Pesos: Els pesos determinen la importància de cada entrada a una neurona. Són ajustats durant l'entrenament.
- Funció d'Activació: Determina si una neurona ha de ser activada o no. Algunes funcions d'activació comunes són ReLU, Sigmoid i Tanh.
- Estructura d'una Xarxa Neuronal
Una xarxa neuronal típica consta de diverses capes de neurones, cadascuna de les quals està connectada a la següent capa. A continuació, es mostra un exemple d'una xarxa neuronal amb una capa d'entrada, dues capes ocultes i una capa de sortida:
Exemple de Codi:
A continuació, es mostra un exemple senzill de com crear una xarxa neuronal utilitzant la llibreria Keras en Python:
import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # Crear el model model = Sequential() # Afegir la capa d'entrada i la primera capa oculta model.add(Dense(units=64, activation='relu', input_shape=(input_dim,))) # Afegir la segona capa oculta model.add(Dense(units=64, activation='relu')) # Afegir la capa de sortida model.add(Dense(units=output_dim, activation='softmax')) # Compilar el model model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # Resum del model model.summary()
Explicació del Codi:
- Sequential: Crea un model seqüencial, que és una pila lineal de capes.
- Dense: Afegeix una capa densament connectada (fully connected).
- units: Nombre de neurones en la capa.
- activation: Funció d'activació utilitzada per la capa.
- input_shape: Forma de les dades d'entrada (necessària només per la primera capa).
- compile: Configura el model per a l'entrenament.
- summary: Mostra un resum de l'arquitectura del model.
- Funcionament d'una Xarxa Neuronal
El procés d'aprenentatge d'una xarxa neuronal implica els següents passos:
- Inicialització: Els pesos de les connexions entre neurones es inicialitzen amb valors aleatoris.
- Propagació Endavant (Forward Propagation): Les dades d'entrada es passen a través de la xarxa capa per capa fins a obtenir la sortida.
- Càlcul de la Pèrdua: Es calcula l'error o pèrdua comparant la sortida de la xarxa amb la sortida desitjada.
- Propagació Enrere (Backpropagation): L'error es propaga enrere a través de la xarxa per ajustar els pesos.
- Actualització dels Pesos: Els pesos es modifiquen utilitzant un algorisme d'optimització (com l'Adam o el Gradient Descent) per minimitzar l'error.
Aquest procés es repeteix moltes vegades (epochs) fins que la xarxa neuronal aprèn a realitzar la tasca desitjada amb una precisió acceptable.
- Aplicacions de les Xarxes Neuronals
Les xarxes neuronals tenen una àmplia gamma d'aplicacions en diversos camps, incloent:
- Reconeixement d'Imatges: Classificació d'imatges, detecció d'objectes, segmentació d'imatges.
- Processament de Llenguatge Natural (NLP): Traducció automàtica, anàlisi de sentiments, generació de text.
- Jocs i Simulacions: Agents intel·ligents per a jocs, simulacions de sistemes complexos.
- Salut: Diagnòstic de malalties, anàlisi d'imatges mèdiques, predicció de resultats clínics.
Exercici Pràctic
Exercici:
Crea una xarxa neuronal utilitzant Keras per classificar el conjunt de dades MNIST (dígits manuscrits).
Solució:
import tensorflow as tf from tensorflow.keras.datasets import mnist from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense, Flatten from tensorflow.keras.utils import to_categorical # Carregar el conjunt de dades MNIST (x_train, y_train), (x_test, y_test) = mnist.load_data() # Preprocessar les dades x_train = x_train / 255.0 x_test = x_test / 255.0 y_train = to_categorical(y_train, 10) y_test = to_categorical(y_test, 10) # Crear el model model = Sequential() model.add(Flatten(input_shape=(28, 28))) model.add(Dense(units=128, activation='relu')) model.add(Dense(units=10, activation='softmax')) # Compilar el model model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy']) # Entrenar el model model.fit(x_train, y_train, epochs=10, batch_size=32, validation_data=(x_test, y_test)) # Avaluar el model loss, accuracy = model.evaluate(x_test, y_test) print(f'Loss: {loss}, Accuracy: {accuracy}')
Explicació del Codi:
- mnist.load_data(): Carrega el conjunt de dades MNIST.
- Flatten: Converteix les imatges 2D en vectors 1D.
- Dense: Afegeix capes densament connectades.
- to_categorical: Converteix les etiquetes en vectors one-hot.
- fit: Entrena el model.
- evaluate: Avalua el model amb les dades de test.
Conclusió
En aquesta secció, hem introduït els conceptes bàsics de les xarxes neuronals, la seva estructura i el seu funcionament. També hem vist un exemple pràctic de com crear i entrenar una xarxa neuronal utilitzant la llibreria Keras. Les xarxes neuronals són una eina poderosa en el camp de la intel·ligència artificial i tenen una àmplia gamma d'aplicacions en diversos camps. En les properes seccions, explorarem més a fons les arquitectures de xarxes neuronals i les seves aplicacions en el deep learning.
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