Redes Neuronales Recurrentes en Educación Superior

 

Redes Neuronales Recurrentes en Educación Superior.ipynb


Volver

Redes Neuronales Recurrentes en Educación Superior

Dividiremos el contenido en tres secciones principales: Contenido (Conocimientos Conceptuales – Marco teórico), Script de Python (Habilidades – Procedimientos), y Conclusiones (Actitudes y Valoraciones).

Contenido (Conocimientos Conceptuales – Marco Teórico)

Introducción a las Redes Neuronales Recurrentes (RNN)


Esta imagen representa una Red Neuronal Recurrente (RNN) que muestra los bucles dentro de la estructura de la red, indicando el flujo de información que vuelve a entrar en la red para el procesamiento de secuencias. 

Las Redes Neuronales Recurrentes (RNN) son un tipo de red neuronal artificial diseñada para reconocer patrones en secuencias de datos, como series temporales, texto, audio, o cualquier otra forma de datos secuenciales. A diferencia de las redes neuronales tradicionales, que asumen que todas las entradas (y salidas) son independientes entre sí, las RNN tienen bucles que permiten que la información persista.



Ejemplo Conceptual: Procesamiento de Lenguaje Natural (PLN)

Un ejemplo clásico de aplicación de RNN es el Procesamiento de Lenguaje Natural (PLN). Cuando lees una oración, tu comprensión de cada palabra está influenciada por las palabras que la preceden. Las RNN aplican un principio similar: al procesar una palabra en un texto, la red "recuerda" la información de las palabras anteriores, lo que le ayuda a realizar tareas como predicción de texto o análisis de sentimientos.

Ejemplo Educativo: Análisis de Sentimientos en Evaluaciones de Cursos

En el contexto educativo, las RNN pueden utilizarse para analizar comentarios de estudiantes sobre cursos en encuestas de evaluación. Por ejemplo, una RNN entrenada en un conjunto de datos de comentarios etiquetados con sentimientos positivos o negativos podría automáticamente clasificar nuevos comentarios, ayudando a los educadores a comprender mejor las percepciones estudiantiles y ajustar su pedagogía en consecuencia.

Aplicaciones en Educación Superior

Las RNN ofrecen varias aplicaciones potenciales en la educación superior, algunas de las cuales incluyen:

Personalización del Aprendizaje: Mediante el análisis de datos de comportamiento estudiantil en plataformas de aprendizaje en línea, una RNN puede identificar patrones y predecir necesidades de aprendizaje individuales, permitiendo la adaptación del contenido para satisfacer estas necesidades específicas.

Predicción de Deserción Estudiantil: Al analizar secuencias de calificaciones, participación en actividades en línea y otros indicadores, las RNN pueden predecir qué estudiantes están en riesgo de abandonar sus estudios, permitiendo intervenciones tempranas.

Ejemplo Práctico: Tutoría Automatizada

Imagina un sistema de tutoría automatizado que utiliza RNN para adaptar ejercicios y material de estudio basado en las respuestas anteriores del estudiante. Si un estudiante muestra dificultad en un concepto particular, la RNN puede detectar este patrón y ajustar el material de aprendizaje para proporcionar refuerzo adicional en áreas débiles, simulando un enfoque de enseñanza personalizada que sería muy difícil de escalar en entornos educativos tradicionales.

Ventajas y Desafíos

Las RNN pueden transformar la educación superior ofreciendo un aprendizaje más personalizado y adaptativo. Sin embargo, su implementación conlleva desafíos técnicos, como la necesidad de grandes conjuntos de datos etiquetados para entrenamiento y la complejidad de interpretar modelos de RNN. Además, existen preocupaciones éticas relacionadas con la privacidad de los datos estudiantiles y el sesgo potencial en los algoritmos de aprendizaje automático.

Script Python (Habilidades – Procedimientos)

Este ejemplo se centrará en un modelo simple de RNN que puede ser utilizado, por ejemplo, para predecir la próxima palabra en un texto, lo cual es relevante para sistemas de tutoría automatizada o herramientas de apoyo a la redacción académica.

Preparativos Iniciales

Primero, asegúrate de tener instaladas las librerías necesarias. Para este ejemplo, utilizaremos TensorFlow, que incluye la API de Keras, facilitando la construcción y entrenamiento de modelos de RNN.

pip install tensorflow

RESULTADOS

