Softmax demistificante
Un approccio comune alla classificazione multiclasse consiste nell'utilizzare un classificatore binario separato per ogni classe.
Ogni classificatore è responsabile del riconoscimento della propria classe associata.
In primo luogo, si considerino le scelte progettuali alla base della costruzione di un singolo classificatore binario. Nel seguito, estenderemo il progetto a una raccolta di classificatori binari.
Come punto di partenza, prendi un'equazione lineare che prende un vettore di caratteristiche x e restituisce un output y che è una somma pesata delle caratteristiche di input e dei suoi parametri. L'output y è un numero reale che dovrebbe essere associato a una decisione: l'input x rappresenta un oggetto appartenente a una classe che dovrei rilevare ? La scelta più semplice è restituire il messaggio ' la mia classe' quando y assume un valore positivo e mantenere il classificatore inattivo quando y è negativo.
Ma poi ci mancherebbero le informazioni sull'incertezza/fiducia dell'output del classificatore. Potremmo anche restituire il valore grezzo dell'output del classificatore y come misura della confidenza del classificatore nel risultato . Tuttavia, l'intervallo da -∞ a +∞ sarebbe scomodo per l'interpretazione, il confronto e la post-elaborazione.
Requisito di progettazione №1: output come probabilità
Invece, è meglio restituire un valore in un intervallo strettamente limitato che potrebbe essere interpretato come la probabilità p che l'input x rappresenti l'oggetto appartenente a ' my class '.
Pertanto, la domanda è come proiettare y su un valore p che potrebbe essere liberamente interpretato come una probabilità?
Inizialmente, questo valore dovrebbe appartenere all'intervallo <0,1>. Successivamente, 0,5 dovrebbe essere il punto di svolta della decisione. Infine, i valori superiori a 0,5 dovrebbero essere a favore del rilevamento positivo di una classe.
Da un punto di vista matematico, cerchiamo una funzione continua φ :
tale che 0 atterra a 0.5 , +∞ è proiettato a 1 e -∞ a 0 .
In questo caso, il modo più semplice è l'ingegneria inversa: inizia da p e torna a y . Una probabilità di classe p può essere facilmente proiettata da <0,1> a < 0 , +∞) intervallo utilizzando l'odds ratio:
La mappatura successiva dovrebbe lanciare i valori ottenuti a (-∞, +∞) . La scelta ovvia è la funzione logaritmica.
Quindi, le due estremità si incontrano qui. Siamo partiti da < 0 , 1 > interval e siamo arrivati all'intervallo (-∞,+∞) , che si supponeva all'inizio fosse restituito da y :
Per ora, la base B del logaritmo rimane non specificata.
I passaggi successivi sono ripristinare la relazione con il desiderato p = φ ( y ):
Infine, arriviamo alla formula desiderata:
Ora, dobbiamo decidere il valore di B . Osserviamo il grafico che mostra le varianti della funzione φ per diversi valori di B .
Il minimo sembra essere B=2.71 . Sorprendentemente, un valore simile ha il suo simbolo e ed è chiamato base naturale. Quindi, per il logaritmo in base naturale, l'ultima formula assume la seguente forma:
Congratulazioni!
Abbiamo appena riscoperto la celebre funzione sigmoidea .
La domanda per te è : è davvero la scelta migliore? Cosa sarebbe successo se avessimo scelto un altro valore? Avremmo perso l'interpretazione probabilistica?
Considera anche questo : perché non usare una relazione non lineare tra y e x ? Ricordiamo che per derivare φ , abbiamo solo supposto che il valore di y risieda nell'intervallo (-∞,+∞) .
Quando si ha a che fare con molte classi (diciamo M ), assegniamo a ciascuna classe il proprio classificatore binario.
Se i classificatori operano in modo indipendente, può accadere che tutte le probabilità restituite non raggiungano 1 , il che rende errata l'interpretazione probabilistica del loro output. Questa è una sfida da affrontare adesso.
Requisito di progettazione №2: sommatoria a uno
Tutti i classificatori accettano lo stesso x . Il classificatore i -esimo calcola y_i . Vogliamo di nuovo fare una proiezione di y_i in p_i , ma questa volta in sincronia con tutti gli altri classificatori , in modo che
La sincronia tra classificatori riguarda l'accordo reciproco su come proiettare y_i calcolato in modo indipendente in p_i . Per un singolo classificatore, l'odd ratio coinvolgeva le probabilità di due output: ' la mia classe ' con probabilità p contro ' non la mia classe ' con probabilità 1-p . Più alto è il valore di y , più probabile è l'output ' my class '. Ora, invece dell'output ' not my class ' dovremmo essere più specifici e introdurre l'output ' your class '. Pertanto, la versione più generale sarebbe: ' my class ' con probabilità p_kcontro ' la tua classe ' con probabilità p_l . E maggiore è il mio output y_k rispetto al tuo output y_l , più probabile è ' my class ' rispetto a ' your class '.
Requisito progettuale №3: interrelazioni tra probabilità
Ecco la versione aggiornata dell'equazione (1):
Si noti che questo requisito è una versione estesa del requisito di progettazione №1.
Il compito è prendere entrambi i requisiti di progettazione №2 e №3, rappresentati dalle equazioni (2) e (3), e derivare una formula per tale funzione Φ _i che :
Abbiamo già deciso di utilizzare il logaritmo in base naturale e , quindi usiamolo per il resto delle nostre considerazioni:
Per utilizzare le informazioni contenute nell'equazione (2) applichiamo la sommatoria per entrambi i membri:
ed estrarre elementi che non variano con k prima dei segni di sommatoria. Si noti che, secondo l'equazione (2), la somma di tutte le probabilità è uguale a 1 :
Infine, arriviamo alla seguente funzione:
che può essere riscritta per i invece di l come:
Congratulazioni ancora!
In questo modo abbiamo finalmente riscoperto la famosa funzione softmax .
Pensieri finali
Spero che tu apprezzi il fatto che ci siamo fatti strada verso la funzione softmax in modo chiaro. Non abbiamo fatto ricorso a rivelazioni, vaghe analogie dalla scienza fisica o autorità lungo le nostre considerazioni. In questo articolo, la funzione softmax è il risultato di una linea retta di ragionamento che ha avuto origine in requisiti naturali posti per problemi multi-classe .
La mia intenzione è darti una sensazione più forte per le origini della funzione softmax nella risoluzione dei problemi di apprendimento automatico.
Ti consiglio di dare un'occhiata a un altro approccio molto stimolante alla derivazione di una funzione sigmoidea realizzato sul blog di Will Wolf .
Infine, considera tu stesso se tutto ciò potrebbe essere ottenuto in un altro modo: utilizzando classificatori operanti in modo indipendente, normalizzando tutti i p_i in seguito e quindi sostituendo p_i con valori normalizzati.
Riferimenti
[1] Gabriel Furnieres : Funzioni Sigmoid e SoftMax in 5 minuti . https://towardsdatascience.com/sigmoid-and-softmax-functions-in-5-minutes-f516c80ea1f9
[2] Will Wolf : derivare il Softmax dai primi principi .https://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































