最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

關于Elo系統(tǒng)運作原理的簡單探究,以及對Glicko、Glicko-2的完整說明

2023-02-14 18:56 作者:旅行者IX號  | 我要投稿

(截取自水平系統(tǒng)視頻的廢案)

(輕度數(shù)學含量警告!)


Elo

Elo評級系統(tǒng)于1960年由美國物理學家Arpad Elo發(fā)明,是的,Elo三個字母并不是什么簡寫,而就是發(fā)明者的姓。當時美國象棋聯(lián)盟(USCF)在使用另一套水平系統(tǒng)來評判不同玩家的實力,但他們發(fā)現(xiàn)該系統(tǒng)并不準確,就請了同時是國際象棋大師和物理學家的Arpad Elo來做一套新的評級系統(tǒng),于是在游戲中第一個精準的水平系統(tǒng)就這么誕生了。

(Fun Fact 1970-1980年間Elo系統(tǒng)是由Arpad Elo本人自己計算的)


接下來我會稍微探究一下Elo系統(tǒng)的數(shù)學原理,雖然我的數(shù)學也只是三腳貓的功夫,但我覺得大抵算是搞懂了(?)。不過如果你不太喜歡數(shù)學,可以跳到(跳點①)來跳過一些Elo相關的理論內容。


對于留下來的觀眾,我們先來看下Elo系統(tǒng)最基礎的原理。

在開始任何運算之前,Arpad做出了一個很聰明的假設:他假設每個玩家的發(fā)揮,或者叫表現(xiàn),都是呈鐘形曲線分布的:玩家的表現(xiàn)大部分時候都位于一個平均值,有時候表現(xiàn)得好些,有時表現(xiàn)的壞些。也許你昨晚沒睡好所以打得比較差,又或許生活中發(fā)生什么好事時你會變得很亢奮從而使你發(fā)揮超常,但更多時候你的表現(xiàn)還是接近于平均值的。不同玩家有不同的平均值,代表玩家的水平。另外在假設中大部分玩家鐘形曲線的寬度,即表現(xiàn)的穩(wěn)定性差不多。

當兩個玩家對戰(zhàn)時,他們在該局的表現(xiàn)相當于從兩個鐘形曲線下方各隨機取一個點,兩個點所對應的值更大的一方相當于在本局游戲中發(fā)揮更好,也就會獲勝。

大象... 蟒蛇.......

在這樣的模型下,兩人的平均值相差越大,水平更高的玩家越能穩(wěn)定地戰(zhàn)勝水平更低的玩家。反之雙方的平均值相差越小,勝率就會越趨近于50%。

事實上,如果我們假設兩人的表現(xiàn)是都符合正態(tài)分布的,同時以分布的標準差為單位把兩個分布的平均值的差表示出來,這個勝率是可以被準確計算出來的。兩個獨立的正態(tài)分布的隨機變量的差值的隨機變量依然會是呈正態(tài)分布的,新分布中高于零的部分的占比自然就是玩家A贏玩家B的勝率,這個值可以用正態(tài)函數(shù)的概率累計函數(shù),即誤差函數(shù)來計算出來。由此我們就可以只用雙方分差作為參數(shù)計算出雙方的勝率。

不過后來經過國際象棋聯(lián)盟對實際數(shù)據(jù)的驗證,相比正態(tài)分布,計算勝率時使用邏輯分布的累計分布函數(shù)——邏輯函數(shù)會更加貼切。而這也就催生網上最常見的Elo公式:(玩家的表現(xiàn)分布間的差值產生的新隨機變量的分布更偏向于邏輯分布)

值得注意的是這里的10和400都是Arpad在設計時為了讓分數(shù)更直觀自己選的。這兩個數(shù)字的含義是:分數(shù)相差400分的兩位玩家,對戰(zhàn)時勝率相差十倍(即90.9%和9.09%)。實際使用Elo系統(tǒng)時不同設計者完全可以(大部分時候也會)自己定義這兩個數(shù)。另外整個玩家群體中所有分數(shù)的平均值也是由設計師自定義的,可以是0,也可以是2000、10000等等。

這里我再擺一組數(shù)據(jù)來幫助理解分差與預期勝率間的關系。與對手分數(shù)相同時勝率自然是50%,高100分時勝率為64%,高200分時勝率是76%,高300分時勝率是84%,高400分時勝率是91%……到高800分時勝率是99%。隨著分差加大預測的勝率會逼近于100%但不會達到100,熟悉邏輯函數(shù)的朋友應該對這個規(guī)律并不陌生。

這個公式也就構成了Elo系統(tǒng)的基礎:給定任意兩人準確的分差,我們能通過這個公式算出他們間的勝率?;蛘叻催^來說,給定任意兩人間足夠多的對局樣本,我們可以通過他們間的勝率計算出在系統(tǒng)下應該讓他們之間相差多少分。