Requirement already satisfied: tensorflow in /usr/local/lib/python3.10/dist-packages (2.15.0)

Requirement already satisfied: absl-py>=1.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.4.0)

Requirement already satisfied: astunparse>=1.6.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.6.3)

Requirement already satisfied: flatbuffers>=23.5.26 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (23.5.26)

Requirement already satisfied: gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.5.4)

Requirement already satisfied: google-pasta>=0.1.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)

Requirement already satisfied: h5py>=2.9.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.9.0)

Requirement already satisfied: libclang>=13.0.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (16.0.6)

Requirement already satisfied: ml-dtypes~=0.2.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.2.0)

Requirement already satisfied: numpy<2.0.0,>=1.23.5 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.23.5)

Requirement already satisfied: opt-einsum>=2.3.2 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.3.0)

Requirement already satisfied: packaging in /usr/local/lib/python3.10/dist-packages (from tensorflow) (23.2)

Requirement already satisfied: protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (3.20.3)

Requirement already satisfied: setuptools in /usr/local/lib/python3.10/dist-packages (from tensorflow) (67.7.2)

Requirement already satisfied: six>=1.12.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.16.0)

Requirement already satisfied: termcolor>=1.1.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.4.0)

Requirement already satisfied: typing-extensions>=3.6.6 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (4.5.0)

Requirement already satisfied: wrapt<1.15,>=1.11.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.14.1)

Requirement already satisfied: tensorflow-io-gcs-filesystem>=0.23.1 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (0.35.0)

Requirement already satisfied: grpcio<2.0,>=1.24.3 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (1.60.0)

Requirement already satisfied: tensorboard<2.16,>=2.15 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.1)

Requirement already satisfied: tensorflow-estimator<2.16,>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.0)

Requirement already satisfied: keras<2.16,>=2.15.0 in /usr/local/lib/python3.10/dist-packages (from tensorflow) (2.15.0)

Requirement already satisfied: wheel<1.0,>=0.23.0 in /usr/local/lib/python3.10/dist-packages (from astunparse>=1.6.0->tensorflow) (0.42.0)

Requirement already satisfied: google-auth<3,>=1.6.3 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.17.3)

Requirement already satisfied: google-auth-oauthlib<2,>=0.5 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (1.2.0)

Requirement already satisfied: markdown>=2.6.8 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.5.2)

Requirement already satisfied: requests<3,>=2.21.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (2.31.0)

Requirement already satisfied: tensorboard-data-server<0.8.0,>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (0.7.2)

Requirement already satisfied: werkzeug>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from tensorboard<2.16,>=2.15->tensorflow) (3.0.1)

Requirement already satisfied: cachetools<6.0,>=2.0.0 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (5.3.2)

Requirement already satisfied: pyasn1-modules>=0.2.1 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.3.0)

Requirement already satisfied: rsa<5,>=3.1.4 in /usr/local/lib/python3.10/dist-packages (from google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (4.9)

Requirement already satisfied: requests-oauthlib>=0.7.0 in /usr/local/lib/python3.10/dist-packages (from google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (1.3.1)

Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.3.2)

Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (3.6)

Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (2.0.7)

Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests<3,>=2.21.0->tensorboard<2.16,>=2.15->tensorflow) (2023.11.17)

Requirement already satisfied: MarkupSafe>=2.1.1 in /usr/local/lib/python3.10/dist-packages (from werkzeug>=1.0.1->tensorboard<2.16,>=2.15->tensorflow) (2.1.4)

Requirement already satisfied: pyasn1<0.6.0,>=0.4.6 in /usr/local/lib/python3.10/dist-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.16,>=2.15->tensorflow) (0.5.1)

Requirement already satisfied: oauthlib>=3.0.0 in /usr/local/lib/python3.10/dist-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<2,>=0.5->tensorboard<2.16,>=2.15->tensorflow) (3.2.2)


Paso 1: Importar Librerías

import tensorflow as tf

from tensorflow.keras.preprocessing.text import Tokenizer

from tensorflow.keras.preprocessing.sequence import pad_sequences

from tensorflow.keras.models import Sequential

from tensorflow.keras.layers import Embedding, SimpleRNN, Dense

Paso 2: Preparación de Datos

Para este ejemplo, vamos a simular un pequeño conjunto de datos de texto que podría representar fragmentos de materiales de curso o publicaciones académicas.

# Ejemplo de datos: oraciones de ejemplo que podrían ser parte de materiales educativos.

