I just for the first time saw the function softmax() in this SO answer to How do I use a minimization function in scipy with constraints and was intrigued.
Another way of weighting variables where the sum of the weights is constrained to equal 1, is to use minimize with no constraints, initialize with near-zero values but use a softmax in the scoring function.
SciPy's scipy.special.softmax links to the IMA Journal of Numerical Analysis' Accurately computing the log-sum-exp and softmax functions The abstract begins:
Evaluating the log-sum-exp function or the softmax function is a key step in many modern data science algorithms, notably in inference and classification.
and the introduction cites examples, but the paper focuses on issues of computational evaluation. Wikipedia's Softmax function seems long, thorough and descriptive, but seems written for audiences who already have some knowledge in machine learning or are fluent "speakers of math".
I do a lot of fitting and optimization but so far scipy.optimize.minimize on straightforward python functions has offered everything I need, and when I hit the linked Stack Overflow question all I needed to know is that I could add bounds to the parameters.
But I find this softmax() function intriguing so I can't let it go. In order to at least get me started, could someone address:
Question: What problems does softmax() solve and when should I think of using it?
and do so in relatively simple terms?