Search
Duplicate

수학/ 가중 평균

가중 평균

일반적으로 평균은 모든 항의 합을 항의 수(count)로 나누는 것으로 정의된다.
xˉ1Ni=1Nxi\bar{x} \triangleq {1 \over N} \sum_{i=1}^{N} x_i
예컨대 1-10까지의 수에 대한 평균은 다음과 같이 계산된다.
i=110i=1+2+...+1010=5.5\sum_{i=1}^{10} i = {1 + 2 + ... + 10 \over 10} = 5.5
만일 현재 계산된 평균 값이 있을 때 새로운 값, 예컨대 위의 경우에 11이 추가된다면 평균값을 어떻게 업데이트해야 할까? 가장 간단한 것은 다음과 같이 모든 항에 대해 다시 합을 구하고 11로 나누는 것이다.
i=111i=1+2+...+10+1111=6\sum_{i=1}^{11} i = {1 + 2 + ... + 10 + 11 \over 11} = 6
항의 수가 작다면 간단하겠지만 항의 수가 천단위나 만단위 이상 많아지면 매번 모든 항의 합을 계산하는 것이 번거롭다. 기존 평균값과 count의 곱을 이용하면 새로운 값이 추가될 때 다음과 같이 보다 간편하게 평균을 업데이트 할 수 있다.
기존 평균×기존 count+새로운 값기존 count + 1{\text{기존 평균} \times \text{기존 count} + \text{새로운 값} \over \text{기존 count + 1}}
기존 평균과 기존 count를 곱해서 총 합을 계산 한 후에 새로운 값을 더하고 count + 1로 나누는 것으로 매우 직관적이다. 이제 기존 평균을 old value\text{old value}, 추가 되는 값을 added value\text{added value} 라 하고, (형식을 맞추기 위해) 기존 count + 1을 NN이라 하면 위의 식을 다음처럼 작성할 수 있다.
new value=(N1)×old value+added valueN=(N1)×old valueN+added valueN=(N1)N×old value+1N×added value=(NN1N)×old value+1N×added value=(11N)×old value+1N×added value\begin{aligned} \text{new value} &= {(N-1) \times \text{old value} + \text{added value} \over N} \\ &= {(N-1) \times \text{old value} \over N} + { \text{added value} \over N} \\ &= {(N-1) \over N} \times \text{old value} + { 1 \over N} \times \text{added value} \\ &= \left({N \over N } - {1 \over N}\right) \times \text{old value} + { 1 \over N} \times \text{added value} \\ &= \left(1 - {1 \over N}\right) \times \text{old value} + { 1 \over N} \times \text{added value} \end{aligned}
위의 식에서 1N=α{1 \over N} = \alpha라 치환하면 다음 식과 같이 작성할 수 있다.
new value=(1α)×old value+α×added value\text{new value} = (1-\alpha) \times \text{old value} + \alpha \times \text{added value}
이것은 가중 평균의 형식이다. 여기서 α\alpha는 기존 값과 추가되는 값의 비중을 조절해서 값을 업데이트하는 가중치의 역할을 수행한다. NN이 count이므로 양수이므로 α\alpha는 자연스럽게 0<α10 < \alpha \le 1가 된다. NN이 작을 수록 α\alpha11에 가까워지고 NN이 커질 수록 α\alpha는 0에 가까워진다.

Time Step 형식

time step으로 구분되는 업데이트 경우에도 이러한 형식을 사용할 수 있다. 이것은 현시점 tt에 어떤 값이 더해져서 다음 시점 t+1t+1로 넘어가는 형태가 된다.
yt+1=(1α)yt+αΔty_{t+1} = (1-\alpha)y_t + \alpha \cdot \Delta_t

지수 형식

지수 함수 형태에 대해서는 α\alpha 파라미터만으로 (1α),α(1-\alpha), \alpha로 하기보다는 α,β\alpha, \beta 2개의 파라미터를 사용해서 다음처럼 최대값 max(α,β)\max(\alpha, \beta)을 빼는 사용하는 형식을 사용한다.
new value=eαmax(α,β)×old value+eβmax(α,β)×added value\text{new value} = e^{\alpha - \max(\alpha, \beta)} \times \text{old value} + e^{\beta - \max(\alpha, \beta)} \times \text{added value}
α,β\alpha, \beta 두 파라미터 중 큰 값을 빼서 지수를 취하므로 최대값은 0이 되어서 가중치는 e0=1e^0 = 1이 되고, 다른 값은 음수가 되고 최대값과의 차이가 클 수록 가중치 enegative valuee^\text{negative value}는 0에 가까운 (그렇지만 0은 아닌) 값이 된다.