Semana 11: Funciones de activación y de pérdida en Pytorch

25 de agosto del 2020

Notas realizadas por Jorge García Flores sobre el curso/cover que Iván Vladimir Meza hizo sobre un tema original de Yann LeCun y Alfredo Canziani en la primavera-verano del 2020

Función no lineal que nos permite transformar una suma de puntajes con pesos en una “neurona”

Fuente: Diapositivas 00 - Logic neurons.pdf de Alfredo Canziani

  • Función rectificadora (ReLU)
  • Rectificador aleatorio (RReLU)
  • Rectificador permeable (Leaky ReLU)

Características:

  1. Poco sensibles a la escala (“puedes multiplicar la señal por 2 y la salida refleja exactamente la multipicación por 2: la escala no cambia el comportamiento de la función”)
  2. Sirven para redes con pocas capas (“skinny networks”)

El valor negativo se multiplica por un parámetro a que se puede aprender

"La a puede variar de acuerdo a cada canal de entrada"

Aproximación derivable de ReLU.

Repaso: sobre derivabilidad (“sin derivabilidad no hay gradiente”)

"la identidad para los valores positivos y asintóticamente cero para los valores negativos"

- Esta función es más sensible a la escala que las funciones quebradas (de la familia ReLU). Aplicar una escala (por ejemplo, a nivel de una capa) puede modific el comportamiento de la salida.

"El algoritmo de gradiente puede converger más rápido con puntajes positivos y negativos con respecto a arquitecturas con puros puntajes positivos"
"Los valores negativos permiten que el promedio sea , lo cual puede hacer que el algoritmo de gradiente converja más rápido"
"Si acumulas las capas de sigmoides en tu red. ésta no va a aprender de manera eficiente [...] en este caso debes poner mucha atención a la normalización"
"Para redes muy profundas, las funciones no lineales quebradas [como el rectificador] son más convenientes"
"Un problema con la tangente hiperbólica o la función sigmoide es que cuando te acercas a la asíntota, el gradiente se va a 0 demasiado rápido y si los pesos de una determinada neurona son muy grandes, la saturan... el valor del gradiente se desploma y la neurona no aprende rápido... Softsign intenta resolver este problema."
"No se puede propagar gradiente ahí: por culpa de esta función no se inventó la retropropagación en la década de 1960 o incluso 1970"

Rara vez utilizada, salvo en el marco de sparse coding (aquí una definición y acá un artículo de divulgación) al respecto.

  • ¿Se puede definir sparse coding como la “activación de una cantidad mínima de neuronas”?

  • Valor absoluto de la diferencia entre el valor obtenido y el valor objetivo (o deseado)

Vínculo hacia el artículo y el código fuente correspondiente

  • Dernière modification: il y a 4 ans