- 1

La importancia de las redes neuronales en la actualidad
04:08 - 2

¿Que herramientas usaremos para redes neuronales?
02:49 - 3

¿Qué es deep learning?
07:31 - 4

Tu primera red neuronal con Keras
12:05 - 5

Entrenando el modelo de tu primera red neuronal
03:18 - 6

La neurona: una pequeña y poderosa herramienta
07:07 - 7

Arquitectura de una red neuronal
06:20 - 8

Funciones de activación
13:46 - 9

Funcion de pérdida (loss function)
09:00 - 10

Descenso del gradiente
08:57 - 11

Backpropagation
07:37 - 12

Playground - Tensorflow
05:48 quiz: Fundamentos en la arquitectura de redes neuronales
Entrenamiento del modelo de clasificación binaria
Clase 20 de 29 • Curso de Fundamentos de Redes Neuronales con Python y Keras
Contenido del curso
- 13

Dimensiones, tensores y reshape
14:06 - 14

Creando nuestra red neuronal usando numpy y matemáticas
15:51 - 15

Entrenamiento forward de la red neuronal
09:17 - 16

Aplicando backpropagation y descenso del gradiente
13:06 - 17

Entrenamiento y análisis de resultados de tu red neuronal
12:57 quiz: Redes neuronales con Python
- 18

Data: train, validation, test
02:49 - 19

Resolviendo un problema de clasificacion binaria
11:27 - 20

Entrenamiento del modelo de clasificación binaria
11:06 - 21

Regularización - Dropout
07:19 - 22

Reduciendo el overfitting
11:07 - 23

Resolviendo un problema de clasificación múltiple
10:41 - 24

Entrenamiento del modelo de clasificación múltiple
09:34 - 25

Resolviendo un problema de regresión
12:47 - 26

Entrenamiento del modelo de regresión
12:48 - 27

Análisis de resultados del modelo de regresión
10:11
¿Cómo construir un modelo de red neuronal para clasificación binaria?
Comenzar a trabajar con redes neuronales para tareas de clasificación binaria puede marcar una gran diferencia en el manejo efectivo de tus datos. En este caso, aprenderemos a crear un modelo que utilice la función de pérdida binary cross entropy, ideal para este tipo de situaciones.
¿Cómo se crean las capas del modelo?
La construcción comienza con el uso de models.Sequential, una herramienta que te permite agregar capas al modelo. Aquí tienes una guía de los pasos necesarios:
-
Agregar capas densas: Utiliza
add(layers.Dense())para añadir capas densas. Estas son manejadas con estructuras de conjunto de datos. -
Configuración de la capa: La configuración incluye:
- 16 neuronas.
- Función de activación
relu. - Los datos de entrada con un
input shapede 10,000.
-
Capas subsecuentes: Agregar más capas sin necesidad de definir el
input, ya que el modelo ya conoce la entrada. -
Capa de salida: La última capa termina en una sola neurona con una función sigmoide, que es perfecta para clasificaciones binarias.
from keras import models, layers
model = models.Sequential()
model.add(layers.Dense(16, activation='relu', input_shape=(10000,)))
model.add(layers.Dense(16, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
¿Cómo compilar y entrenar el modelo?
Luego de establecer las capas de nuestro modelo, pasamos a compilar y entrenar el modelo con los siguientes pasos:
-
Compilación del modelo:
- Optimizador:
rmsprop, una variación del descenso de gradiente, ideal para esta tarea. - Función de pérdida:
binary_crossentropy. - Métrica:
accuracy.
- Optimizador:
-
Entrenamiento del modelo:
- Conjunto de validación: Creación de un conjunto de validación dividiendo los datos originales.
- Proceso de ajuste (fit): Configurado para realizar cuatro iteraciones y lotes de datos de tamaño 512.
model.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics=['accuracy'])
history = model.fit(partial_x_train,
partial_y_train,
epochs=4,
batch_size=512,
validation_data=(x_val, y_val))
Visualización y evaluación del modelo ¿Qué se analiza?
La evaluación de un modelo es crucial para entender su rendimiento. Utilizamos matplotlib para graficar resultados, lo que permite analizar la pérdida y la precisión a través de las épocas.
-
Visualización de resultados:
- Pérdida y precisión en el conjunto de entrenamiento.
- Pérdida y precisión en el conjunto de validación, centrándose en si el modelo muestra overfitting, es decir, si se ajusta demasiado a los datos de entrenamiento y permea en el rendimiento en validación.
-
Evaluación del modelo con el conjunto de prueba:
- Utilizamos
model.evaluate()para calcular la exactitud real en los datos de prueba.
- Utilizamos
import matplotlib.pyplot as plt
history_dict = history.history
loss_values = history_dict['loss']
val_loss_values = history_dict['val_loss']
epochs = range(1, len(loss_values) + 1)
plt.plot(epochs, loss_values, 'o', label='Training loss')
plt.plot(epochs, val_loss_values, '-', label='Validation loss')
plt.title('Training and validation loss')
plt.xlabel('Epochs')
plt.ylabel('Loss')
plt.legend()
plt.show()
results = model.evaluate(x_test, y_test)
print(f'Exactitud del modelo: {results[1] * 100:.2f}%')
El modelo presentado mostró un accuracy del 87%. Aunque es elevado, detectamos que sufre de overfitting. Resolver este problema puede llevar nuestro modelo a un nivel de desempeño aún mejor. ¡Sigue explorando y ajustando tu modelo, y no dudes en probar técnicas para reducir el overfitting!