Fundamentos en la arquitectura de redes neuronales
La importancia de las redes neuronales en la actualidad
¿Que herramientas usaremos para redes neuronales?
¿Qué es deep learning?
Tu primera red neuronal con Keras
Entrenando el modelo de tu primera red neuronal
La neurona: una pequeña y poderosa herramienta
Arquitectura de una red neuronal
Funciones de activación
Funcion de pérdida (loss function)
Descenso del gradiente
Backpropagation
Playground - Tensorflow
Quiz: Fundamentos en la arquitectura de redes neuronales
Redes neuronales con Python
Dimensiones, tensores y reshape
Creando nuestra red neuronal usando numpy y matemáticas
Entrenamiento forward de la red neuronal
Aplicando backpropagation y descenso del gradiente
Entrenamiento y análisis de resultados de tu red neuronal
Quiz: Redes neuronales con Python
Manejo de redes neuronales con Keras
Data: train, validation, test
Resolviendo un problema de clasificacion binaria
Entrenamiento del modelo de clasificación binaria
Regularización - Dropout
Reduciendo el overfitting
Resolviendo un problema de clasificación múltiple
Entrenamiento del modelo de clasificación múltiple
Resolviendo un problema de regresión
Entrenamiento del modelo de regresión
Análisis de resultados del modelo de regresión
Cierre
¿Qué sigue por aprender de redes neuronales?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Aportes 16
Preguntas 6
Use las tres técnicas y este fue el resultado:
Además dejo la comparación de mi modelo entre daots de entrenamiento y validación:
Use las 3 técnicas como el compañero Alfonso pero me dió distinto
Prove distintas tecnicas pero la mejor fue dropout tanto en perdida como en accuracy.
Acontinuacion presento la perdida con 50 epocas y el respectivo codigo .
Finalmente realice las comparaciones tanto en perdida como en accurracy
Dejo aquí mi resultado con 3 técnicas:
3 capas 4, 4 y 1
Dropout y Regularización L2:
Graficando los 5 modelos para comparación.
Excelente! Appliqué el modelo simple, con L1 y L2, y dropout. Ahora mi loss inicia un poco más elevado que los otros modelos, pero baja con seguridad, sin tender al sobreajuste, Graciaaaas!!
🧙🏻♂️Mi solución aplicando dropout del 70% en dos capas y regularización L1.
Les comparto el resultado que tuve de cada una de las técnicas y una mezcla de las 3
Comparto mis resultados.
En el último modelo cambié el optimizador a Adam, esto parece mejorar mucho el Overfitting.
Este fue mi resultado
#Llamar al modelo
model5 = models.Sequential()
#Agregar capa
model5.add(layers.Dense(8, activation='relu', input_shape = (10000,),
kernel_regularizer= regularizers.l1(0.00001)))
model5.add(layers.Dropout(0.6))
model5.add(layers.Dense(8, activation='relu',
kernel_regularizer= regularizers.l1(0.00001)))
model5.add(layers.Dropout(0.6))
model5.add(layers.Dense(1, activation='sigmoid'))
model5.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics = 'accuracy'
)
history5 = model5.fit(partial_x_train, partial_y_train,
epochs=20,
batch_size = 512,
validation_data=(x_val,Y_val))
Este es la distribución de mi red
model4 = models.Sequential()
model4.add(
layers.Dense(
6,
activation='relu',
input_shape=(10000,),
kernel_regularizer=regularizers.l1(0.0001)
)
)
# dropout se aplica agregando una capa de dropout
model4.add(layers.Dropout(0.5))
model4.add(
layers.Dense(
6,
activation='relu',
kernel_regularizer=regularizers.l1(0.0001)
)
)
model4.add(layers.Dropout(0.5))
# para reducir a la probabilidad de 0 o 1 se usa sigmoid
model4.add(layers.Dense(1, activation='sigmoid'))
# el rmsprop es una version optimizada del descenso del gradiente y es el optimizador por defecto
model4.compile(optimizer='rmsprop',
loss='binary_crossentropy',
metrics='accuracy')
# entrenar el modelo
history8 = model4.fit(partial_x_train, partial_y_train,
epochs=20,
batch_size=256,
validation_data=(x_val, y_val))
y este una gráfica interesante de comparar modelos
Intente hacerlo igual que el profe pero mi progama no me dejaba, deje epoch=10, si ponia mas mi compu no me dejaba, pore el mejor modelo que logre fue con un accuracy de 0.8929
Hice varias pruebas y obtengo mejores resultados con una sola capa. De los tipos de regularización probadas, el que mejor me funcionó fue el de Dropout.
.
Model: "sequential_60"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_138 (Dense) (None, 16) 160016
_________________________________________________________________
dropout_38 (Dropout) (None, 16) 0
_________________________________________________________________
dense_139 (Dense) (None, 1) 17
=================================================================
Total params: 160,033
Trainable params: 160,033
Non-trainable params: 0
_________________________________________________________________
Sin duda en todas las pruebas que hice obtengo mejores resultados con L2 que con L1 o la combinación de L1 y L2.
Model: "sequential_63"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
dense_144 (Dense) (None, 16) 160016
_________________________________________________________________
dense_145 (Dense) (None, 1) 17
=================================================================
Total params: 160,033
Trainable params: 160,033
Non-trainable params: 0
_________________________________________________________________
Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.