Softmax
Softmax | |
---|---|
Nome Inglese | Softmax |
Sigla |
Softmax, anche chiamata softargmax o funzione esponenziale normalizzata, è una Funzione di Attivazione che viene utilizzata dopo l'ultimo layer delle reti neurali per trasformare i logit in probabilità, nell'ambito di classificazione multiclasse (per la classificazione binaria si usa la funzione sigmoide.
La funzione Softmax mette in evidenza i valori più grandi e "nasconde" quelli che sono significativamente più piccoli del valore massimo: la somma dei valori tornati dalla funzione è uguale a 1.0.
Spesso viene utilizzato logaritmo di Softmax, chiamato log-softmax, in quanto presenta caratteristiche di trattabilità matematica migliori: log softmax va da -inf (probabilità 0) a zero (prob 1), e questa sua estensione permette al processo di ottimizzazione di non dover agire sui valori con una gamma piccola come quelli di probabilità (0-1).
Un esempio in pytorch:
x = torch.randn(1, 3, 224, 224) logits = m(x) logits >> tensor([[-0.2135, -0.0248, 3.985, -4.235, -0.1831]], grad_fn=<AddmmBackward0>) scores = torch.softmax(logits) scores >> tensor([[0.0096, 0.0117, 0.9765, 0.0002, 0.0020]], grad_fn=<SoftmaxBackward0>)
Links
https://en.wikipedia.org/wiki/Activation_function