textos = [

    "La inteligencia artificial es una rama de la informática.",

    "Las redes neuronales permiten modelar relaciones complejas.",

    "El aprendizaje profundo ha revolucionado el campo de la visión por computadora.",

    "Los algoritmos de aprendizaje automático pueden aprender de los datos.",

    "La educación superior se beneficia de la tecnología educativa."

]

 

# Tokenización y creación de secuencias

tokenizer = Tokenizer()

tokenizer.fit_on_texts(textos)

sequences = tokenizer.texts_to_sequences(textos)

 

# Preparar datos de entrada y salida (X, y) para la RNN

vocab_size = len(tokenizer.word_index) + 1  # Agregando 1 por el índice 0

max_length = max([len(seq) for seq in sequences])

sequences = pad_sequences(sequences, maxlen=max_length, padding='pre')

 

# Separar datos en entrada (X) y salida (y)

import numpy as np

 

X, y = sequences[:, :-1], sequences[:, -1]

y = tf.keras.utils.to_categorical(y, num_classes=vocab_size)

Paso 3: Construir el Modelo RNN

model = Sequential([

    Embedding(vocab_size, 10, input_length=max_length-1),  # Capa de incrustación

    SimpleRNN(50),  # Capa RNN con 50 unidades

    Dense(vocab_size, activation='softmax')  # Capa de salida

])

 

model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

Paso 4: Entrenamiento del Modelo

model.fit(X, y, epochs=200, verbose=2)

RESULTADOS

