Las funciones de activaci贸n son otro pilar fundamental para el desarrollo de modelos de aprendizaje autom谩tico.
驴Qu茅 hace la funci贸n de activaci贸n en redes neuronales?
La funci贸n de activaci贸n de una neurona, nos define la l贸gica necesaria para activar o no la neurona ante una entrada de datos, relacionando los pesos de la neurona y el umbral de excitaci贸n.
Para utilizar en nuestros modelos las funciones de activaci贸n de TensorFlow tenemos que importar lo siguiente:
Ahora veamos algunas funciones de activaci贸n interesantes y m谩s usadas.
Funci贸n de activaci贸n ReLU en TensorFlow
ReLU es una de las funciones m谩s utilizadas para introducir una no linealidad en la red neuronal. Aunque luego la veremos gr谩ficamente es interesante saber que esta funci贸n se define como:
o sea:
ReLU = max(0, x)
esto quiere decir introducimos un n煤mero en esta funci贸n nos devuelve el mismo n煤mero siempre que sea mayor que 0, en el caso que ese n煤mero sea menor o igual que 0, nos devolver谩 un 0.
Si quer茅is conocer m谩s sobre esta funci贸n pod茅is ir aqu铆.
Veamos alg煤n ejemplo con c贸digo:
Como pod茅is ver cuando los inputs son negativos, ReLU nos devuelve 0, y cuando es mayor que 0, nos devuelve el mismo input.
Vamos a a帽adir algunas l铆neas m谩s para visualizar estos puntos en una gr谩fica. No os preocup茅is si no entend茅is las 煤ltimas l铆neas, ya haremos una serie esto m谩s adelante.
Funci贸n de activaci贸n ReLU6
Podemos usar la funci贸n ReLU6, que es computacionalmente m谩s r谩pida. Esta funci贸n se define como:
ReLU6 = min(max(0, 6), 6)
Ve谩mosla con un poco de c贸digo y como se dibuja:
Como podemos ver para inputs menores que 6 se comporta como una ReLU, y para inputs mayores que 6, nos devuelve 6.
Funci贸n de activaci贸n sigmoide
La funci贸n sigmoide es una de las m谩s utilizadas como funci贸n de activaci贸n, y podemos definirla como:
sigmoide = 1 / (1 + exp (-x))
Usarla con mucha precausi贸n ya que con redes neuronales muy densas puede dar problemas de optimizaci贸n.
Como podemos ver, siempre nos devuelve valores entre 0 y 1.
Debemos tener en cuenta que algunas funciones de activaci贸n no est谩n centradas en cero, como la sigmoide. Esto requerir谩 que hagamos cero a los datos antes de usarlos en la mayor铆a de los algoritmos de gr谩ficos computacionales
La tangente hiperb贸lica como funci贸n de activaci贸n
La tangente hiperb贸lica se parece mucho a la sigmoide, pero 茅sta nos devuelve valores entre -1 y 1.
o sea:
Podemos verlo con c贸digo:
Softsign. Funciones de activaci贸n
Definimos la softsign como:
softsign = x / (abs(x) + 1)
Ve谩mosla con c贸digo:
Funci贸n de activaci贸n Softplus
Softplus es otra funci贸n de activaci贸n que la podemos definir como:
y en c贸digo es:
ELU Funci贸n de activaci贸n
Aunque hay m谩s funciones de activaci贸n vamos a ver dos 煤ltimas funciones de activaci贸n, una de ellas es la funci贸n ELU.
La podemos definir como:
Y con c贸digo ser铆a as铆.
Softmax
Aqu铆 tenemos otra funci贸n de activaci贸n, la cual se define como:
Al implementarlo en c贸digo quedar铆a as铆:
Resumiendo funciones de activaci贸n
Veamos un resumen de las funciones que hemos visto anteriormente con c贸digo y al final generaremos una gr谩fica comparando cada funci贸n:
y se ver铆a as铆: