0% encontró este documento útil (0 votos)
7 vistas5 páginas

Módulo 5 Redes Neuronales y Deep Learning

El documento aborda los conceptos fundamentales de las redes neuronales y el deep learning, describiendo su estructura, funcionamiento y tipos como el perceptrón y el perceptrón multicapa. Se explican las funciones de activación, el algoritmo de retropropagación para el entrenamiento y se introducen las bibliotecas TensorFlow y PyTorch para implementar redes neuronales. Además, se incluyen ejemplos de código para crear redes neuronales simples en ambas plataformas.

Cargado por

Alejandro Sierra
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
7 vistas5 páginas

Módulo 5 Redes Neuronales y Deep Learning

El documento aborda los conceptos fundamentales de las redes neuronales y el deep learning, describiendo su estructura, funcionamiento y tipos como el perceptrón y el perceptrón multicapa. Se explican las funciones de activación, el algoritmo de retropropagación para el entrenamiento y se introducen las bibliotecas TensorFlow y PyTorch para implementar redes neuronales. Además, se incluyen ejemplos de código para crear redes neuronales simples en ambas plataformas.

Cargado por

Alejandro Sierra
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 5

Módulo 5: Redes Neuronales y Deep Learning

1. Conceptos básicos de redes neuronales

Las redes neuronales son sistemas computacionales inspirados en la estructura y


funcionamiento del cerebro humano. Están diseñadas para reconocer patrones y
aprender de los datos a través de un proceso conocido como aprendizaje automático
(machine learning). Son una clase de algoritmos dentro del deep learning (aprendizaje
profundo) y se componen de nodos llamados neuronas organizadas en diferentes capas.

Estructura básica de una red neuronal:

 Neuronas: Son unidades de procesamiento que reciben entradas, las procesan y


generan una salida.
 Capas: Una red neuronal se compone de capas de neuronas. Típicamente, se
tiene:
o Capa de entrada: Recibe los datos de entrada.
o Capas ocultas: Realizan el procesamiento y aprendizaje.
o Capa de salida: Devuelve la predicción o clasificación.

Funcionamiento:

1. Entrada: Los datos (por ejemplo, imágenes o texto) se introducen en la capa de


entrada.
2. Propagación hacia adelante: Los datos pasan a través de las capas ocultas,
donde cada neurona realiza una operación matemática (producto punto de las
entradas y pesos + un sesgo) y pasa la salida a la siguiente capa.
3. Salida: La salida final se genera en la capa de salida.
4. Aprendizaje: Para mejorar la predicción, se ajustan los pesos mediante un
proceso de retroalimentación, donde los errores se utilizan para ajustar los
parámetros.

2. Perceptrón y Perceptrón Multicapa (MLP)

Perceptrón:

El perceptrón es el modelo más simple de red neuronal, usado principalmente para


clasificación binaria (sí/no). Se compone de una única neurona con entradas, un
conjunto de pesos, y una función de activación.

Fórmula:

y=f(∑i=1nwixi+b)y = f\left( \sum_{i=1}^{n} w_i x_i + b \right)y=f(i=1∑nwixi+b)

 xix_ixi son las entradas.


 wiw_iwi son los pesos asociados a cada entrada.
 bbb es el sesgo.
 fff es la función de activación.
Funcionamiento:

 La suma ponderada de las entradas se pasa a través de la función de activación


(por ejemplo, una función escalón que decide si la salida es 0 o 1).
 Durante el proceso de entrenamiento, los pesos se ajustan para minimizar el
error utilizando un algoritmo como el algoritmo de descenso de gradiente.

Perceptrón Multicapa (MLP):

El Perceptrón Multicapa (MLP) es una extensión del perceptrón, que incluye varias
capas ocultas. Esto le permite resolver problemas no lineales, como la clasificación de
imágenes o la predicción de series temporales.

Características:

 Varias capas de neuronas (al menos una capa oculta).


 Funciones de activación no lineales.
 Capacidad para resolver problemas más complejos.

Arquitectura:

 Capa de entrada: Recibe los datos de entrada.


 Capas ocultas: Procesan los datos, donde se aplican las funciones de activación.
 Capa de salida: Genera la salida final, que puede ser una clasificación,
regresión o cualquier otro tipo de predicción.

3. Funciones de activación

Las funciones de activación determinan si una neurona debe activarse o no,


transformando la suma ponderada de las entradas en la salida. Estas funciones permiten
que las redes neuronales modelen relaciones no lineales en los datos.

ReLU (Rectified Linear Unit):

La función ReLU es la más comúnmente usada en redes neuronales profundas.


Devuelve 0 si la entrada es negativa, y la entrada misma si es positiva.

