Thought about it for longer than a second this time lol. The exponents cancel out when you add the discounting term
e^(old - new) * (e^(x1 - old) + ... + e^(xj - old)
= e^(x1 - new) + ... + e^(xj - new)
Might sound like a noob but it blows me away how the fused max and normalization term in softmax just works. Like, discounting the normalization term mid-loop by e^(old_max - new_max) when a new max is found. WHY does that work?
Might sound like a noob but it blows me away how the fused max and normalization term in softmax just works. Like, discounting the normalization term mid-loop by e^(old_max - new_max) when a new max is found. WHY does that work?