Epoch 1/200
1/1 - 1s - loss: 3.6113 - accuracy: 0.0000e+00 - 1s/epoch - 1s/step
Epoch 2/200
1/1 - 0s - loss: 3.5658 - accuracy: 0.0000e+00 - 10ms/epoch - 10ms/step
Epoch 3/200
1/1 - 0s - loss: 3.5191 - accuracy: 0.2000 - 11ms/epoch - 11ms/step
Epoch 4/200
1/1 - 0s - loss: 3.4701 - accuracy: 0.4000 - 11ms/epoch - 11ms/step
Epoch 5/200
1/1 - 0s - loss: 3.4179 - accuracy: 0.4000 - 9ms/epoch - 9ms/step
Epoch 6/200
1/1 - 0s - loss: 3.3615 - accuracy: 0.4000 - 11ms/epoch - 11ms/step
Epoch 7/200
1/1 - 0s - loss: 3.2998 - accuracy: 0.4000 - 11ms/epoch - 11ms/step
Epoch 8/200
1/1 - 0s - loss: 3.2321 - accuracy: 0.4000 - 12ms/epoch - 12ms/step
Epoch 9/200
1/1 - 0s - loss: 3.1575 - accuracy: 0.4000 - 11ms/epoch - 11ms/step
Epoch 10/200
1/1 - 0s - loss: 3.0761 - accuracy: 0.4000 - 9ms/epoch - 9ms/step
Epoch 11/200
1/1 - 0s - loss: 2.9884 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 12/200
1/1 - 0s - loss: 2.8961 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 13/200
1/1 - 0s - loss: 2.8022 - accuracy: 0.4000 - 11ms/epoch - 11ms/step
Epoch 14/200
1/1 - 0s - loss: 2.7100 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 15/200
1/1 - 0s - loss: 2.6224 - accuracy: 0.2000 - 12ms/epoch - 12ms/step
Epoch 16/200
1/1 - 0s - loss: 2.5410 - accuracy: 0.2000 - 12ms/epoch - 12ms/step
Epoch 17/200
1/1 - 0s - loss: 2.4660 - accuracy: 0.2000 - 12ms/epoch - 12ms/step
Epoch 18/200
1/1 - 0s - loss: 2.3962 - accuracy: 0.2000 - 12ms/epoch - 12ms/step
Epoch 19/200
1/1 - 0s - loss: 2.3302 - accuracy: 0.2000 - 11ms/epoch - 11ms/step
Epoch 20/200
1/1 - 0s - loss: 2.2664 - accuracy: 0.2000 - 10ms/epoch - 10ms/step
Epoch 21/200
1/1 - 0s - loss: 2.2042 - accuracy: 0.2000 - 10ms/epoch - 10ms/step
Epoch 22/200
1/1 - 0s - loss: 2.1430 - accuracy: 0.2000 - 13ms/epoch - 13ms/step
Epoch 23/200
1/1 - 0s - loss: 2.0830 - accuracy: 0.2000 - 20ms/epoch - 20ms/step
Epoch 24/200
1/1 - 0s - loss: 2.0243 - accuracy: 0.4000 - 9ms/epoch - 9ms/step
Epoch 25/200
1/1 - 0s - loss: 1.9668 - accuracy: 0.4000 - 11ms/epoch - 11ms/step
Epoch 26/200
1/1 - 0s - loss: 1.9102 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 27/200
1/1 - 0s - loss: 1.8536 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 28/200
1/1 - 0s - loss: 1.7961 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 29/200
1/1 - 0s - loss: 1.7369 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 30/200
1/1 - 0s - loss: 1.6760 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 31/200
1/1 - 0s - loss: 1.6136 - accuracy: 0.4000 - 10ms/epoch - 10ms/step
Epoch 32/200
1/1 - 0s - loss: 1.5505 - accuracy: 0.6000 - 13ms/epoch - 13ms/step
Epoch 33/200
1/1 - 0s - loss: 1.4877 - accuracy: 0.6000 - 11ms/epoch - 11ms/step
Epoch 34/200
1/1 - 0s - loss: 1.4262 - accuracy: 0.6000 - 10ms/epoch - 10ms/step
Epoch 35/200
1/1 - 0s - loss: 1.3670 - accuracy: 0.6000 - 15ms/epoch - 15ms/step
Epoch 36/200
1/1 - 0s - loss: 1.3104 - accuracy: 0.6000 - 10ms/epoch - 10ms/step
Epoch 37/200
1/1 - 0s - loss: 1.2563 - accuracy: 0.6000 - 11ms/epoch - 11ms/step
Epoch 38/200
1/1 - 0s - loss: 1.2040 - accuracy: 0.8000 - 10ms/epoch - 10ms/step
Epoch 39/200
1/1 - 0s - loss: 1.1528 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 40/200
1/1 - 0s - loss: 1.1020 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 41/200
1/1 - 0s - loss: 1.0512 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 42/200
1/1 - 0s - loss: 1.0002 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 43/200
1/1 - 0s - loss: 0.9489 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 44/200
1/1 - 0s - loss: 0.8978 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 45/200
1/1 - 0s - loss: 0.8481 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 46/200
1/1 - 0s - loss: 0.8012 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 47/200
1/1 - 0s - loss: 0.7570 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 48/200
1/1 - 0s - loss: 0.7137 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 49/200
1/1 - 0s - loss: 0.6701 - accuracy: 1.0000 - 13ms/epoch - 13ms/step
Epoch 50/200
1/1 - 0s - loss: 0.6272 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 51/200
1/1 - 0s - loss: 0.5878 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 52/200
1/1 - 0s - loss: 0.5526 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 53/200
1/1 - 0s - loss: 0.5195 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 54/200
1/1 - 0s - loss: 0.4872 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 55/200
1/1 - 0s - loss: 0.4569 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 56/200
1/1 - 0s - loss: 0.4292 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 57/200
1/1 - 0s - loss: 0.4028 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 58/200
1/1 - 0s - loss: 0.3768 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 59/200
1/1 - 0s - loss: 0.3521 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 60/200
1/1 - 0s - loss: 0.3297 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 61/200
1/1 - 0s - loss: 0.3092 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 62/200
1/1 - 0s - loss: 0.2898 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 63/200
1/1 - 0s - loss: 0.2715 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 64/200
1/1 - 0s - loss: 0.2546 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 65/200
1/1 - 0s - loss: 0.2391 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 66/200
1/1 - 0s - loss: 0.2248 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 67/200
1/1 - 0s - loss: 0.2113 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 68/200
1/1 - 0s - loss: 0.1986 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 69/200
1/1 - 0s - loss: 0.1870 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 70/200
1/1 - 0s - loss: 0.1764 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 71/200
1/1 - 0s - loss: 0.1668 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 72/200
1/1 - 0s - loss: 0.1578 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 73/200
1/1 - 0s - loss: 0.1495 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 74/200
1/1 - 0s - loss: 0.1418 - accuracy: 1.0000 - 16ms/epoch - 16ms/step
Epoch 75/200
1/1 - 0s - loss: 0.1348 - accuracy: 1.0000 - 14ms/epoch - 14ms/step
Epoch 76/200
1/1 - 0s - loss: 0.1283 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 77/200
1/1 - 0s - loss: 0.1223 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 78/200
1/1 - 0s - loss: 0.1168 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 79/200
1/1 - 0s - loss: 0.1117 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 80/200
1/1 - 0s - loss: 0.1069 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 81/200
1/1 - 0s - loss: 0.1026 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 82/200
1/1 - 0s - loss: 0.0985 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 83/200
1/1 - 0s - loss: 0.0947 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 84/200
1/1 - 0s - loss: 0.0912 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 85/200
1/1 - 0s - loss: 0.0879 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 86/200
1/1 - 0s - loss: 0.0847 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 87/200
1/1 - 0s - loss: 0.0818 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 88/200
1/1 - 0s - loss: 0.0791 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 89/200
1/1 - 0s - loss: 0.0766 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 90/200
1/1 - 0s - loss: 0.0742 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 91/200
1/1 - 0s - loss: 0.0719 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 92/200
1/1 - 0s - loss: 0.0698 - accuracy: 1.0000 - 13ms/epoch - 13ms/step
Epoch 93/200
1/1 - 0s - loss: 0.0678 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 94/200
1/1 - 0s - loss: 0.0658 - accuracy: 1.0000 - 16ms/epoch - 16ms/step
Epoch 95/200
1/1 - 0s - loss: 0.0640 - accuracy: 1.0000 - 13ms/epoch - 13ms/step
Epoch 96/200
1/1 - 0s - loss: 0.0623 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 97/200
1/1 - 0s - loss: 0.0607 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 98/200
1/1 - 0s - loss: 0.0591 - accuracy: 1.0000 - 14ms/epoch - 14ms/step
Epoch 99/200
1/1 - 0s - loss: 0.0577 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 100/200
1/1 - 0s - loss: 0.0563 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 101/200
1/1 - 0s - loss: 0.0549 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 102/200
1/1 - 0s - loss: 0.0537 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 103/200
1/1 - 0s - loss: 0.0524 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 104/200
1/1 - 0s - loss: 0.0513 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 105/200
1/1 - 0s - loss: 0.0502 - accuracy: 1.0000 - 15ms/epoch - 15ms/step
Epoch 106/200
1/1 - 0s - loss: 0.0491 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 107/200
1/1 - 0s - loss: 0.0481 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 108/200
1/1 - 0s - loss: 0.0471 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 109/200
1/1 - 0s - loss: 0.0461 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 110/200
1/1 - 0s - loss: 0.0452 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 111/200
1/1 - 0s - loss: 0.0444 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 112/200
1/1 - 0s - loss: 0.0435 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 113/200
1/1 - 0s - loss: 0.0427 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 114/200
1/1 - 0s - loss: 0.0419 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 115/200
1/1 - 0s - loss: 0.0412 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 116/200
1/1 - 0s - loss: 0.0404 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 117/200
1/1 - 0s - loss: 0.0397 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 118/200
1/1 - 0s - loss: 0.0391 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 119/200
1/1 - 0s - loss: 0.0384 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 120/200
1/1 - 0s - loss: 0.0378 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 121/200
1/1 - 0s - loss: 0.0372 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 122/200
1/1 - 0s - loss: 0.0366 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 123/200
1/1 - 0s - loss: 0.0360 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 124/200
1/1 - 0s - loss: 0.0354 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 125/200
1/1 - 0s - loss: 0.0349 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 126/200
1/1 - 0s - loss: 0.0344 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 127/200
1/1 - 0s - loss: 0.0339 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 128/200
1/1 - 0s - loss: 0.0334 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 129/200
1/1 - 0s - loss: 0.0329 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 130/200
1/1 - 0s - loss: 0.0324 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 131/200
1/1 - 0s - loss: 0.0320 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 132/200
1/1 - 0s - loss: 0.0315 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 133/200
1/1 - 0s - loss: 0.0311 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 134/200
1/1 - 0s - loss: 0.0306 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 135/200
1/1 - 0s - loss: 0.0302 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 136/200
1/1 - 0s - loss: 0.0298 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 137/200
1/1 - 0s - loss: 0.0294 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 138/200
1/1 - 0s - loss: 0.0290 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 139/200
1/1 - 0s - loss: 0.0287 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 140/200
1/1 - 0s - loss: 0.0283 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 141/200
1/1 - 0s - loss: 0.0279 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 142/200
1/1 - 0s - loss: 0.0276 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 143/200
1/1 - 0s - loss: 0.0273 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 144/200
1/1 - 0s - loss: 0.0269 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 145/200
1/1 - 0s - loss: 0.0266 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 146/200
1/1 - 0s - loss: 0.0263 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 147/200
1/1 - 0s - loss: 0.0260 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 148/200
1/1 - 0s - loss: 0.0257 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 149/200
1/1 - 0s - loss: 0.0254 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 150/200
1/1 - 0s - loss: 0.0251 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 151/200
1/1 - 0s - loss: 0.0248 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 152/200
1/1 - 0s - loss: 0.0245 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 153/200
1/1 - 0s - loss: 0.0242 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 154/200
1/1 - 0s - loss: 0.0239 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 155/200
1/1 - 0s - loss: 0.0237 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 156/200
1/1 - 0s - loss: 0.0234 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 157/200
1/1 - 0s - loss: 0.0232 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 158/200
1/1 - 0s - loss: 0.0229 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 159/200
1/1 - 0s - loss: 0.0227 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 160/200
1/1 - 0s - loss: 0.0224 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 161/200
1/1 - 0s - loss: 0.0222 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 162/200
1/1 - 0s - loss: 0.0219 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 163/200
1/1 - 0s - loss: 0.0217 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 164/200
1/1 - 0s - loss: 0.0215 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 165/200
1/1 - 0s - loss: 0.0213 - accuracy: 1.0000 - 13ms/epoch - 13ms/step
Epoch 166/200
1/1 - 0s - loss: 0.0211 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 167/200
1/1 - 0s - loss: 0.0208 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 168/200
1/1 - 0s - loss: 0.0206 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 169/200
1/1 - 0s - loss: 0.0204 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 170/200
1/1 - 0s - loss: 0.0202 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 171/200
1/1 - 0s - loss: 0.0200 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 172/200
1/1 - 0s - loss: 0.0198 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 173/200
1/1 - 0s - loss: 0.0196 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 174/200
1/1 - 0s - loss: 0.0194 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 175/200
1/1 - 0s - loss: 0.0193 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 176/200
1/1 - 0s - loss: 0.0191 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 177/200
1/1 - 0s - loss: 0.0189 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 178/200
1/1 - 0s - loss: 0.0187 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 179/200
1/1 - 0s - loss: 0.0185 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 180/200
1/1 - 0s - loss: 0.0184 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 181/200
1/1 - 0s - loss: 0.0182 - accuracy: 1.0000 - 13ms/epoch - 13ms/step
Epoch 182/200
1/1 - 0s - loss: 0.0180 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 183/200
1/1 - 0s - loss: 0.0179 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 184/200
1/1 - 0s - loss: 0.0177 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 185/200
1/1 - 0s - loss: 0.0176 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 186/200
1/1 - 0s - loss: 0.0174 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 187/200
1/1 - 0s - loss: 0.0172 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 188/200
1/1 - 0s - loss: 0.0171 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 189/200
1/1 - 0s - loss: 0.0169 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 190/200
1/1 - 0s - loss: 0.0168 - accuracy: 1.0000 - 12ms/epoch - 12ms/step
Epoch 191/200
1/1 - 0s - loss: 0.0166 - accuracy: 1.0000 - 13ms/epoch - 13ms/step
Epoch 192/200
1/1 - 0s - loss: 0.0165 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 193/200
1/1 - 0s - loss: 0.0164 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 194/200
1/1 - 0s - loss: 0.0162 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
Epoch 195/200
1/1 - 0s - loss: 0.0161 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 196/200
1/1 - 0s - loss: 0.0160 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 197/200
1/1 - 0s - loss: 0.0158 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 198/200
1/1 - 0s - loss: 0.0157 - accuracy: 1.0000 - 11ms/epoch - 11ms/step
Epoch 199/200
1/1 - 0s - loss: 0.0156 - accuracy: 1.0000 - 10ms/epoch - 10ms/step
Epoch 200/200
1/1 - 0s - loss: 0.0154 - accuracy: 1.0000 - 9ms/epoch - 9ms/step
<keras.src.callbacks.History at 0x7ea7555aef20>

