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 , 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:
Eller mer generellt:
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:
Ni kan se här att det fungerar bra både med och utan exp():
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.
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 :)