import numpy as np
def softmax(z):
return np.exp(z) / np.sum(np.exp(z))
= softmax([1.47, -0.39, 0.22])
s print(s, sum(s))
[0.69339596 0.10794277 0.19866127] 1.0
Softmax
La fonction softmax standard (unitaire) est une fonction mathématique qui convertit un vecteur de nombres réels en une distribution de probabilité, où les composantes du vecteur sont exponentiées puis normalisées en divisant par la somme de toutes les composantes exponentiées. Cela garantit que les valeurs de sortie sont dans l’intervalle \((0, 1)\) et s’additionnent à 1, ce qui les rend adaptées pour représenter des probabilités. Plus précisément, \(\sigma: \mathbb{R}^K \rightarrow(0,1)^K\), pour \(K > 1\) et \(\mathbf{z} = (z_1,\ldots,z_K) \in \mathbb{R}^K\).
\[ \sigma(\mathbf{z}) = \frac{e^{z_i}}{\sum_{j=1}^K e^{z_j}} \]
import numpy as np
def softmax(z):
return np.exp(z) / np.sum(np.exp(z))
= softmax([1.47, -0.39, 0.22])
s print(s, sum(s))
[0.69339596 0.10794277 0.19866127] 1.0