Paso 5: Ejemplo de Uso

Generemos la próxima palabra en una secuencia dada, utilizando el modelo entrenado.

import numpy as np

 

seed_text = "La inteligencia artificial"

next_words = 3

 

for _ in range(next_words):

    token_list = tokenizer.texts_to_sequences([seed_text])[0]

    token_list = pad_sequences([token_list], maxlen=max_length-1, padding='pre')

    predicted = model.predict(token_list, verbose=0)

    predicted_index = np.argmax(predicted, axis=-1)  # Obtiene el índice con el valor más alto

    output_word = ""

    for word, index in tokenizer.word_index.items():

        if index == predicted_index:

            output_word = word

            break

    seed_text += " " + output_word

 

print(seed_text)

 

RESULTADOS

La inteligencia artificial complejas complejas complejas

Este script es un punto de partida para explorar cómo las RNN pueden ser aplicadas en el contexto de la educación superior. El ejemplo dado es bastante básico y se enfoca en la predicción de texto. Sin embargo, las técnicas y principios aquí mostrados pueden extenderse y adaptarse a problemas más complejos, como análisis de sentimientos de evaluaciones estudiantiles, personalización de contenido educativo basado en el comportamiento del estudiante, entre otros.

Recuerda que el éxito de estos modelos depende en gran medida de la calidad y cantidad del conjunto de datos de entrenamiento. Para aplicaciones más sofisticadas, considera usar arquitecturas más avanzadas como LSTM (Long Short-Term Memory) o GRU (Gated Recurrent Units), que pueden capturar dependencias a largo plazo mejor que las RNN simples.

