글리코 평점 시스템

글리코 평점 시스템 및 글리코-2 평점 시스템은 체스 및 바둑과 같은 2인 게임에서 플레이어의 실력을 평가하는 방법이다. 엘로 등급 시스템을 개선하기 위해 Mark Glickman에 의해 발명되었으며 처음에는 체스 평점 시스템에 주로 사용되었다. 측정에 대한 Glickman의 주요 기여는 RD(Ratings Deviation, 평점 편차)라는 "평점 신뢰도"의 도입이다. 글리코 및 글리코-2 평점 시스템은 모두 공개 도메인(public domain)에 있으며 온라인 게임 서버 (예: Pokémon Showdown, Lichess, Free Internet Chess Server, Chess.com, OGS(Online Go Server), 카운터-스트라이크: 글로벌 오펜시브, 팀 포트리스 2, 도타 언더로드, 길드워 2, 스플래툰 2, Dominion Online, TETR. IO, Gods Unchained ), 경쟁 프로그래밍 대회 등에서 사용된다. 시스템에 사용된 공식은 Glicko 웹사이트에서 찾을 수 있다. RD는 플레이어 평점의 정확도를 측정하며, 하나의 RD는 하나의 표준 편차와 같다. 예를 들어, 등급이 1500이고 RD가 50인 플레이어는 95% 신뢰로 1400에서 1600(1500에서 표준 편차의 2배) 사이의 실제 실력을 갖는다. 이 범위는 평점에서 RD의 2배(정확히는 1.96배) 더하고 빼서 계산한다. 게임 후 평점 변경량은 RD에 따라 다른데, 플레이어의 RD가 낮을 때(자신의 평점이 이미 정확한 것으로 간주되기 때문에) 또는 상대의 RD가 높을 때(상대방의 실제 평점이 정확하지 않기 때문에 게임 결과로 얻는 정보가 거의 없기 때문에) 변화가 적다. RD 자체는 게임을 한 후 감소하지만, 비활성 시간이 지날수록 서서히 증가한다. 글리코-2 평점 시스템은 글리코 평점 시스템을 개선하고 평점 변동성 σ를 추가로 도입한다. 글리코-2 평점 시스템의 아주 약간 수정된 버전은 호주 체스 연맹에 의해 구현되었다. 새로운 등급 편차 R D {\displaystyle RD} 는 이전 등급 편차 R D 0 {\displaystyle RD_{0}} 로부터 얻는다. R D = min ( R D 0 2 + c 2 t , 350 ) {\displaystyle RD=\min \left({\sqrt {{RD_{0}}^{2}+c^{2}t}},350\right)} 이때 t {\displaystyle t} 는 마지막 대회 이후부터 흐른 시간(평가 기간)이며, 평가되지 않은 플레이어의 RD는 350으로 가정한다. 하나의 평가 기간 내에 여러 게임이 발생한 경우 동시에 발생한 것으로 처리한다. 평가 기간은 게임을 얼마나 자주 편성하느냐에 따라 길게는 몇 개월, 짧게는 몇 분 정도로 짧게도 사용할 수 있다. 상수 c {\displaystyle c} 는 일정 시간 동안 측정된 플레이어의 기술의 불확실성을 기반으로 정해진다. 이는 철저한 데이터 분석으로부터 계산하거나, 또는 플레이어의 등급 편차가 등급이 지정되지 않은 플레이어의 등급 편차로 증가하기까지 경과해야 하는 시간을 고려하여 추정할 수 있다. 예를 들어, 플레이어의 평점 편차가 초기 불확실성 350으로 되돌아가는데 100 평가 기간이 걸린다고 가정하고 일반적인 플레이어의 평점 편차가 50인 경우, 350 = 50 2 + 100 c 2 {\displaystyle 350={\sqrt {50^{2}+100c^{2}}}} 를 풀어 c = ( 350 2 − 50 2 ) / 100 ≈ 34.6 {\displaystyle c={\sqrt {(350^{2}-50^{2})/100}}\approx 34.6} 를 얻을 수 있다. 일련의 게임을 m {\displaystyle m} 회 진행한 후 새로운 평점은 다음 방정식에 의해 결정된다. r = r 0 + q 1 R D 2 + 1 d 2 ∑ i = 1 m g ( R D i ) ( s i − E ( s | r 0 , r i , R D i ) ) {\displaystyle r=r_{0}+{\frac {q}{{\frac {1}{RD^{2}}}+{\frac {1}{d^{2}}}}}\sum _{i=1}^{m}{g(RD_{i})(s_{i}-E(s|r_{0},r_{i},RD_{i}))}} 식에 사용되는 각 변수의 값은 다음과 같이 결정된다. g ( R D i ) = 1 1 + 3 q 2 ( R D i 2 ) π 2 {\displaystyle g(RD_{i})={\frac {1}{\sqrt {1+{\frac {3q^{2}(RD_{i}^{2})}{\pi ^{2}}}}}}} E ( s | r 0 , r i , R D i ) = 1 1 + 10 ( g ( R D i ) ( r 0 − r i ) − 400 ) {\displaystyle E(s|r_{0},r_{i},RD_{i})={\frac {1}{1+10^{\left({\frac {g(RD_{i})(r_{0}-r_{i})}{-400}}\right)}}}} q = ln ⁡ ( 10 ) 400 = 0.00575646273 {\displaystyle q={\frac {\ln(10)}{400}}=0.00575646273} d 2 = 1 q 2 ∑ i = 1 m ( g ( R D i ) ) 2 E ( s | r 0 , r i , R D i ) ( 1 − E ( s | r 0 , r i , R D i ) ) {\displaystyle d^{2}={\frac {1}{q^{2}\sum _{i=1}^{m}{(g(RD_{i}))^{2}E(s|r_{0},r_{i},RD_{i})(1-E(s|r_{0},r_{i},RD_{i}))}}}} r i {\displaystyle r_{i}} 는 각 상대의 평점을 나타낸다. R D i {\displaystyle RD_{i}} 는 각 상대의 등급 편차를 나타낸다. s i {\displaystyle s_{i}} 는 각 게임의 결과를 나타내고, 승리는 1, 무승부는 1 2 {\displaystyle {\frac {1}{2}}} , 패배는 0이다. 1단계에서의 RD 계산의 기능은 모델에 의해 관찰되지 않는 기간 동안 플레이어의 기술 수준에서 증가하는 불확실성을 설명하기 위해 RD를 적절하게 증가시키는 것이었다. 3단계에서는 일련의 게임 후에 RD를 갱신(감소)한다. R D ′ = ( 1 R D 2 + 1 d 2 ) − 1 {\displaystyle RD'={\sqrt {\left({\frac {1}{RD^{2}}}+{\frac {1}{d^{2}}}\right)^{-1}}}} 글리코-2는 원래 글리코 알고리즘과 유사한 방식으로 작동하고, 플레이어의 경기력이 얼마나 불규칙한지에 따라 플레이어의 평점이 예상되는 변동 정도인 평점 변동성 σ {\displaystyle \sigma } 가 추가되었다. 예를 들어, 플레이어의 평점 변동성은 일관된 수준의 실력을 보일 때 낮을 것이고, 그 일관성을 갖는 기간 후에 예외적으로 강력한 결과를 얻을 때 증가할 것이다. 글리코-2 알고리즘에 대한 간략한 설명은 다음과 같다. 한 평가 기간 동안, 현재 평점이 μ {\displaystyle \mu } 이고 평점 편차가 ϕ {\displaystyle \phi } 인 플레이어가, 평점이 μ 1 , . . . , μ m {\displaystyle \mu _{1},...,\mu _{m}} 이고 평점 편차가 ϕ 1 , . . . , ϕ m {\displaystyle \phi _{1},...,\phi _{m}} 인 상대 m {\displaystyle m} 와 게임을 하여 결과적으로 점수 s 1 , . . . , s m {\displaystyle s_{1},...,s_{m}} 를 얻었다고 가정한다. 먼저 보조량 v {\displaystyle v} , Δ {\displaystyle \Delta } 를 계산한다. v = [ ∑ j = 1 m g ( ϕ j ) 2 E ( μ , μ j , ϕ j ) { s j − E ( μ , μ j , ϕ j ) } ] − 1 {\displaystyle v=\left[\sum _{j=1}^{m}g(\phi _{j})^{2}E(\mu ,\mu _{j},\phi _{j})\{s_{j}-E(\mu ,\mu _{j},\phi _{j})\}\right]^{-1}} Δ = v ∑ j = 1 m g ( ϕ j ) { s j − E ( μ , μ j , ϕ j ) } {\displaystyle \Delta =v\sum _{j=1}^{m}g(\phi _{j})\{s_{j}-E(\mu ,\mu _{j},\phi _{j})\}} 식에서 쓰인 함수는 다음과 같다. g ( ϕ ) = 1 1 + 3 ϕ 2 / π 2 , {\displaystyle g(\phi )={\frac {1}{\sqrt {1+3\phi ^{2}/\pi ^{2}}}},} E ( μ , μ j , ϕ j ) = 1 1 + exp ⁡ { − g ( ϕ j ) ( μ − μ j ) } . {\displaystyle E(\mu ,\mu _{j},\phi _{j})={\frac {1}{1+\exp\{-g(\phi _{j})(\mu -\mu _{j})\}}}.} 시간 경과에 따른 변동성을 제한하는 작은 상수 τ {\displaystyle \tau } 를 선택한다. 예를 들어, τ = 0.2 {\displaystyle \tau =0.2} 를 선택할 수 있다. τ {\displaystyle \tau } 가 작을수록 결과가 뒤집혔을 때 급격한 평점 변화를 막는다. 함수 f ( x ) = 1 2 e x ( Δ 2 − ϕ 2 − v 2 − e x ) ( ϕ 2 + v + e x ) 2 − x − ln ⁡ ( σ 2 ) τ 2 , {\displaystyle f(x)={\frac {1}{2}}{\frac {e^{x}(\Delta ^{2}-\phi ^{2}-v^{2}-e^{x})}{(\phi ^{2}+v+e^{x})^{2}}}-{\frac {x-\ln({\sigma ^{2}})}{\tau ^{2}}},} 에 대해, f ( A ) = 0 {\displaystyle f(A)=0} 를 만족하는 값 A {\displaystyle A} 를 찾는다. 이를 해결하는 효율적인 방법은 regula falsi 절차의 수정된 버전인 Illinois 알고리즘을 사용하는 것이다. 이 반복 절차가 완료되면 새로운 등급 변동성을 σ ′ = exp ⁡ { A / 2 } {\displaystyle \sigma '=\exp\{A/2\}} 으로 설정한다. 플레이어는 새로운 평점 편차와 평점을 얻는다. ϕ ′ = 1 / 1 ϕ 2 + σ ′ 2 + 1 v , {\displaystyle \phi '=1{\Big /}{\sqrt {{\frac {1}{\phi ^{2}+\sigma '^{2}}}+{\frac {1}{v}}}},} μ ′ = μ + ϕ ′ 2 ∑ j = 1 m g ( ϕ j ) { s j − E ( μ , μ j , ϕ j ) } . {\displaystyle \mu '=\mu +\phi '^{2}\sum _{j=1}^{m}g(\phi _{j})\{s_{j}-E(\mu ,\mu _{j},\phi _{j})\}.} 이러한 평점과 평점 편차는 기존의 글리코 알고리즘과 다른 척도에 있으며, 둘을 적절하게 비교하려면 변환 과정을 거쳐야 한다. 체스 평가 시스템 “OGS has a new Glicko-2 based rating system!”. 2017년 8월 7일. 2020년 4월 19일에 확인함.  Valve. “Team Fortress 2 Update Released”. 2021년 6월 29일에 확인함.  Justin, O'Dell. “Finding the perfect match”. 2015년 1월 16일에 확인함.  OatmealDome. “An In-Depth Look at the Splatoon 2 Ranking System”. 《oatmealdome.me》 (미국 영어). 2021년 6월 16일에 확인함.  Clay, Chris (2019년 1월 31일). “ChrisClay on Twitter: "We're using a Glicko style system for MMR."”. 《Twitter》. 2020년 12월 7일에 확인함.  Glickman, Mark E. (2013년 11월 30일). “Example of the Glicko-2 system” (PDF). 《Glicko.net》. 2020년 1월 27일에 확인함.  “Australian Chess Federation Ratings By-Law” (PDF). 2019년 1월 17일에 확인함.  “Welcome to Glicko ratings”.  Glickman 교수의 Glicko-웹사이트 Microsoft의 TrueSkill [1] 등급 시스템은 Glicko의 많은 아이디어를 차용합니다. forwardloop/glicko2s JVM용 Glicko-2 구현 RobKohr/glicko JavaScript Glicko-2 구현. mmai/glicko2js 클라이언트 측 javascript 및 node.js Glicko-2 구현 deepy/glicko2 Python Glicko-2 구현. sublee/glicko2 Python Glicko-2 구현. Alec Stephenson과 Jeff Sonas의 PlayerRatings R Glicko 구현. scala-glicko2 Scala Glicko-2 구현. dimos/glicko2 Scala 및 Scala.js를 위한 Glicko-2 구현