¿Qué es una Red Neuronal?
Una red neuronal artificial es un modelo computacional inspirado en el funcionamiento del cerebro humano. Consiste en capas de neuronas interconectadas que procesan información.
Arquitectura Básica
flowchart LR
subgraph Input [Capa de Entrada]
I1[x1]
I2[x2]
I3[x3]
end
subgraph Hidden [Capa Oculta]
H1[h1]
H2[h2]
H3[h3]
H4[h4]
end
subgraph Output [Capa de Salida]
O1[y]
end
I1 --> H1
I1 --> H2
I1 --> H3
I1 --> H4
I2 --> H1
I2 --> H2
I2 --> H3
I2 --> H4
I3 --> H1
I3 --> H2
I3 --> H3
I3 --> H4
H1 --> O1
H2 --> O1
H3 --> O1
H4 --> O1
Componentes Clave
1. Neurona (Perceptrón)
Cada neurona realiza:
- Suma ponderada de entradas
- Aplica función de activación
- Produce una salida
2. Funciones de Activación
| Función | Fórmula | Uso |
|---|---|---|
| ReLU | $f(x) = max(0, x)$ | Capas ocultas |
| Sigmoid | $f(x) = \frac{1}{1+e^{-x}}$ | Clasificación binaria |
| Softmax | $f(x_i) = \frac{e^{x_i}}{\sum_j e^{x_j}}$ | Clasificación multiclase |
Implementación en PyTorch
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import torch
import torch.nn as nn
class SimpleNN(nn.Module):
def __init__(self, input_size, hidden_size, output_size):
super(SimpleNN, self).__init__()
self.layer1 = nn.Linear(input_size, hidden_size)
self.relu = nn.ReLU()
self.layer2 = nn.Linear(hidden_size, output_size)
def forward(self, x):
x = self.layer1(x)
x = self.relu(x)
x = self.layer2(x)
return x
# Crear modelo
model = SimpleNN(input_size=784, hidden_size=128, output_size=10)
# Ver arquitectura
print(model)
Proceso de Entrenamiento
flowchart TD
A[Datos de entrada] --> B[Forward Pass]
B --> C[Calcular Loss]
C --> D[Backward Pass]
D --> E[Actualizar Pesos]
E --> F{¿Convergió?}
F -->|No| A
F -->|Sí| G[Modelo Entrenado]
Comentarios