Conclusiones (Actitudes y Valoraciones)

Potencial Transformador de las RNN en la Educación Superior

Personalización a Escala: Las RNN ofrecen un potencial sin precedentes para personalizar la experiencia de aprendizaje de cada estudiante. Al adaptarse a las necesidades individuales, ritmos de aprendizaje y preferencias de contenido, las RNN pueden mejorar significativamente la retención del conocimiento y el compromiso estudiantil.

Análisis Predictivo: La capacidad de las RNN para trabajar con secuencias temporales las hace ideales para predecir comportamientos estudiantiles, como el riesgo de abandono. Esto permite a las instituciones intervenir de manera proactiva, ofreciendo apoyo adicional a los estudiantes que lo necesitan.

Desafíos Éticos y Prácticos

Privacidad de Datos: La implementación de RNN requiere acceso a grandes volúmenes de datos personales. Es fundamental establecer prácticas éticas sólidas para la gestión de estos datos, asegurando la privacidad y el consentimiento de los estudiantes.

Sesgo Algorítmico: Existe el riesgo de que los modelos de RNN perpetúen o incluso amplifiquen los sesgos existentes en los datos de entrenamiento. Es crucial adoptar medidas para identificar y corregir estos sesgos, promoviendo así la equidad y la inclusión en la educación superior.

