2 svar
180 visningar
ConceptGrokker behöver inte mer hjälp
ConceptGrokker 2 – Fd. Medlem
Postad: 13 nov 2017 12:27

Varför behöver man exp() funktionen för att normalisera en lista av värden till sannolikheter?

Först lite context. Jag har försökt att lära mig om neuronnät och hur de kan klassificera t ex bilder. Som output ger neuronnätet värden/poäng för varje klass. Så om man t ex vill använda neuronnätet för att klassificera hundar och katter så kanske en bild av en hund ger outputen 9.71.3 , där det första numret (9.7) representerar hur "hundig" bilden är, medan det andra numret (1.3) representerar hur "kattig" bilden är. 

Men tydligen föredrar man att ha en output som är normaliserad, dvs att värdena är sannolikheter från 0 till 1. Istället för att man frågar 'Hur "kattig" är bilden?', så frågar man 'Hur stor chans är det att bilden föreställer en katt?'.

För att normalisera värdena använder man en softmax-funktion. Så om man skulle använda softmax på vår tidigare output skulle chansen att bilden föreställer en hund vara:

exp(9.7)exp(9.7)+exp(1.3)

Eller mer generellt:

exp(output för en viss klass)summan av exp(output för varje klass)

Så min fråga är varför man enligt definitionen ska använda exp() på värdena och inte bara använda värdena direkt istället:

output för en viss klasssumman av output för varje klass

Ni kan se här att det fungerar bra både med och utan exp():

https://www.desmos.com/calculator/w5cbmpvzsd

Dr. G 9480
Postad: 26 nov 2017 19:51

Utan att veta vad "poängen" (här 9.7 eller 1.3) innebär så är det omöjligt att svara på varför man ska exponentiera värdena eller inte. 

Man bör jämföra positiva värden, vilket exponentieringen säkerställer, men det lär inte vara orsaken till att man "ska" exponentiera. 

ConceptGrokker 2 – Fd. Medlem
Postad: 28 nov 2017 09:49 Redigerad: 28 nov 2017 09:49

Jo du har rätt, det kan vara negativa värden också, och då vill man ju att -5 ska bli ett tal väldigt nära noll (e^-5) och inte fortfarande vara negativt.

"Poängen" är värden som neuronnätet har lärt sig när den försöker optimera sig själv. Jag vet inte vad det innebär, så frågan var konstigt ställd. Men jag tror jag förstår nu, så tack för hjälpen i alla fall :)

Svara
Close