接下來的問題是:如果有勝率已知但分數(shù)未定的兩名玩家A、B,我們怎樣使他們間的分差回歸到應有的值呢?這里就要靠Elo系統(tǒng)的分數(shù)更新公式了。在每局對局結束過后,Elo系統(tǒng)會根據(jù)我們對勝率的預測與實際的勝負結果來進行分數(shù)更新。贏的人加分,輸?shù)娜藴p分。具體公式如下:

這里Ea是上面式子中預測出玩家A的勝率,Sa是在玩家A的角度上的對局結果(贏為1,平局為0.5,輸為0),而K是一個人為設定的規(guī)定分數(shù)變化速度的系數(shù):K越大,玩家的分數(shù)變化越快,但分數(shù)的上下抖動就會越劇烈。反之K越小,玩家分數(shù)變化越慢,但分數(shù)上下抖動幅度就越小。因此許多國象聯(lián)盟在低分段中用大K值32,在高分段用小K值16。

用簡單的語言描述下這個式子,就是用實際結果減去預期結果,乘上一個系數(shù),然后加到原來的分數(shù)上。

不難看出,分數(shù)更新的值是與 ?預測結果 和 實際結果 ?間的差值呈正比的。如果預測大概率贏,實際贏了,那么Sa和Ea的差值較小,加分也就較小。預測小概率贏,實際贏了,Sa和Ea的差值較大,加分也就較大。反過來輸?shù)那闆r也是如此。越是意料之內的輸,減分越小,越是意料之外的輸,減分越大。

換成人話來說:贏比自己分高的人,加分多,贏比自己分低的人,加分少;輸比自己分高的人,加分少,輸比自己分低的人,加分多。相信在大家的理解里這應該也是一個很自然的規(guī)則。

另外值得注意的一點是,因為對局總要有人贏,即Ea(A贏的概率)和Eb(B贏的概率)之和必定為0,代入回上面的式子中,同一場對局后,雙方加分的值和減分的值必定是相同的(假設k值相同)。贏的人加多少分,輸?shù)娜司蜁p多少分。


那么為什么這個式子能讓玩家的分數(shù)回歸正確的值呢?其實原理也很簡單

我們假設有兩個玩家,他們的實力差距使得玩家A打玩家B剛好有75%的勝率,也就是每4把贏3把輸1把。

在雙方當前的分數(shù)都已位于他們實際分數(shù)上的情況下,系統(tǒng)能準確預測出他們之間的勝率0.75。這時玩家A每贏一把加K*(1(贏)-0.75) = 0.25K的分,而每輸一把要減 K *(0(輸)-0.75) = -0.75K.... 要減0.75k的分。贏三把的分數(shù)恰好抵消輸一把的分數(shù),雙方的分數(shù)也就會維持在這個位置。

(這是個過度簡化的說法,還要假設分數(shù)在四把都結束后才會計算,不過實際情況下如果每局結束就結算分,給定足夠多的局數(shù)也依然會回歸原來的分數(shù))

而如果雙方一開始分差比實際的差距小,那么系統(tǒng)對A勝率的預測就會偏小。比如系統(tǒng)預測出A贏B的概率是0.6而非0.75,那么贏三把加的分是1.2k,輸一把減的分是0.6k,平均來說A逐漸加分,B逐漸減分,A和B的分差就會逐漸拉大,向正確值回歸。反過來的道理也是一樣的。也就是說在Elo系統(tǒng)下,雙方的分差是會自動回歸到真實值的。

而這個規(guī)律拓展到一大群玩家間的對局也是成立的。在玩家間發(fā)生大量的相互對戰(zhàn)的過程中,所有玩家的分數(shù)也都會逐漸回歸與玩家實力對應的數(shù)值。分數(shù)虛高的玩家會因為加分少減分多掉回去,而分數(shù)比實際值低的玩家會因為加分多減分少升回來。由此勝率計算公式和分數(shù)更新公式就做到了讓玩家的分數(shù)自動回歸所屬的位置,這也就是Elo系統(tǒng)的運作原理。


(跳點①)


好的,那在這里總結一下Elo系統(tǒng)的運作模式:

· Elo系統(tǒng)通過賦給玩家虛擬的分數(shù)來表示玩家水平。

· 分數(shù)的意義是預測玩家間對戰(zhàn)的勝率,兩人對戰(zhàn)時分數(shù)高的人勝率更高,分差越大勝率就越一邊倒。

