Herramientas de usuario

Herramientas del sitio


clase:iabd:pia:1eval:tema06

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 [2024/12/20 10:27]
admin [Tipos de funciones de activación en la capa de salida]
clase:iabd:pia:1eval:tema06 [2025/01/21 20:09] (actual)
admin [Guardando modelos a disco]
Línea 1008: Línea 1008:
 porqué en vez de usar una única neurona con sigmoide, no usamos softmax con 2 valores. ¿Sería lo mismo? Pues vamos a desarrollarlo. porqué en vez de usar una única neurona con sigmoide, no usamos softmax con 2 valores. ¿Sería lo mismo? Pues vamos a desarrollarlo.
  
 +  * Imaginemos una única neurona que acaba en sigmoide.
  
 +$$
 +z_1:\text{Es la salida de la parte lineal de la única neurona}
 +\\
 +y_1:\text{Es la salida de la única neurona}
 +\\
 +y_1=sigmoid(z_1)=\frac{1}{1+e^{-z_1}}
 +$$
  
 +  * Ahora vamos a tener 2 neuronas de forma que la primera neurona de el mismo resultado que cuando solo hay una neurona
 +
 +$$
 +z_1:\text{Es la salida de la parte lineal de la 1º neurona}
 +\\
 +y_1:\text{Es la salida de la 1º neurona}
 +\\
 +y_1=softmax(z_1)=\frac{e^{z_1}}{e^{z_1}+e^{z_2}}
 +$$
 +
 +$$
 +z_2:\text{Es la salida de la parte lineal de la 2º neurona}
 +\\
 +y_2:\text{Es la salida de la 2º neurona}
 +\\
 +y_2=softmax(z_2)=\frac{e^{z_2}}{e^{z_1}+e^{z_2}}
 +$$
 +
 +  * Además se debe cumplir que
 +
 +$$
 +y_1+y_2=1
 +$$
 +
 +Ya que la probabilidad de ser positivo o ser negativo debe sumar 1.
 +
 +  * Como ambas redes deben tener el mismo resultado en la 1º reurona se cumple que
 +
 +$$
 +\frac{1}{1+e^{-z_1}}=\frac{e^{z_1}}{e^{z_1}+e^{z_2}}
 +$$
 +
 +  * Y ahora vamos a despejar cuando debe valer $z_2$ para que se cumple esa igualdad y para ello multiplicamos en cruz
 +
 +$$
 +e^{z_1}+e^{z_1-z_1}=e^{z_1}+e^{z_2}
 +$$
 +
 +$$
 +e^{z_1}+e^{0}=e^{z_1}+e^{z_2}
 +$$
 +
 +$$
 +e^{z_1}+1=e^{z_1}+e^{z_2}
 +$$
 +
 +$$
 +1=e^{z_2}
 +$$
 +
 +$$
 +\ln{1}=\ln{e^{z_2}}
 +$$
 +
 +
 +$$
 +z_2=0
 +$$
 +
 +Por lo tanto:
 +
 +$$
 +y_1=\frac{e^{z_1}}{e^{z_1}+1}=\frac{1}{1+e^{-z_1}}
 +$$
 +
 +Es decir que la 2º neurona siempre debe valer 0 en la parte lineal. $z_2=0$
 +
 +  * ¿Pero que valor tendrá realmente a la salida de la 2º neurona?
 +
 +$$
 +y_2=softmax(z_2)=\frac{e^{z_2}}{e^{z_1}+e^{z_2}}
 +$$
 +
 +$$
 +y_2=\frac{e^{0}}{e^{z_1}+e^{0}}
 +$$
 +
 +$$
 +y_2=\frac{1}{1+e^{z_1}}
 +$$
 +
 +  * Pero, ¿es ese valor realmente el complementario de $y_1$. Es decir $¿y_1+y_2=1?$
 +
 +$$
 +y_1=\frac{1}{1+e^{-z_1}}
 +\\
 +y_2=\frac{1}{1+e^{z_1}}
 +$$
 +
 +$$
 +y_1+y_2=\frac{1}{1+e^{-z_1}}+\frac{1}{1+e^{z_1}}=
 +$$
 +
 +$$
 +\frac{1+e^{z_1}+1+e^{-z_1}}{(1+e^{-z_1})(1+e^{z_1})}=
 +$$
 +
 +$$
 +\frac{2+e^{z_1}+e^{-z_1}}{1+e^{-z_1}+e^{z_1}+e^{z_1-z_1}}=
 +$$
 +
 +$$
 +\frac{2+e^{z_1}+e^{-z_1}}{1+e^{-z_1}+e^{z_1}+e^{0}}=
 +$$
 +$$
 +\frac{2+e^{z_1}+e^{-z_1}}{1+e^{-z_1}+e^{z_1}+1}=
 +$$
 +
 +$$
 +\frac{2+e^{z_1}+e^{-z_1}}{2+e^{z_1}+e^{-z_1}}=1
 +$$
  
 </note> </note>
Línea 1034: Línea 1153:
 model.compile(loss="mse") model.compile(loss="mse")
 history=model.fit(x_train,y_train,validation_data=(x_test,y_test),epochs=10,verbose=False) history=model.fit(x_train,y_train,validation_data=(x_test,y_test),epochs=10,verbose=False)
- 
  
 model.save('my_red_neuronal.keras' model.save('my_red_neuronal.keras'
Línea 1043: Línea 1161:
 <sxh python> <sxh python>
 model=tf.keras.models.load_model('my_red_neuronal.keras') model=tf.keras.models.load_model('my_red_neuronal.keras')
- 
 </sxh> </sxh>
  
Línea 1049: Línea 1166:
 <sxh python> <sxh python>
 model=tf.keras.models.load_model('my_red_neuronal.keras',custom_objects={"specificity": specificity}) model=tf.keras.models.load_model('my_red_neuronal.keras',custom_objects={"specificity": specificity})
 +
 </sxh> </sxh>
  
clase/iabd/pia/1eval/tema06.1734686869.txt.gz · Última modificación: 2024/12/20 10:27 por admin