Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa Última revisión Ambos lados, revisión siguiente | ||
clase:iabd:pia:2eval:tema07 [2023/02/02 21:06] admin |
clase:iabd:pia:2eval:tema07 [2024/01/25 19:24] admin [Ejercicios] |
||
---|---|---|---|
Línea 395: | Línea 395: | ||
$$Binary \: Cross \: Entropy = - \frac{1}{N} \sum_{i=1}^{N} y_{i} \cdot log(\hat{y_i}) + (1-y_{i}) \cdot log(1-\hat{y_i}) $$ | $$Binary \: Cross \: Entropy = - \frac{1}{N} \sum_{i=1}^{N} y_{i} \cdot log(\hat{y_i}) + (1-y_{i}) \cdot log(1-\hat{y_i}) $$ | ||
- | Se ha puesto la fórmula para explicar que su valor va de $[0,\infty[$. Ya que por un lado el logaritmo de un número cercano a cero es menos infinito, de ahí que se ponga el signo menos al principio. Y que los datos de $y_i$ e $\hat{y_i}$ | + | Los valores |
+ | |||
+ | Veamos ahora graficamente como es la fórmula según si $y=0$ o $y=1$ | ||
+ | {{: | ||
+ | |||
Su uso en Keras es: | Su uso en Keras es: | ||
Línea 406: | Línea 411: | ||
Mas información: | Mas información: | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
* [[https:// | * [[https:// | ||
Línea 429: | Línea 436: | ||
| Regresión | | Regresión | ||
| Clasificación con 2 posibles valores | Sigmoide | | Clasificación con 2 posibles valores | Sigmoide | ||
- | | Clasificación con más de 2 posibles valores | Softmax | + | | Clasificación con más de 2 posibles valores |
+ | | Clasificación con más de 2 posibles valores SI excluyentes entre si | Softmax | ||
Línea 456: | Línea 464: | ||
===== Ejercicios ===== | ===== Ejercicios ===== | ||
- | ==== Ejercicio 1 ==== | + | ==== Ejercicio 1.A ==== |
En una red neuronal | En una red neuronal | ||
* Estos son los valores que debería haber sacado la red | * Estos son los valores que debería haber sacado la red | ||
Línea 491: | Línea 499: | ||
- | Haz un programa en python que calcule **mediante las fórmulas** la pérdida de la red con '' | + | Haz un programa en python que calcule **mediante las fórmulas** la pérdida de la red con '' |
+ | ==== Ejercicio 1.B ==== | ||
+ | Repita el ejercicio anterior pero ahora en vez de usar su código en python, usan las funciones de coste de keras: | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
==== Ejercicio 2 ==== | ==== Ejercicio 2 ==== | ||
Tenemos dos redes neuronales, que deberían haber sacado los siguientes datos. | Tenemos dos redes neuronales, que deberían haber sacado los siguientes datos. | ||
Línea 553: | Línea 567: | ||
- | Calcula la pérdida de las 2 redes con '' | + | Calcula la pérdida de las 2 redes con '' |
- | ^ ^ MAE ^ MSE ^ | + | ^ ^ MAE ^ MSE |
- | ^ Red A | | | | + | ^ Red A | | |
- | ^ Red B | | | | + | ^ Red B | | |
¿cual es mejor red? Explica porqué | ¿cual es mejor red? Explica porqué | ||
Línea 589: | Línea 603: | ||
{{ : | {{ : | ||
+ | <note warning> | ||
+ | En este tema ya hemos aprendido que la función de perdida para este ejemplo debe ser **Binary Cross Entropy** pero seguimos usando '' | ||
+ | </ | ||
==== Ejercicio 4 ==== | ==== Ejercicio 4 ==== | ||
Línea 615: | Línea 631: | ||
Comprueba si las 3 pérdidas tienen el mismo valor. | Comprueba si las 3 pérdidas tienen el mismo valor. | ||
+ | |||
+ | <note warning> | ||
+ | En este tema ya hemos aprendido que la función de perdida para este ejemplo debe ser **Binary Cross Entropy** pero seguimos usando '' | ||
+ | </ | ||
==== Ejercicio 5.A ==== | ==== Ejercicio 5.A ==== | ||
Línea 670: | Línea 690: | ||
<sxh python> | <sxh python> | ||
df = df.pivot(index=' | df = df.pivot(index=' | ||
+ | </ | ||
+ | |||
+ | muestra el heatmap | ||
+ | <sxh python> | ||
+ | sns.heatmap(df, | ||
</ | </ | ||
Línea 713: | Línea 738: | ||
==== Ejercicio 7 ==== | ==== Ejercicio 7 ==== | ||
Crea una red neuronal para entrenar las flores. Tienes que entrenarla durante 300 épocas con todas las combinaciones de: | Crea una red neuronal para entrenar las flores. Tienes que entrenarla durante 300 épocas con todas las combinaciones de: | ||
- | * Funciones | + | * Estructura |
- | * Funciones de pérdida: MSE, MAE, Binary Crossentropy, | + | * [3] |
+ | * [4, 3] | ||
+ | * [4, 8, 3] | ||
+ | * [4, 8, 16, 8, 3] | ||
+ | * [4, 8, 16, 32, 16, 8, 4, 3] | ||
+ | * [4, 8, 16, 32, 64, 32, 16, 8, 4, 3] | ||
+ | * [4, 8, 16, 32, 64, 128, 64, 32, 16, 8, 4, 3] | ||
+ | * Funciones de activación: | ||
+ | * Sigmoid | ||
+ | * Tanh | ||
+ | * ReLU | ||
+ | * LeakyReLU | ||
+ | * SeLU | ||
+ | * ELU | ||
- | Las neuronas de cada capa son '' | ||
- | <note tip> | ||
- | La función de activación de la última capa siempre debe ser '' | ||
- | </ | ||
- | |||
- | La gráfica resultante debe ser similar a ésta: | ||
- | |||
- | {{ : | ||
Responde las siguientes cuestiones: | Responde las siguientes cuestiones: | ||
- | | + | * ¿Cual ha resultado ser la mejor estructura |
- | | + | * ¿Cual ha sido la mejor función de activación |
- | * ¿Cual ha sido la peor función de activación? | + | |
- | * ¿Cual ha sido la mejor/es función/ | + | |
==== Ejercicio 8.A ==== | ==== Ejercicio 8.A ==== | ||
Línea 771: | Línea 799: | ||
==== Ejercicio 8.D ==== | ==== Ejercicio 8.D ==== | ||
- | Crea y entrena una red neuronal que averigüe si una transacción es fraudulenta. Los datos los obtendrás | + | Crea y entrena una red neuronal que averigüe si tiene cáncer de mama. Los datos los obtendrás |
- | Deberás: | ||
- | * Probar con varias funciones de activación en las capas ocultas para ver cual es la mejor. | ||
- | * Elegir adecuadamente la función de activación de la capa de salida | ||
- | * Elegir adecuadamente la función de coste a usar | ||
- | + | <sxh python> | |
- | ==== Ejercicio 8.E ==== | + | from sklearn.datasets import load_breast_cancer |
- | Crea y entrena una red neuronal con los datos de las flores pero ahora ya deberás tener en cuenta los 3 tipos de flor. | + | </ |
Deberás: | Deberás: |