Integrantes:
ISMAEL RUFINO GRAJEDA MARÍN
RUBEN CRUZ GARCIA MENDEZ
Asesor: DR. DANIEL GONZÁLEZ SCARPULLI
Aplicar los conceptos relacionados con las Redes Neuronales Artificiales (RNA) como uno de los paradigmas utilizados en el aprendizaje automático o aprendizaje de máquina (Machine Learning).
Las redes neuronales artificiales son modelos simples del funcionamiento del sistema nervioso. Como define IBM (2021):
Las redes neuronales artificiales son modelos simples del funcionamiento del sistema nervioso. Las unidades básicas son las neuronas, que generalmente se organizan en capas. Una red neuronal es un modelo simplificado que emula el modo en que el cerebro humano procesa la información: Funciona por el trabajo simultáneo de un número elevado de unidades de procesamiento interconectadas que parecen versiones abstractas de neuronas.
- Capa de entrada: Recibe los datos de entrada
- Capas ocultas: Procesan la información
- Capa de salida: Produce el resultado final
- Pesos y sesgos: Se ajustan durante el entrenamiento
Ver notebook de la Actividad 1
Implementación de una red neuronal con una capa de entrada y una de salida para convertir temperaturas.
- Capa de entrada: 1 neurona
- Capa de salida: 1 neurona
- Función de activación: Lineal
- Optimizador: Adam (tasa de aprendizaje: 0.1)
import tensorflow as tf
import numpy as np
# Datos de entrenamiento
centigrados = np.array([-40, -10, 0, 8, 15, 22, 38], dtype=float)
fahrenheit = np.array([-40, 14, 32, 46, 59, 72, 100], dtype=float)
# Modelo
capa = tf.keras.layers.Dense(units=1, input_shape=[1])
modelo = tf.keras.Sequential([capa])Ver notebook de la Actividad 2
Modificación del modelo para incluir dos capas ocultas de 3 neuronas cada una.
- Capa de entrada: 1 neurona
- Primera capa oculta: 3 neuronas
- Segunda capa oculta: 3 neuronas
- Capa de salida: 1 neurona
Ver notebook de la Actividad 3
Modelo: Sequential
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense (Dense) (None, 8) 16
dense_1 (Dense) (None, 6) 54
dense_2 (Dense) (None, 4) 28
dense_3 (Dense) (None, 1) 5
=================================================================
Total params: 103 (412 bytes)
Trainable params: 103 (412 bytes)
Non-trainable params: 0 (0 bytes)
_________________________________________________________________
-
Capa de Entrada + Primera Capa Oculta:
- Unidades: 8 neuronas
- Función de activación: ReLU
- Parámetros: 16 (8 pesos + 8 sesgos)
-
Segunda Capa Oculta:
- Unidades: 6 neuronas
- Función de activación: ReLU
- Parámetros: 54 (48 pesos + 6 sesgos)
-
Tercera Capa Oculta:
- Unidades: 4 neuronas
- Función de activación: ReLU
- Parámetros: 28 (24 pesos + 4 sesgos)
-
Capa de Salida:
- Unidades: 1 neurona
- Función de activación: Lineal
- Parámetros: 5 (4 pesos + 1 sesgo)
- Optimizador: Adam
- Tasa de aprendizaje: 0.01
- Función de pérdida: Error Cuadrático Medio (MSE)
- Épocas de entrenamiento: 1000
- Temperaturas Celsius: [-40, -10, 0, 8, 15, 22, 38, 45, 50, 60, 70, 80, 90, 100]
- Temperaturas Fahrenheit: [-40, 14, 32, 46, 59, 72, 100, 113, 122, 140, 158, 176, 194, 212]
El gráfico muestra la evolución de la pérdida (error) durante el entrenamiento:
- Fase inicial (0-100 épocas): Se observa una rápida disminución del error desde aproximadamente 14000 hasta cerca de 500, indicando un aprendizaje acelerado inicial.
- Fase intermedia (100-400 épocas): La reducción del error se vuelve más gradual, estabilizándose alrededor de 100.
- Fase final (400-1000 épocas): El error se mantiene estable en un valor muy bajo, indicando que el modelo ha alcanzado un punto óptimo de convergencia.
- El modelo muestra una convergencia exitosa, con una reducción significativa del error a lo largo del entrenamiento
- La estabilización de la pérdida después de 400 épocas sugiere que el modelo ha encontrado un mínimo local satisfactorio
- El comportamiento de la curva de pérdida indica que el modelo ha aprendido efectivamente la relación entre las temperaturas
- Las redes neuronales demostraron ser efectivas para aprender relaciones matemáticas, incluso con arquitecturas simples
- El uso de TensorFlow y Keras facilita la implementación de modelos de redes neuronales
- La elección de hiperparámetros (tasa de aprendizaje, número de épocas) es crucial para el éxito del entrenamiento
- El modelo muestra mejor desempeño dentro del rango de datos de entrenamiento
- La visualización de la pérdida durante el entrenamiento permite verificar el proceso de aprendizaje y la convergencia del modelo
- Python 3.x
- TensorFlow
- NumPy
- Matplotlib
- Clonar el repositorio
- Crear un entorno virtual:
python -m venv .venv
- Activar el entorno virtual:
source .venv/bin/activate # En Linux/Mac
- Instalar las dependencias:
pip install tensorflow numpy matplotlib
- Activar el entorno virtual
- Abrir los notebooks con Jupyter:
jupyter notebook
- Ejecutar las celdas en orden
Del Brío, B. M., & Sanz, A. (2006). Redes neuronales y sistemas borrosos (3a ed.). Editorial Ra-Ma.
Amaya, L. (s.f.). Redes NEURALES - curso- Fundamentos - luisamayateacher. Google Sites. https://sites.google.com/site/luisamayateacher/redes-neurales---curso
Barragán, A. (2020, 1 de septiembre). ¿Qué es Una red neuronal artificial? CEBE Belgica. https://cebebelgica.es/es_ES/blog/10/que-es-una-red-neuronal-artificial.html
Documentos de IBM. (2021). IBM - Estados Unidos. https://www.ibm.com/docs/es/spss-modeler/SaaS?topic=networks-neural-model
RingaTech. (s.f.). Tu primera red neuronal en Python y Tensorflow [Video]. Youtube. https://www.youtube.com/watch?v=iX_on3VxZzk

