黃易
(咸陽職業(yè)技術(shù)學(xué)院 體育學(xué)院, 陜西 咸陽 712000)
隨著計算機技術(shù)的迅速發(fā)展,為解決以前無法解決的各種任務(wù)開辟了新的機遇。機器學(xué)習(xí),尤其是神經(jīng)網(wǎng)絡(luò)的普及,最近達到了頂峰,因為機器學(xué)習(xí)算法被描述得比他們的使用更早,甚至對幾乎每個人都買得起的計算機也變得相當有效。機器學(xué)習(xí)是一個非常有前途的行業(yè),特別是使用神經(jīng)網(wǎng)絡(luò)[1-5]。
博彩領(lǐng)域,與機器學(xué)習(xí)不同,已經(jīng)流行多年。盡管這一領(lǐng)域存在時間長,而且無障礙,但統(tǒng)計數(shù)字顯示,這一領(lǐng)域的受歡迎程度每年都在增長,這使它得以發(fā)展,而且每年都在使用新的方法來鼓勵越來越多的人投入其中。
考慮到博彩這一領(lǐng)域的不斷普及,以及市場上有很多投注處,可以得出這樣的結(jié)論:目前還沒有一種算法能夠準確預(yù)測將要發(fā)生的體育賽事結(jié)果。因為一場體育比賽的結(jié)果受到很多因素的影響,其中許多因素是不可預(yù)測的。盡管如此,世界上許多頂尖大學(xué)都在致力于發(fā)明一種具有高預(yù)測性的算法[6-11]。因此,體育賽事本身,例如一場足球比賽的結(jié)果,是由許多因素擬合的結(jié)果,每一個因素都有不同程度的影響。由于影響因素之間缺乏明顯的聯(lián)系,專家們無法根據(jù)自己的邏輯結(jié)論百分之百地預(yù)測出結(jié)果。
盡管有神經(jīng)網(wǎng)絡(luò)的原理,但它的實現(xiàn)有很多方法、結(jié)構(gòu)變體和學(xué)習(xí)算法[12]。有些神經(jīng)網(wǎng)絡(luò)易于實現(xiàn),有些則難以實現(xiàn),但為學(xué)習(xí)提供了重要的方法。文獻分析表明,與其他神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相比,直連神經(jīng)網(wǎng)絡(luò)的效率高,實現(xiàn)復(fù)雜度高。
BP(Back Propagation)神經(jīng)網(wǎng)絡(luò)是最流行的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)之一,不僅因為其實現(xiàn)的復(fù)雜性,還因為它的生產(chǎn)率和效率高[13-15]。這類神經(jīng)網(wǎng)絡(luò)之間最大的區(qū)別是其組成部分不形成回路,與遞歸神經(jīng)網(wǎng)絡(luò)相反。
在直連的BP神經(jīng)網(wǎng)絡(luò)中,神經(jīng)元從與之相關(guān)的其他神經(jīng)元接收更高層次的數(shù)據(jù),并將結(jié)果傳遞到更低層次。因此,根據(jù)神經(jīng)網(wǎng)絡(luò)的名稱,其中的信息只有一種分布方式,即從入口到出口,通過神經(jīng)網(wǎng)絡(luò)的所有隱含層。
在這種神經(jīng)網(wǎng)絡(luò)中,結(jié)果的形成是一種標準方法,其中信息通過神經(jīng)元中具有一定權(quán)重的突觸傳遞,這些突觸對所獲得的結(jié)果進行總結(jié),并將激活函數(shù)(傳遞函數(shù))應(yīng)用于所獲得的數(shù)據(jù)。這個過程是不變的,它貫穿于神經(jīng)網(wǎng)絡(luò)的所有隱含層。
如上所述,神經(jīng)網(wǎng)絡(luò)包含隱含層??紤]了神經(jīng)網(wǎng)絡(luò)在輸入層和輸出層之間的隱含層。特別是它們的數(shù)量,是神經(jīng)網(wǎng)絡(luò)效率的決定性因素之一,它直接影響結(jié)果的準確性[16-17]。隱含層越多,對神經(jīng)網(wǎng)絡(luò)的資源要求就越高。因此,一個有效的神經(jīng)網(wǎng)絡(luò)可以被稱為一個正確選擇了許多因素的網(wǎng)絡(luò),包括隱含層的數(shù)量。
神經(jīng)網(wǎng)絡(luò)訓(xùn)練算法的選擇對神經(jīng)網(wǎng)絡(luò)結(jié)果的準確性也有很大的影響。訓(xùn)練是創(chuàng)建神經(jīng)網(wǎng)絡(luò)的關(guān)鍵步驟,神經(jīng)網(wǎng)絡(luò)在實現(xiàn)后立即出現(xiàn)??紤]到神經(jīng)網(wǎng)絡(luò)的種類繁多,有幾種訓(xùn)練算法。神經(jīng)網(wǎng)絡(luò)訓(xùn)練的基本原理是調(diào)整突觸上的權(quán)值,使神經(jīng)網(wǎng)絡(luò)輸出的結(jié)果與參考數(shù)據(jù)之間的誤差最小化。
在仔細分析文獻的基礎(chǔ)上,選擇了用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練的逆誤差傳播方法[18-19]。該方法是一種迭代梯度算法,其原理是將神經(jīng)網(wǎng)絡(luò)輸出的誤差信號傳輸?shù)捷斎攵?。這種神經(jīng)網(wǎng)絡(luò)教學(xué)方法是所述方法中最流行、最有效的方法之一。
因為直連BP神經(jīng)網(wǎng)絡(luò)是一種逆誤差傳播的前饋神經(jīng)網(wǎng)絡(luò),所以整個直連BP神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示。
圖1 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)示意圖
具體的整個網(wǎng)絡(luò)的學(xué)習(xí)過程為:當樣本從輸入層進入隱含層后,隱含層通過式(1)輸出數(shù)據(jù)。
y=f(XTW1+θ)
(1)
式中,X為輸入樣本的屬性;y為隱含層的輸出;W1為從輸入層到隱含層的連接權(quán)值;θ為隱含層設(shè)置的閾值;f(·)為sigmoid函數(shù),在此設(shè)置為tansig函數(shù),其值通過式(2)得到。
(2)
接下來再從隱含層到輸出層,最終得到輸出層的結(jié)果。其值計算過程為式(3)。
(3)
式中,O為輸出層的最終結(jié)果;W21為從輸入層直接到輸出層的權(quán)值;W22為隱含層到輸出層的權(quán)值;β為設(shè)置的輸出層閾值。
整個訓(xùn)練是在參考數(shù)據(jù)樣本上進行的,在這種情況下,數(shù)據(jù)樣本由直接影響足球比賽結(jié)果形成的因素表示。為了給神經(jīng)網(wǎng)絡(luò)訓(xùn)練提供必要的性能和有效性,對影響神經(jīng)網(wǎng)絡(luò)訓(xùn)練的因素進行了詳細的分析,選擇了12個影響最大的因素作為樣本。
由于在這種情況下,最優(yōu)隱含層數(shù)是未知的,因此決定分別實現(xiàn)兩層和四層隱含層的神經(jīng)網(wǎng)絡(luò),以便對這種神經(jīng)網(wǎng)絡(luò)的效率進行實驗比較。
實驗環(huán)境為Windows764位系統(tǒng)的臺式機,16 GB內(nèi)存,英特爾酷睿 i7,3.5 GHz處理器,顯卡為8 GB的英偉達GTX1080。由于神經(jīng)網(wǎng)絡(luò)的流行、足夠的性能和內(nèi)置的功能,在此使用的是Python 2.7編程語言實現(xiàn)的。并利用了NumPy庫,該庫允許使用必要的數(shù)學(xué)函數(shù),并為大型多維數(shù)組提供支持。數(shù)據(jù)集中的數(shù)據(jù)為足球數(shù)據(jù)查詢平臺創(chuàng)冰中的2016—2019年英超聯(lián)賽比賽數(shù)據(jù)。
為了評估神經(jīng)網(wǎng)絡(luò)的工作,因此選擇了一些匹配項,這些匹配項的結(jié)果是預(yù)先知道的,即在測試時已經(jīng)發(fā)生了。將同一組測試數(shù)據(jù)應(yīng)用于兩個神經(jīng)網(wǎng)絡(luò),以比較它們的工作結(jié)果。
如上所述,在為訓(xùn)練神經(jīng)網(wǎng)絡(luò)而選擇的比賽中,只選擇那些對足球比賽結(jié)果的形成有重大影響的比賽。因此,可以區(qū)分以下幾項。
(1) 每隊最近五場比賽的統(tǒng)計;
(2) 當前團隊會議統(tǒng)計;
(3) 主隊會議上的比賽統(tǒng)計;
(4) 在觀眾出口處對比賽信息的統(tǒng)計。
這些因素是最有影響的因素之一。比如,可以用來制定預(yù)測的一個主要因素就是隊伍的形式,而它通常是由最近五場球隊比賽的統(tǒng)計數(shù)據(jù)決定的,所以這個因素也屬于影響最大的一個組,其他因素類似。因此,使用這些因素可以達到預(yù)期的最大效果。
但也有一些對結(jié)果形成的影響要小得多的因素,其中包括。
(1) 比賽期間的天氣;
(2) 比賽實際進行的時間段;
(3) 比賽場地及地點;
(4) 犯規(guī)、罰球、角球統(tǒng)計。
為了評估神經(jīng)網(wǎng)絡(luò)訓(xùn)練參數(shù)選擇的可行性和正確性,并在實踐中檢驗它們對結(jié)果形成的影響,決定應(yīng)用這2個樣本因子并進行比較。
因此,在由所有影響因素組成的2個試驗組形成后,根據(jù)被歸類為最有影響組的因素,下一階段是神經(jīng)網(wǎng)絡(luò)的訓(xùn)練階段,其結(jié)果是訓(xùn)練好的神經(jīng)網(wǎng)絡(luò),準備對所提供的輸入數(shù)據(jù)進行預(yù)測。
訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程,如圖2所示。
圖2 數(shù)據(jù)互操作模塊
“Epoch”和“Error”變量分別對應(yīng)通過的迭代次數(shù)和錯誤。隨著訓(xùn)練的每次迭代,誤差減小,表明訓(xùn)練過程的成功。
不同隱含層數(shù)和因子數(shù)的神經(jīng)網(wǎng)絡(luò)預(yù)測精度,如表1所示。
表1 神經(jīng)網(wǎng)絡(luò)預(yù)測的精度
由表1的數(shù)據(jù)可以看出,4個隱含層20個因子的神經(jīng)網(wǎng)絡(luò)預(yù)測效果最好,預(yù)測精度為67.25%。由2個隱含層組成的神經(jīng)網(wǎng)絡(luò),在應(yīng)用20個因子的情況下,其結(jié)果明顯較差,為55.06%。
盡管要素數(shù)量的差異很大,但利用多種因素得到的結(jié)果表明,所選擇的要素對結(jié)果的形成影響要大得多。因此,如果生產(chǎn)率因素是關(guān)鍵的,其余的因素可以忽略不計。
研究了神經(jīng)網(wǎng)絡(luò)的隱含層數(shù)。在研究中,形成了一組特征,并依次用于預(yù)測。特性以及結(jié)果的預(yù)測如表2所示。
表2 神經(jīng)元數(shù)目對預(yù)測精度影響
根據(jù)神經(jīng)網(wǎng)絡(luò)隱含層數(shù)變化對預(yù)測精度影響的研究結(jié)果,可以得出:8層和10層隱含層神經(jīng)網(wǎng)絡(luò)的預(yù)測效果最好,分別為16個信號的65%、68%和61%,對8個信號成功預(yù)測的65%。值得注意的是,一個具有10個隱含層的神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程花費了相當長的時間,并且隨著隱含層數(shù)量增加到12個,訓(xùn)練過程極其緩慢,這使得研究成為不可能。在所有情況下,本研究都使用一種算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò),即反向誤差傳播算法。
神經(jīng)網(wǎng)絡(luò)的一個重要特征是神經(jīng)元的數(shù)目,神經(jīng)元的隱含層由神經(jīng)元組成。它們的數(shù)量對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程和預(yù)測的成功與否有著重要的影響。為了保證在神經(jīng)網(wǎng)絡(luò)訓(xùn)練允許的時間內(nèi)預(yù)測的高精度,研究了神經(jīng)網(wǎng)絡(luò)的最優(yōu)數(shù)目。
為了進行研究,形成了一組特征,并進行了一致的實驗。誤差減小的可視化如圖3所示。
圖3 誤差減小的可視化
神經(jīng)網(wǎng)絡(luò)的特性和實驗結(jié)果如表3所示。
表3 神經(jīng)元數(shù)目對預(yù)測精度影響的結(jié)果
通過對神經(jīng)網(wǎng)絡(luò)隱含層神經(jīng)元數(shù)量變化的研究,可以得出結(jié)論:為了達到最佳的效果,應(yīng)該在隱含層中使用10到13個神經(jīng)元,這將在神經(jīng)網(wǎng)絡(luò)訓(xùn)練的允許時間內(nèi)提供最準確的預(yù)測結(jié)果。雖然隨著神經(jīng)網(wǎng)絡(luò)中神經(jīng)元數(shù)量的增加,預(yù)測精度也在不斷提高,但隨著神經(jīng)網(wǎng)絡(luò)每一隱含層中14個神經(jīng)元的使用,訓(xùn)練過程持續(xù)時間非常長,這使得在有限的資源條件下,這樣多的神經(jīng)元的使用是不可能的。
在形成神經(jīng)網(wǎng)絡(luò)結(jié)果的過程中,一個同樣起著重要作用的因素是訓(xùn)練神經(jīng)網(wǎng)絡(luò)的過程所采用的算法。考慮到所選神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的特殊性,以及所分析的學(xué)習(xí)算法的特點,決定選擇一種逆向誤差傳播算法來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。還有另一個版本的實現(xiàn),它不同于矩的標準使用(有時稱為“脈沖率”)。
使用經(jīng)典算法和基于矩的算法的訓(xùn)練過程中的誤差變化的可視化,如圖4、圖5所示。
圖4 經(jīng)典算法在訓(xùn)練過程中的誤差變化
圖5 使用帶矩算法的訓(xùn)練過程中的誤差變化
獲得的研究結(jié)果如表4所示。
表4 訓(xùn)練算法對預(yù)測精度影響的結(jié)果
在測試了可用于預(yù)測足球比賽結(jié)果的工具(這表明問題仍然存在)之后,下一步是分析擬用于預(yù)測足球比賽結(jié)果的算法以及有關(guān)神經(jīng)網(wǎng)絡(luò)的材料。為了分析替代算法和預(yù)測方法,選擇了以下方法。
(1) 使用“樸素”貝葉斯分類器的方法;
(2) 方法K-medium(聚類分析)。
在實驗結(jié)果中,采用“樸素”貝葉斯分類器的方法預(yù)測精度達到33%,而K-medium方法雖然取得了較好的效果,但其預(yù)測精度為47%,效果并不理想。在進行了必要的實驗之后,對所提出的方法的預(yù)測精度進行了檢驗,確定了它們的低效性以及需要一種全新的方法來解決這個問題,特別是使用深層神經(jīng)網(wǎng)絡(luò)。
在應(yīng)用神經(jīng)網(wǎng)絡(luò)進行調(diào)查的過程中,對影響體育比賽成績形成的因素進行了分析和篩選。選擇了兩組因素來比較神經(jīng)網(wǎng)絡(luò)的工作與它的各種特征,其中一些主要包括比賽本身的信息,而另一些則提供了關(guān)于兩支球隊的信息。選取對足球比賽結(jié)果影響最大的主要指標,對其進行歸一化處理,用于神經(jīng)網(wǎng)絡(luò)。
在選擇了神經(jīng)網(wǎng)絡(luò)的主要特征后,研究了改變神經(jīng)網(wǎng)絡(luò)的隱含層數(shù)目以及這些隱含層所形成的神經(jīng)元數(shù)目的影響。調(diào)查前的目標是準確地確定隱含層的最佳數(shù)目和神經(jīng)元的數(shù)目,因為這些特性不僅影響預(yù)測的準確性,還影響神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程,以及這個過程的大部分持續(xù)時間。
通過對神經(jīng)網(wǎng)絡(luò)特性的研究和交替變化,確定了神經(jīng)網(wǎng)絡(luò)的最優(yōu)特性,在使用16個輸入信號的情況下,預(yù)測精度達到75%,在使用8個輸入信號的情況下,預(yù)測精度達到70%。
最后一個階段是研究訓(xùn)練算法對神經(jīng)網(wǎng)絡(luò)本身訓(xùn)練過程的影響,即用矩的概念替換其經(jīng)典變量。在研究過程中,根據(jù)得到的結(jié)果,確定了利用該算法對逆誤差隨矩傳播神經(jīng)網(wǎng)絡(luò)進行訓(xùn)練更為有效。
對預(yù)測運動比賽結(jié)果的算法進行了研究,其預(yù)測精度在42%—71%之間,預(yù)測精度在52%—75%之間,表明該算法表現(xiàn)出了良好的效果,可以在以后的軟件開發(fā)中使用。
為了提高算法的預(yù)測精度,可以采用更多的隱含層神經(jīng)網(wǎng)絡(luò),這表明隨著隱含層數(shù)的增加,預(yù)測結(jié)果的精度會迅速提高,但隨后神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時間也會相應(yīng)增加。
鑒于人們對投注行業(yè)的興趣每年都在增加,但軟件種類非常少,所以在本文中提出了一種基于BP神經(jīng)網(wǎng)絡(luò)對足球比賽結(jié)果預(yù)測的方法,該方法不僅可以幫助感興趣的人預(yù)測特定的比賽,而且還可以幫助球隊及其他的專業(yè)人士對比賽進行模擬和分析,在實驗中,實驗結(jié)果表明,提出的方法對結(jié)果預(yù)測的準確率平均在70%以上。
該算法具有很大的發(fā)展?jié)摿?,由于隱含層的層數(shù)越多,則節(jié)點越多,那么精確度越高,由于目前隱含層最多只有10—12層,在未來使用更多的隱含層理論上可以提高精確度,但由于隱含層越多,運算速度越慢,所以在未來,還需要解決運算速度的問題。另外,對于預(yù)測準確率的提升可以通過獲取更多的特征來進行學(xué)習(xí)。眾所周知,除本文已用特征外,教練的技戰(zhàn)術(shù)、球員的生理心理狀態(tài)、球隊排名等,都會對足球比賽結(jié)果產(chǎn)生影響,在未來,可以結(jié)合更多特征進行預(yù)測。