Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:2eval:tema07

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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/04/10 14:56]
admin [Ejercicios]
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}$ al ser probabilidades su rango es entre 0 y 1.+Los valores de $y_i$ suelen ser o 1mientras que los valores de $\hat{y_i}$ es un número real entre 0 y 1 
 + 
 +Veamos ahora graficamente como es la fórmula según si $y=0$ o $y=1$ 
 +{{:clase:iabd:pia:2eval:binary_crossentropy.png?nolink|}} 
 + 
  
 Su uso en Keras es: Su uso en Keras es:
Línea 431: Línea 436:
 | Regresión  |  Lineal  |  MSE o Distancia del coseno  | | Regresión  |  Lineal  |  MSE o Distancia del coseno  |
 | Clasificación con 2 posibles valores |  Sigmoide  |  Binary Cross Entropy  | | Clasificación con 2 posibles valores |  Sigmoide  |  Binary Cross Entropy  |
-| Clasificación con más de 2 posibles valores |  Softmax  |  Categorical Cross Entropy  |+| Clasificación con más de 2 posibles valores NO excluyentes entre si |  Sigmoide  |  Binary Cross Entropy 
 +| Clasificación con más de 2 posibles valores SI excluyentes entre si |  Softmax  |  Categorical Cross Entropy  |
  
  
Línea 493: Línea 499:
  
  
-Haz un programa en python que calcule **mediante las fórmulas** la pérdida de la red con ''MAE'' ''MSE''+Haz un programa en python que calcule **mediante las fórmulas** la pérdida de la red con ''MAE''''MSE'' y ''Binary Cross Entropy''
  
 ==== Ejercicio 1.B ==== ==== Ejercicio 1.B ====
Línea 499: Línea 505:
   * ''tf.keras.losses.mean_absolute_error''   * ''tf.keras.losses.mean_absolute_error''
   * ''tf.keras.losses.mean_squared_error''   * ''tf.keras.losses.mean_squared_error''
 +  * ''tf.keras.losses.categorical_crossentropy'' 
 + 
 ==== 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 560: Línea 567:
  
  
-Calcula la pérdida de las 2 redes con ''MAE'' y con ''MSE'' (mediante las funciones de Keras). +Calcula la pérdida de las 2 redes con ''MAE''''MSE'' y ''Binary Cross Entropy'' (mediante las funciones de Keras). 
  
-^ ^  MAE  ^  MSE  ^  +^ ^  MAE  ^  MSE  ^ Binary Cross Entropy 
-^  Red A  |    |    | +^  Red A  |    |    |   
-^  Red B  |    |    |+^  Red B  |    |    |   |
  
 ¿cual es mejor red? Explica porqué ¿cual es mejor red? Explica porqué
Línea 731: 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 de activaciónSigmoidTanhReLULeakyReLUSeLUELU +  * Estructura de la red: 
-  * Funciones de pérdidaMSE, MAE, Binary Crossentropy, Categorical Crossentropy+    * [3] 
 +    * [43] 
 +    * [483] 
 +    * [4816, 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 ''[4,8,16,8,3]'' 
  
-<note tip> 
-La función de activación de la última capa siempre debe ser ''softmax'' 
-</note> 
- 
-La gráfica resultante debe ser similar a ésta: 
- 
-{{ :clase:iabd:pia:2eval:rendimiento_loss.png?direct&800 |}} 
  
 Responde las siguientes cuestiones: Responde las siguientes cuestiones:
-  * ¿En teoría cual debería ser la mejor función de pérdida? +  * ¿Cual ha resultado ser la mejor estructura de red
-  * ¿Cual ha resultado ser la mejor función de pérdida+  * ¿Cual ha sido la mejor función de activación para la mejor estructura de red?
-  * ¿Cual ha sido la peor función de activación+
-  * ¿Cual ha sido la mejor/es función/es de activación?+
  
 ==== Ejercicio 8.A ==== ==== Ejercicio 8.A ====
Línea 789: 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 de [[https://www.kaggle.com/mlg-ulb/creditcardfraud|Credit Card Fraud Detection Dataset]]+Crea y entrena una red neuronal que averigüe si tiene cáncer de mama. Los datos los obtendrás con la función ''load_breast_cancer''.
  
-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.+</sxh>
  
 Deberás: Deberás:
clase/iabd/pia/2eval/tema07.txt · Última modificación: 2024/01/30 15:26 por admin