· 分數(shù)的調整在比賽結束后進行。玩家贏的局加分,輸?shù)木譁p分。加減分的量只由雙方的分數(shù)差與比賽結果決定。高分打贏低分時,因為高分贏低分的概率本來就大,所以高分拿分少,低分掉分少,;低分打贏高分時,因為低分贏高分的概率小,所以低分拿分多,高分掉分也多。 跳過來的觀眾可以暫停思考幾秒,這點應該是非常符合直覺的。

在這個原理中不難發(fā)現(xiàn),Elo系統(tǒng)是具有自適應性的。即無論對方的實力如何,只要對方的分數(shù)是準確的,對局結果都不會對你的分數(shù)造成不公正的影響。比如你在2000分時遇到了一個4000分的人,你雖然幾乎沒有可能贏他,但也正因如此,輸了之后你掉的分幾乎可以忽略不計。又或者說你遭遇了一個很困難的對局,每五把這樣的對局你才能贏一把,但其實贏得這一把加的分數(shù)是完全可以抵消輸?shù)乃陌阉鶃G失的分數(shù)的。

不過說了這么多,現(xiàn)在除了各種棋類和一些職業(yè)體育賽事的排行,現(xiàn)在我們幾乎已經看不到Elo的身影了。這主要是因為Elo系統(tǒng)中玩家分數(shù)向真實值的收斂速度大部分時候是非常緩慢,因此在電子游戲中大多用Elo系統(tǒng)的各種后繼者代替了。(從這個角度來看,針對Elo的抱怨其實大多是在抱怨根本不存在的東西)


Glicko

接下來我們就來具體看下這些Elo的改進版。首先是由哈佛大學統(tǒng)計學教授Mark Glickman發(fā)明的Glicko系統(tǒng)。

Glicko系統(tǒng)的提出最主要的目的是解決新玩家與太久不玩的玩家的分數(shù)不可靠的問題。

設想這樣一個場景:兩個同樣是1700分的玩家進行對戰(zhàn),但是一個五年都沒上過線,而另一個一直在玩。顯然,這兩個1700分的可靠性是不同的,后者的1700分明顯比前者更可靠。在直覺上來說,我們會認為這個五年沒碰過游戲的玩家的分數(shù)應該被大幅調整,而另一方的分數(shù)只應該接受小幅調整。

但是在Elo系統(tǒng)下,我們只能對雙方的分數(shù)進行同樣幅度的調整,因為Elo中的加分與減分總是(其實是大部分時候)相等的,這兩個玩家一個加多少分,另一個就得減多少分。這樣的處理在這種場景下顯然是不合理的。

Glicko系統(tǒng)就通過再Elo的基礎上引入一個新的概念“Rating Deviation”,分數(shù)標準差,簡稱RD,來對玩家分數(shù)的“可靠性”進行衡量。

不過要往細節(jié)說的話就很復雜了,我在這里只說定性的結論。


玩家的RD代表我們有多確定玩家的分數(shù)能正確代表玩家實力。RD越高,我們越不確定玩家的分數(shù)能代表他的實力,即分數(shù)越不可靠;RD越低,我們就越確定,即分數(shù)越可靠。

在Glicko中,每場比賽結束后,玩家分數(shù)的更新除了受輸贏結果、雙方分數(shù)影響外,也會被RD所影響。RD越大,分數(shù)加減越大;RD越小,分數(shù)加減越小。也就是對我們很能信任的分數(shù)進行小幅調整,對我們很不確定的分數(shù)進行大幅調整。

RD本身的變化受兩個場景所影響:

1.每場對局結束后RD會根據(jù)對局情況縮小一點,代表對局進行的越多,我們對這名玩家的分數(shù)的準確性越有信心。但是縮小后的RD不會低于一個人為設定的最小值,保證玩家始終能有一定幅度的分數(shù)加減。

2.每個「時間段」結束后所有玩家的RD會上漲一次,代表分數(shù)的可靠性會隨時間衰減,這樣玩家越久不玩RD便會越高。這里時間段的長度是可以根據(jù)需要自由設置的,幾周到一年都可以。RD的上漲同樣也不會高于最大值,而這個最大值等同于一個新玩家的初始RD,即一個我們完全不知道水平如何的玩家的RD。

這樣一來系統(tǒng)就能對新玩家和退坑的老玩家進行合適的響應了。很多游戲中存在“新號上分快”的現(xiàn)象也正是由此而來的。新號的RD處于最大值,因此分數(shù)更新的幅度自然是最大的,上分和掉分的幅度都會很大,在進行的對局變多以后RD才會逐漸衰減下來。上面提到的Elo系統(tǒng)對玩家實際分數(shù)的逼近速度過慢的缺點也就由此解決了。


Glicko-2

