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 Última revisión Ambos lados, revisión siguiente | ||
clase:iabd:pia:1eval:tema06-apendices [2022/02/07 19:43] admin [Tipos de funciones de activación en capas ocultas] |
clase:iabd:pia:1eval:tema06-apendices [2023/01/29 17:57] admin |
||
---|---|---|---|
Línea 134: | Línea 134: | ||
===== Tipos de funciones de activación en capas ocultas ===== | ===== Tipos de funciones de activación en capas ocultas ===== | ||
+ | |||
+ | ==== sigmoid ==== | ||
+ | La fórmula de la sigmoide se obtiene a partir de la función $logit$ o $log odds$. | ||
+ | |||
+ | $$odds(p) = \frac{p}{1-p} $$ | ||
+ | $$logit(p) = log(odds(p))=log(\frac{p}{1-p}) $$ | ||
+ | |||
+ | Ahora: | ||
+ | |||
+ | $$logit(p) = ax+b $$ | ||
+ | $$log(\frac{p}{1-p}) = ax+b $$ | ||
+ | |||
+ | Si despejamos $p$ de la anterior fórmula: | ||
+ | |||
+ | $$ | ||
+ | log(\frac{p}{1-p}) = ax+b \\ | ||
+ | e^{log(\frac{p}{1-p})} = e^{ax+b} \\ | ||
+ | \frac{p}{1-p}=e^{ax+b} \\ | ||
+ | p=e^{ax+b} \cdot (1-p) \\ | ||
+ | p=e^{ax+b}-pe^{ax+b} \\ | ||
+ | p+pe^{ax+b}=e^{ax+b} \\ | ||
+ | p(1+e^{ax+b})=e^{ax+b} \\ | ||
+ | p=\frac{e^{ax+b}}{1+e^{ax+b}} \\ | ||
+ | |||
+ | |||
+ | p=\frac{ | ||
+ | |||
+ | |||
+ | p=\frac{ | ||
+ | p=\frac{ | ||
+ | $$ | ||
+ | |||
+ | Que es exactamente la función sigmoide | ||
+ | |||
+ | * Más información | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
==== ReLU y Leaky ReLU ==== | ==== ReLU y Leaky ReLU ==== | ||
Línea 197: | Línea 237: | ||
Se usa cuando ReLU pero es un poco más lenta pero es mejor. | Se usa cuando ReLU pero es un poco más lenta pero es mejor. | ||
- | $$swish(x)=x \cdot sigmoid(x)=\frac{x}{1+e^{-x}}$$ | + | $$swish(x)=x \cdot sigmoid(x)=x \cdot \frac{1}{1+e^{-x}}=\frac{x}{1+e^{-x}}$$ |
{{ : | {{ : | ||
Línea 246: | Línea 286: | ||
<sxh bash> | <sxh bash> | ||
poetry init | poetry init | ||
- | poetry add libclang = "< | + | poetry add libclang = "< |
poetry install | poetry install | ||
</ | </ | ||
+ | |||
+ | <note important> | ||
+ | Si al hacer el '' | ||
+ | '' | ||
+ | deberemos crear la siguiente variable de entorno: | ||
+ | '' | ||
+ | </ | ||
Para ejecutar el código hay 2 formas: | Para ejecutar el código hay 2 formas: | ||
Línea 260: | Línea 307: | ||
{{ : | {{ : | ||
- | * Si queremos usar el entorno de poetry pero no está en nuestra carpeta se puede indicar a VS Code cual es el ejecutable de python que debe usar siempre para ello hay que crear en la carpeta de nuestro proyecto el fichero '' | + | * Si queremos usar el entorno de poetry pero no está en nuestra carpeta se puede indicar a VS Code cual es el ejecutable de python que debe usar siempre para ello hay que crear en la carpeta de nuestro proyecto el fichero '' |
<sxh base> | <sxh base> | ||
- | { | + | { |
- | " | + | " |
} | } | ||
</ | </ | ||
- | === Tiempos | + | |
+ | |||
+ | ===== Tiempo de cálculo | ||
Para cada problema puede que una función sea mejor que otra, es decir que cosiga entrenar en un menor número de épocas. Aun así a veces no puede preocupar el tiempo de CPU/GPU que usa cada función de activación. | Para cada problema puede que una función sea mejor que otra, es decir que cosiga entrenar en un menor número de épocas. Aun así a veces no puede preocupar el tiempo de CPU/GPU que usa cada función de activación. | ||
- | En la siguiente gráfica se puede ver el tiempo de entrenamiento de una red neuronal con 36 neuronas usando cada un de las funciones de activación. | + | En la siguiente gráfica se puede ver el tiempo de entrenamiento de una red neuronal con 14 capas y 1521 neuronas usando cada una de las funciones de activación. |
+ | |||
+ | {{: | ||
+ | |||
+ | {{: | ||
+ | |||