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 | ||
clase:iabd:pia:2eval:tema07-apendices [2024/10/12 15:10] admin [Métricas] |
— (actual) | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== 7.g Apéndices ====== | ||
- | |||
- | ===== Tipos de funciones de coste ===== | ||
- | |||
- | |||
- | ==== Huber ==== | ||
- | La función de coste Huber es un compromiso entre MAE y MSE, ese compromiso se define con un parámetro llamado delta δ. | ||
- | La siguiente gráfica compara MAE, MSE y distintos valores de delta. | ||
- | |||
- | {{ : | ||
- | |||
- | |||
- | * Si delta tiene en valor cercano a 1, tenderá a parecerse a MAE | ||
- | * Si delta tiene un valor elevado, tenderá a parecerse a MSE | ||
- | |||
- | <note tip>Como decíamos con MAE y MSE. ¿queremos que los valores extremos se tengan en cuenta. Pues con el parámetro delta podemos hacer un ajuste mas fino</ | ||
- | |||
- | |||
- | |||
- | Su uso en Keras es: | ||
- | <sxh python> | ||
- | model.compile(loss=tf.keras.losses.Huber(delta=3)) | ||
- | </ | ||
- | |||
- | < | ||
- | Pensando en la gráfica de Huber he pensado si MAE=|y−ˆy|1 y MSE=|y−ˆy|2, | ||
- | |||
- | Y he creado una gráfica similar para ver los resultados y no están mal | ||
- | |||
- | {{ : | ||
- | |||
- | He mirado un poco por internet para ver si alguien los usaba y no he encontrado nada, supongo que será porque hacer el cálculo de una potencia con decimales es bastante costoso en tiempo. | ||
- | </ | ||
- | |||
- | Mas información: | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | |||
- | |||
- | ===== Backpropagation ===== | ||
- | El Backpropagation es el algoritmo que optimiza el entrenamiento de la red. Calcular el gradiente (o derivada) de toda la red es muy costoso. Se basa en la idea de que los parámetros de una capa no dependen de la capa anterior. | ||
- | |||
- | |||
- | Si volvemos a ver nuestra red neuronal de ejemplo, podemos calcular los pesos de la neurona 5 sin que influya en como van a ser los pesos de las neuronas 2, 3 y 4. Es decir que empezamos con las neuronas de las capas más hacía la salida y una vez calculados sus pesos , calculamos los parámetros de las capa anterior (más hacia la entrada) , y eso significa ir hacia atrás o // | ||
- | |||
- | {{ : | ||
- | |||
- | {{ : | ||
- | |||
- | {{ : | ||
- | |||
- | Con backpropagation acabamos de ver el orden en el que se calculan los parámetros de cada neurona y a continuación vamos a ver con el descenso de gradiente como calculamos los parámetros de una neurona. | ||
- | |||
- | Junto con el backpropagation | ||
- | |||
- | En los siguientes videos está explicado perfectamente el backpropagation y la //chain rule//: | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | |||
- | |||
- | ===== Top-N-Accuracy ===== | ||
- | En problemas de clasificación en los que hay muchísimos clases a clasificar , se puede usar otra métrica llamada **Top-N Accuracy**. Veamos en que consiste. | ||
- | |||
- | El problema de clasificación de ImageNet hay 1000 posibles clases a clasificar. En ese caso cuando decimos que un " | ||
- | |||
- | ^ Clase ^ Probabilidad ^ | ||
- | | Casa | 0.06 | | ||
- | | Botella | 0,04 | | ||
- | | Farola | 0,15 | | ||
- | | Gato | 0,34 | | ||
- | | Perro | 0,28 | | ||
- | | Niño | 0,04 | | ||
- | | Adulto | 0,02 | | ||
- | | Bicicleta | 0,03 | | ||
- | | Semáforo | 0,001 | | ||
- | | Puente | 0,039 | | ||
- | |||
- | |||
- | Si la imagen es de un gato, en este caso diríamos que ha acertado ya que la probabilidad de ser gato es del 34% y es la mayor de todas. Y con eso calcularíamos el valor de '' | ||
- | |||
- | Sin embargo veamos este otro ejemplo: | ||
- | |||
- | |||
- | ^ Clase ^ Probabilidad ^ | ||
- | | Casa | 0.06 | | ||
- | | Botella | 0,04 | | ||
- | | Farola | 0,15 | | ||
- | | Gato | 0,28 | | ||
- | | Perro | 0,34 | | ||
- | | Niño | 0,04 | | ||
- | | Adulto | 0,02 | | ||
- | | Bicicleta | 0,03 | | ||
- | | Semáforo | 0,001 | | ||
- | | Puente | 0,039 | | ||
- | |||
- | En este nuevo ejemplo, también le hemos pasado una imagen de una gato pero la probabilidad de ser gato es del 28% mientras que la de ser perro es del 34%. Por ello diríamos que no ha acertado. | ||
- | |||
- | Sin embargo usando la métrica de '' | ||
- | |||
- | Esta métrica tiene sentido cuando hay muchísimas clases (En ImageNet hay 1000 clases). Y aunque la predicción correcta no sea la mejor al menos está entre las 2 primeras '' | ||
- | |||
- | En el siguiente artículo [[https:// | ||
- | |||
- | |||
- | |||
- | === Keras === | ||
- | en keras se puede usar esta métrica con [[https:// | ||
- | |||
- | Por defecto esta métrica calcula es '' | ||
- | |||
- | <sxh python> | ||
- | model.compile(optimizer=' | ||
- | </ | ||
- | |||
- | <sxh python> | ||
- | model.compile(optimizer=' | ||
- | </ | ||
- | |||
- | |||
- | Más información: | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | * [[https:// | ||
- | |||
- | |||
- | |||
- | |||
- | |||