不過Glicko系統(tǒng)也并非是完美的,稍微觀察下兩條決定RD變化的規(guī)則就不難發(fā)現(xiàn)問題:這樣的設計是建立在“玩家的水平在短時間內不會產生大幅變動”的假設下的,而在大部分情況下這個假設確實成立。但考慮游戲的實際情況,玩家通過線下練習、觀看攻略、或是自己琢磨策略等途徑是可能實現(xiàn)短時間內的提高的。又或者在賬號轉移、玩家發(fā)生意外等情況下,玩家水平也可能突然降低。而Glicko系統(tǒng)則難以對這樣的情況進行響應。

Glickman就針對這個問題對Glicko系統(tǒng)再次進行了改進,做出了Glicko-2系統(tǒng)。Glicko-2系統(tǒng)比Glicko還要復雜,老實說我也并不確定自己完全搞懂了,在這里也就只能給些過度簡化后的結論。如果你想深入了解Glicko-2可以看看Glickman自己寫的文檔:。

Glicko-2系統(tǒng)引入了另一個新變量“易變性”(Rating Volatility),符號σ,來衡量玩家的對局表現(xiàn)有多不符合系統(tǒng)預期。

如果一個玩家的表現(xiàn)一直符合預期,打同水平的人輸輸贏贏,打分數(shù)高的人輸多贏少,那么它的σ就會較低。而如果一個玩家不斷地穩(wěn)定贏過同分和分更高的對手,那他的σ就會較高。當然,穩(wěn)定地輸給同分或分更低的對手時σ也會變高。(甚至一邊贏高分一邊輸?shù)头忠矔箂igma變大)

σ在每局結束后會根據(jù)雙方分數(shù)、RD與對局勝負進行更新。

在σ更新后RD會根據(jù)σ的大小進行增加,σ的值越大,RD增加的值就越大。而RD是決定分數(shù)加減的幅度的。也就是說對于σ大,即表現(xiàn)很不符合預期,在猛贏或猛輸?shù)耐婕?,我們會讓他的加減分幅度變得更大,代表著我們認為現(xiàn)有的分數(shù)不能準確反應他的實力了。如果你在游戲中發(fā)現(xiàn)大量連勝后加分很猛,那很有可能就是σ在發(fā)揮作用了。

當然,在這之后RD依然會根據(jù)對局情況再進行縮小,這里和Glicko1是一樣的。



那么到了Glicko-2這一代,一個功能完備,且收斂速度很快的Elo類水平系統(tǒng)就算完成了。對于跳到這里來的觀眾,是的,Glicko-2是Elo的改進版的改進版,以及早就沒人在用Elo了。

現(xiàn)在絕大部分成熟的電子游戲使用的就是高度類似于Glicko-2的水平評估系統(tǒng),CS-GO、Splatoon 2等游戲被證實使用的就是Glicko-2,而像英雄聯(lián)盟、星際爭霸、守望先鋒等游戲也基本可以確定至少是在用類似Glicko-2的某種變種。

對于只關心“上分”的玩家,我們來小結一下到Glicko-2這一代為止,玩家分數(shù)的加減會受哪些因素影響。

0.分數(shù)是加還是減由對局結果決定,勝者加分,輸者減分,加減分的大小由后幾條決定。

1.你的分數(shù)與你對手的分數(shù)。對手的分越高,你贏的時候加分越多,輸?shù)臅r候減分越少。反之對手的分越低,你贏的時候加分越少,輸?shù)貢r候減分越多。

2.你進行游戲得有多頻繁。新玩家或很久沒玩的玩家在對局過后加減分的幅度會很大,而經常玩的玩家對局后的加減分較小。

3.你最近的勝負情況。如果你在連續(xù)贏較強的對手或連續(xù)輸給較弱的對手(甚至一段時間內又贏較強的對手又輸給較弱的對手也應該包括在內),你加減分的幅度就會比較大。

不過需要注意的是這里的分數(shù)是指你的真實分數(shù),即代表(游戲能評估出的最準確的)你真實實力的分數(shù)。很多游戲不會把真實分數(shù)給你看,你能看到的只有和分數(shù)有一定關聯(lián)性的“段位”。


關于Elo系統(tǒng)運作原理的簡單探究,以及對Glicko、Glicko-2的完整說明的評論 (共 條)

分享到微博請遵守國家法律
建宁县| 巴青县| 新干县| 大名县| 宝清县| 丹阳市| 昌邑市| 东阿县| 福安市| 承德县| 九龙城区| 垫江县| 彰化县| 赣州市| 延边| 惠州市| 承德市| 和静县| 攀枝花市| 武穴市| 乌拉特前旗| 本溪| 南溪县| 津市市| 儋州市| 天津市| 双柏县| 东宁县| 宁都县| 武冈市| 邹平县| 衡山县| 沁源县| 铁岭县| 昆明市| 海门市| 金门县| 分宜县| 水城县| 海淀区| 阿合奇县|