瞭解機率知識,機率作為機器學習的底層邏輯

古月木易01發表於2020-06-24

1. 隨機

隨機是我們進行機率推導的基石之一。我們的統計學中經常說一枚硬幣拋正面的機率是50%,就是基於每次拋硬幣都是隨機事件。

真隨機” 和 “偽隨機”的區別:

真隨機

在真隨機中,每一個事件都是相互獨立、服從真隨機分佈的,不受其他事件的發生而改變。

偽隨機

我們程式設計師都知道,程式給定條件,得到的是確定的結果。所以我們編寫的Math.random()肯定不是真隨機,而是偽隨機。程式碼底下無秘密,我們看下自帶random函式的隨機數產生的邏輯。

attachments-2020-06-Cjh0Bma85ef32f5e7718a.jpg

圖1 random函式計算原始碼

可以看出,如果給定相同的seed,random方法將返回相同的隨機數。所以程式只是在生成近似隨機結果

2. 使用者對隨機的感受體驗

因此真隨機在實際使用過程中,並不一定帶來好的體驗。而很多偽隨機演算法更多的是在照顧使用者的感受。

PRD機制(Pseudo Random Distribution)

在遊戲中,會有機率暴擊的設計。比如某個角色的大招有35%的機率使出暴擊,按照真隨機,那麼 連續暴擊的機率 0.35X0.35=12.25%。 
過高的暴擊機率對嚴謹的競技賽事來說,無疑是極其不公平的。因為一次人品爆發秒掉對方核心,可能直接決定賽事的成敗,而缺少了競技的成分。 
因此遊戲公司大都遵循 PRD機制PRD公式如下:

attachments-2020-06-4AlBR1Lf5ef32f739f0fc.jpg

圖2 PRD公式 

其中,C是一個小於1的常數(演算法複雜,可以查表),N表示嘗試次數,P為機率。公式表明的意義是:  從事件發生起,每次不成功的嘗試都會增加1個固定值。 當觸發暴擊後,機率N重新計算。

attachments-2020-06-mDURmurl5ef32f867a5ed.jpg

圖3 預先算好的C值表

從表中,可以查到35%機率,使用的C約為16%,因此可以算的p(7)=16x7%=112%, 即7次必出現1次暴擊。  同時上來即  兩次暴擊的機率為 0.16x0.16 = 2.56%,大大降低了人品的干預。

3. 總結

機器學習發展這麼快,機率作為機器學習的底層邏輯,瞭解點機率知識不虧。

本文轉自:奈學開發者社群


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69976612/viewspace-2700579/,如需轉載,請註明出處,否則將追究法律責任。

相關文章