Empezamos otra entrada hablando de otra parte importante en la construcci贸n de modelos de inteligencia artificial, las funciones de p茅rdida.
En resumen, al entrenar un modelo, las funciones de perdida son las que miden la distancia que hay entre las predicciones del modelo y los resultados reales.
L1 o funci贸n de p茅rdida absoluta
Esta funci贸n de p茅rdida quiz谩 es la m谩s intuitiva, simplemente nos devuelve la distancia entre el valor real y la predicci贸n. Se calcula siempre en valor absoluto. Veamos un ejemplo, si tengo como valor real el 3 y nuestro modelo predice un 5, nuestro error absoluto es | 3 – 5 | = 2, pero si nuestro modelo predice -10, nuestro error absoluto ser谩 de | 3 – (-10) | = 13. L贸gicamente la segunda predicci贸n es peor.
Ahora ve谩moslo con c贸digo:

En la gr谩fica anterior podemos ver como el error absoluto aumenta a medida que nos alejamos del 0.0 en el eje horizontal. Ahora veremos otra funci贸n muy parecida pero que suaviza la curva a medida que nos acercamos al 0.
L2 o funci贸n de p茅rdida del error cuadr谩tico medio
En pocas palabras, L2 nos devuelve el cuadrado de la distancia que hay entre la predicci贸n y el valor real. L2 no es mas que L1 al cuadrado. Imaginaros que el valor real es 4, nuestro modelo hace una predicci贸n de 5, por tanto el error cuadr谩tico es (4 – 5) ^2 = 1. Ahora imaginamos que nuestro modelo hace una predicci贸n de 10, entonces el error cuadr谩tico ahora ser谩 (4 – 10 ) ^2 = 36. Por supuesto que la segunda predicci贸n es mucho peor que la anterior.
Vamos un poco de c贸digo:

Como podemos ver, hemos definido el valor real como 0, y hemos creado 1000 predicciones que van desde -1 hasta 1. Luego definimos L2 como el cuadrado de la diferencia entre el valor real y las predicciones. En la gr谩fica vemos como aumenta el error a medida que nos alejamos del 0 en el eje horizontal.
Diferencia entre L2 y L1 (Funciones de p茅rdida con TensorFlow)
Para verlo vamos a ampliar las predicciones entre -2 y 2 y cambiamos el valor real a 1:

Como podemos ver, al comparar L1 frente a L2 vemos que L2 es una funci贸n de p茅rdida m谩s curvada cerca del valor real (en este caso 1.0) y por tanto los algoritmos usan este factor para converger al valor real m谩s lento.
Pseudo-Huber Funci贸n de P茅rdida
Continuando con las funciones de p茅rdida definimos esta funci贸n como:
En resumen esta funci贸n es como L2, pero nos permite modificar un poco la pendiente de la curva en valor lejanos al valor real, pudiendo hacer las pendientes un poco m谩s horizontales, lo cual beneficiar铆a a nuestro algoritmo. El factor que nos ayudar谩 a modificar esa pendiente es delta.
Vamos a crear una funci贸n que nos calcular谩 la funci贸n de p茅rdida pseudo-huber donde le pasemos por par谩metros un tensor con las predicciones, un valor de delta y el valor real.

De esta manera podemos usarla varias veces para poder comparar distintos valores de delta.
Ve谩moslo con c贸digo:

Ahora vamos a comparar la funci贸n pseudo-huber evaluada para delta = 1, delta = 50 y la funci贸n de p茅rdida L2 a ver si es verdad todo el rollo que os estoy contando jejeje

Como podemos ver en valores cercanos al valor real (en este caso 0.0), tanto L2 como pseudo-huber se comportan parecido, pero a medida que nos alejamos del valor real L2 adquire mucha mayor inclinaci贸n, mientras que a menor delta pseudo-huber tiene las ramas m谩s horizontales.
Funci贸n de p茅rdida de bisagra
Definimos esta funci贸n como:
Esta funci贸n es frecuente utilizada en SVM (Support Vector Machine) que es un algoritmo de Inteligencia Artificial.
Ve谩mosla en c贸digo:

Funci贸n de p茅rdida de entrop铆a cruzada

LIBROS COMPLEMENTARIOS