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:1eval:tema06-apendices [2022/02/27 19:52] admin [Tipos de funciones de activación en capas ocultas] |
clase:iabd:pia:1eval:tema06-apendices [2024/01/06 11:58] admin [Tipos de funciones de activación en capas ocultas] |
||
---|---|---|---|
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 208: | Línea 248: | ||
<sxh python> | <sxh python> | ||
- | model.add(Dense(3, input_dim=1, | + | model.add(Dense(3, |
- | model.add(Dense(3, input_dim=1, | + | model.add(Dense(3, |
</ | </ | ||
Línea 228: | Línea 268: | ||
{{ : | {{ : | ||
- | * [[https:// | + | * Uso en Keras |
- | * [[https:// | + | |
- | * [[https:// | + | |
- | === Poetry === | ||
- | Para usar Mish deberemos instalar [[https:// | ||
- | Desde conda a veces falla la instalación así que lo recomendable es usar [[https:// | ||
- | |||
- | Para usar poetry debemos primero instalarlo en el sistema operativo mediante los comandos: | ||
- | <sxh bash> | ||
- | pip install --user poetry | ||
- | poetry config virtualenvs.in-project true | ||
- | </ | ||
- | |||
- | Una vez instalado (se puede comprobar con '' | ||
- | |||
- | <sxh bash> | ||
- | poetry init | ||
- | poetry add libclang = "< | ||
- | poetry install | ||
- | </ | ||
- | |||
- | Para ejecutar el código hay 2 formas: | ||
- | |||
- | * Desde la línea de comandos: | ||
<sxh python> | <sxh python> | ||
- | poetry run python my_script.py | + | model.add(Dense(3, |
+ | model.add(Dense(3, | ||
</ | </ | ||
- | * Desde VS Code seleccionar en los entornos de ejecución la carpeta '' | + | * [https:// |
- | {{ :clase: | + | * [[https:// |
+ | * [[https:// | ||
- | * 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> | ||
- | { | ||
- | " | ||
- | } | ||
- | </ | ||
- | ==== Tiempo de cálculo | + | ===== 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. | ||