Complejidad y Transparencia: Las decisiones tomadas por modelos de RNN pueden ser difíciles de interpretar. La transparencia en cómo se toman las decisiones algorítmicas es esencial para ganar la confianza de los estudiantes y los educadores.

Hacia un Futuro Colaborativo

Colaboración Multidisciplinaria: La implementación exitosa de RNN en la educación superior requiere la colaboración entre expertos en inteligencia artificial, educadores, psicólogos educativos y especialistas en ética. Juntos, pueden diseñar soluciones que sean técnicamente sólidas, pedagógicamente efectivas y éticamente responsables.

Formación y Capacitación: Para aprovechar las oportunidades que ofrecen las RNN, es necesario formar a los educadores en el uso de estas tecnologías. La capacitación debe centrarse no solo en cómo utilizar herramientas basadas en RNN, sino también en cómo integrarlas de manera efectiva en los currículos existentes.

Innovación Abierta: Fomentar un ecosistema de innovación abierta puede acelerar el desarrollo y la adopción de soluciones basadas en RNN en la educación superior. La colaboración entre instituciones educativas, startups tecnológicas y organizaciones gubernamentales puede generar avances significativos.

Conclusión Final

Las RNN tienen el potencial de revolucionar la educación superior, ofreciendo oportunidades sin precedentes para la personalización y la predicción. Sin embargo, su implementación exitosa requiere navegar cuidadosamente los desafíos técnicos, éticos y prácticos. Al adoptar un enfoque colaborativo y multidisciplinario, podemos asegurar que las ventajas de las RNN se realicen plenamente, beneficiando a estudiantes, educadores e instituciones por igual.

Volver

Sin comentarios