Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema06-apendices

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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] (actual)
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{  \frac{e^{ax+b}}{e^{ax+b}}   }{ \frac{1+e^{ax+b}}{e^{ax+b}}   } \\
 +
 +
 +p=\frac{  1   }{ 1+\frac{1}{e^{ax+b}}   } \\
 +p=\frac{  1   }{ 1+e^{-(ax+b)}   } \\
 +$$
 +
 +Que es exactamente la función sigmoide
 +
 +  * Más información
 +    * [[https://en.wikipedia.org/wiki/Odds|Odds (Wikipedia)]]
 +    * [[https://towardsdatascience.com/https-towardsdatascience-com-what-and-why-of-log-odds-64ba988bf704|WHAT and WHY of Log Odds]]
 +    * [[https://medium.com/nerd-for-tech/understanding-logistic-regression-782baa868a54|Understanding Logistic Regression]]
 +    * [[https://stats.stackexchange.com/questions/162988/why-sigmoid-function-instead-of-anything-else|Why sigmoid function instead of anything else?]]
 +    * [[https://towardsdatascience.com/why-sigmoid-a-probabilistic-perspective-42751d82686|Why Sigmoid: A Probabilistic Perspective]] 
  
 ==== 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}}$$
  
 {{ :clase:iabd:pia:1eval:funciones_activacion_tipo_swish.png?direct |}} {{ :clase:iabd:pia:1eval:funciones_activacion_tipo_swish.png?direct |}}
Línea 208: Línea 248:
  
 <sxh python> <sxh python>
-model.add(Dense(3, input_dim=1,activation=tf.keras.activations.swish)) +model.add(Dense(3, activation=tf.keras.activations.swish)) 
-model.add(Dense(3, input_dim=1,activation="swish"))+model.add(Dense(3, activation="swish"))
 </sxh> </sxh>
  
Línea 228: Línea 268:
 {{ :clase:iabd:pia:1eval:funciones_activacion_swish_vs_mish.png?direct |}} {{ :clase:iabd:pia:1eval:funciones_activacion_swish_vs_mish.png?direct |}}
  
-  * [[https://www.tensorflow.org/addons/api_docs/python/tfa/activations/mish|tfa.activations.mish(x)]] +  * Uso en Keras
-  * [[https://towardsdatascience.com/activation-functions-you-might-have-missed-79d72fc080a5|Activation functions you might have missed]] +
-  * [[https://arxiv.org/pdf/1908.08681.pdf|Mish: A Self Regularized Non-Monotonic Activation Function]]: Paper original de Mish+
  
-=== Poetry === 
-Para usar Mish deberemos instalar [[https://www.tensorflow.org/addons/overview|TensorFlow Addons]].  
-Desde conda a veces falla la instalación así que lo recomendable es usar [[https://python-poetry.org/|Poetry]] 
- 
-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  
-</sxh> 
- 
-Una vez instalado (se puede comprobar con ''poetry --version'') iremos a la carpeta donde tenemos nuestro programa en Python (o donde lo vamos a tener) y ejecutaremos lo siguiente: 
- 
-<sxh bash> 
-poetry init 
-poetry add libclang = "<12.0.0" numpy pandas matplotlib seaborn scikit-learn tensorflow tabulate PyMySQL SQLAlchemy ipympl keras-tuner tensorflow-addons 
-poetry install 
-</sxh> 
- 
-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, activation=tf.keras.activations.swish)) 
 +model.add(Dense(3, activation="mish"))
 </sxh> </sxh>
  
-  * Desde VS Code seleccionar en los entornos de ejecución la carpeta ''.venv'' del propio proyecto+  * [https://www.tensorflow.org/api_docs/python/tf/keras/activations/mish|tf.keras.activations.mish(x)]] 
-{{ :clase:iabd:pia:1eval:vs-code-poetry.png?direct |}}+  * [[https://towardsdatascience.com/activation-functions-you-might-have-missed-79d72fc080a5|Activation functions you might have missed]] 
 +  * [[https://arxiv.org/pdf/1908.08681.pdf|Mish: A Self Regularized Non-Monotonic Activation Function]]: Paper original de Mish
  
-  * 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 ''./.vscode/settings.json'' 
  
-<sxh base> 
-{ 
-    "python.pythonPath": "/home/logongas/python_default_env/.venv/bin/python" 
-} 
-</sxh> 
  
-==== 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.
  
clase/iabd/pia/1eval/tema06-apendices.1645987929.txt.gz · Última modificación: 2022/02/27 19:52 por admin