f(x)=max⁡(0,x)f(x) = \max(0, x)f(x)=max(0,x)

Ventajas:

 Computacionalmente eficiente.
 No sufre de problemas de gradientes pequeños (vanishing gradients).

Desventaja:

 El problema de las neuronas muertas, cuando las entradas se vuelven


negativas durante el entrenamiento y las neuronas no aprenden.
Sigmoide:

La función sigmoide mapea cualquier valor real entre 0 y 1. Es especialmente útil para
problemas de clasificación binaria.

f(x)=11+e−xf(x) = \frac{1}{1 + e^{-x}}f(x)=1+e−x1

Ventajas:

 Salida entre 0 y 1, lo que la hace adecuada para problemas de clasificación


binaria.

Desventaja:

 Vanishing gradients: Los gradientes pueden volverse muy pequeños, lo que


dificulta el entrenamiento en redes profundas.

Softmax:

La función Softmax convierte un vector de valores en una distribución de probabilidad,


donde cada valor está entre 0 y 1 y la suma de todas las salidas es 1. Es utilizada en la
capa de salida para clasificación multiclase.

f(xi)=exi∑jexjf(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}}f(xi)=∑jexjexi

Ventajas:

 Ideal para problemas de clasificación multiclase, ya que convierte las salidas en


probabilidades.

4. Backpropagation y optimización de redes

Backpropagation (retropropagación) es el algoritmo de entrenamiento fundamental de


las redes neuronales. Permite ajustar los pesos de las redes para minimizar el error.
Funciona de la siguiente manera:

1. Propagación hacia adelante: Los datos se pasan a través de la red, y se calcula


la salida.
2. Cálculo del error: Se compara la salida de la red con la salida esperada, y se
calcula el error.
3. Propagación hacia atrás: El error se propaga hacia atrás a través de la red para
calcular el gradiente del error respecto a cada peso.
4. Actualización de pesos: Los pesos se actualizan en la dirección opuesta al
gradiente (utilizando un algoritmo como el descenso de gradiente), con el
objetivo de reducir el error.

Algoritmos de optimización:
 Descenso de gradiente estocástico (SGD): Se actualizan los pesos utilizando
una muestra aleatoria de los datos.
 Adam (Adaptive Moment Estimation): Es un algoritmo más avanzado que
ajusta dinámicamente la tasa de aprendizaje.

5. Introducción a TensorFlow y PyTorch

TensorFlow y PyTorch son dos de las bibliotecas más populares para implementar
redes neuronales.

TensorFlow:

 Desarrollado por Google, TensorFlow es una plataforma completa para la


creación y entrenamiento de redes neuronales.
 Utiliza un enfoque basado en grafos de computación. Los nodos del grafo
representan operaciones matemáticas, y las conexiones entre ellos representan
los datos.
 Es muy utilizado en producción debido a su eficiencia y capacidad para escalar a
sistemas distribuidos.

Código de ejemplo (creando una red neuronal simple en TensorFlow):

python
Copiar código
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense

# Crear un modelo secuencial


model = Sequential()

# Capa de entrada (2 neuronas)


model.add(Dense(2, input_dim=2, activation='relu'))

# Capa oculta
model.add(Dense(3, activation='relu'))

# Capa de salida
model.add(Dense(1, activation='sigmoid'))

# Compilar el modelo
model.compile(loss='binary_crossentropy', optimizer='adam',
metrics=['accuracy'])

# Entrenar el modelo
model.fit(X_train, y_train, epochs=10, batch_size=32)

PyTorch:

 Desarrollado por Facebook, PyTorch es más flexible y dinámico que


TensorFlow, permitiendo modificar el grafo de computación durante la
ejecución (enfoque de "define-by-run").
 Es muy popular en la investigación debido a su simplicidad y flexibilidad.

Código de ejemplo (creando una red neuronal simple en PyTorch):

python
Copiar código
import torch
import torch.nn as nn
import torch.optim as optim

# Definir la red neuronal


class MLP(nn.Module):
def __init__(self):
super(MLP, self).__init__()
self.fc1 = nn.Linear(2, 3) # Capa oculta
self.fc2 = nn.Linear(3, 1) # Capa de salida

def forward(self, x):


x = torch.relu(self.fc1(x))
x = torch.sigmoid(self.fc2(x))
return x

# Crear una instancia de la red


model = MLP()

# Definir el criterio de pérdida y el optimizador


criterion = nn.BCELoss()
optimizer = optim.Adam(model.parameters(), lr=0.001)

# Entrenamiento
for epoch in range(10):
# Entrenar aquí
optimizer.zero_grad()
output = model(X_train)
loss = criterion(output, y_train)
loss.backward()
optimizer.step()

También podría gustarte