Wednesday, April 10, 2013

Lunchtime Sports Science: Introducing tanh5

As I mentioned in a previous article on ratings systems, the log5 estimate for participant 1 beating participant 2 given respective success probabilities \( p_1, p_2 \) is
p &= \frac{p_1 q_2}{p_1 q_2+q_1 p_2}\\
&= \frac{p_1/q_1}{p_1/q_1+p_2/q_2}\\
\frac{p}{q} &= \frac{p_1}{q_1} \cdot \frac{q_2}{p_2}
\end{align} where \( q_1=1-p_1, q_2=1-p_2, q=1-p \).

Where does this come from? Assume that both participants each played average opposition. In a Bradley-Terry setting, this means
p_1 &= \frac{R_1}{R_1 + 1}\\
p_2 &= \frac{R_2}{R_2 + 1},
\end{align} where \( R_1 \) and \( R_2 \) are the (latent) Bradley-Terry ratings; the \( 1 \) in the denominators is an estimate for the average rating of the participants they've played en route to achieving their respective success probabilities.

In a Bradley-Terry setting, it's true that the product of the ratings in the entire pool is taken to equal 1. But participants don't play themselves! Thus, if participant 1 played every participant but itself, the average opponent would have rating \( R \), where \( R_1 \cdot R^{n-1} = 1 \). Here \( n \) is the number of participants in the pool.

Our strength estimate for the average opponent faced is then
R &= {R_1}^{-\frac{1}{n-1}}.
There are two extreme cases. If \( n=2 \), then \( R = \frac{1}{R_1} \); as \( n \to +\infty \), \( R \to 1 \).

The limit extreme case is log5; the \(n=2\) extreme case I call tanh5. We compute
p_1 &= \frac{R_1}{R_1 + 1/R_1}\\
p_2 &= \frac{R_2}{R_2 + 1/R_2}\\
\textrm{tanh5} = p &= \frac{ \sqrt{p_1 q_2} }{ \sqrt{p_1 q_2} + \sqrt{q_1 p_2} }.
Why tanh5? We can think of log5 as derived from the logistic function by setting \( \log(R)=0 \) for the opponent's rating; analogously, tanh5 is derived from the hyperbolic tangent function by setting \( \log(R)=0 \) for the opponent's rating.

Note that we have a spectrum of estimates corresponding to each value for \(n\), but these are the two extremes. This also gives a new spectrum of activation functions for neural networks, but I'll explore this application later.

No comments:

Post a Comment