詹皇比肩喬丹!如何防住他?這是AI給出的回答
Root 假裝發自 班克斯人壽球館
量子位 出品 | 公眾號 QbitAI
“詹皇32+13+7比肩喬丹”。
這是騰訊體育給出的評價。今天上午,依靠詹姆斯關鍵時刻的發揮,NBA季後賽騎士104-100險勝步行者,將總比分扳成2-2平。
△ 圖片引自新浪體育
此戰之後,詹姆斯職業生涯季後賽30+得分來到了100次,排名NBA歷史第二位,僅次於邁克爾-喬丹的109次。
這可是詹皇的第15個賽季了。
沒人能想到,33歲的老詹在這一賽季依舊強勢打出眾多巔峰資料。
不僅拿下了該賽季最高得分2251分,傲視全聯盟。還發揮出了近8賽季以來最高場均得分27.5,打破了科比創下職業生涯30000分的年齡記錄。逆生長的他體能也爆表,場均上場時間36.9分鐘均雄踞全聯盟榜首。
面對進攻力Almost Max的詹皇,連聯盟防守第一的凱爾特人都瑟瑟發抖。
△ 詹皇出場,自帶勢不可擋BGM
2月11號,節末的波士頓下起了三分雨。即使是在凱爾特人的主場,也無法阻擋騎士瘋狂的進攻。單防,是防不住詹皇的,但包夾的結果也並不好看。
第一節7:54,出現老詹單場最燃的強攻。對位昔日戰友歐文,老詹在快速帶球突破歐文後,居然面臨綠軍4!人!協!防!但,就這樣的陣仗,都還是沒有封住詹皇。
△ 34s漏防;3:09犯規;6:45協防到位依舊失分
“詹姆斯的進攻能力越來越強了。我覺得,怎麼提高我們的防守水平是一個需要我們好好思考的問題。”綠軍主帥坦言。
△ 凱爾特人教練Brad Stevens有點方
如何提高?那夾守策略的研究可以指望AI嗎?
可以。
Maybe強化學習可以
近期MIT斯隆體育分析大會上,密歇根大學的研究團隊研究了一下如何用強化學習建個模型來尋找最佳包夾戰略。
於是就有了介篇論文↓
作者聲稱:這是史上第一篇用強化學習研究NBA防守策略的論文。
論文裡採用的訓練集是近三季以來的NBA錄影,用到了64萬多個持球片段。按道理說,只要反覆擼那些包夾表現完美的片段,理論上可以總結一套最佳的包夾戰略:)嗯對,理論上。
看看具體咋操作的唄。
告訴機器啥是包夾
首先,把NBA的錄影分割成可分析的持球片段:從所有的球員都過了半場那一刻開始,到進攻時限重新開始計算截止。
再把這些持球片段按秒切開,每一秒防守方都要考慮什麼時候包夾、留哪個空位風險最低、以及根據場上局勢迅速預判包夾的收益有多大。
然後用一個簡單的分類器系統,判斷上述切分好的片段中是否存在包夾行為。
若持球人的附近,即一定距離的半徑範圍內有兩個人防守(圖2.a),且這個狀態持續至少兩秒以上,那麼初步判定為包夾。
不過,要是有一個防守的人同時出現在兩個進攻隊員有效的防守半徑內,那這種情況就不算是包夾(圖2b)。
從圖2c可以看出,這個自動判斷包夾的分類模型還算靠譜,效果比人類標註員的分歧要少得多。
經統計,64萬個持球錄影片段中,只有4.8%被判定為包夾。把這4.8%挑出來,再按結果分個類。
按得失分類
包夾最好的結果是能遏制對方進球搶斷後得分,但不是每次都能表現如此完美。根據包夾後的得分(or 失分)情況,可分成6類:得/失2分,得/失3分,犯規,失誤。
分析之後發現,進攻力很強的球員被包夾之後,進球難度加大,2分/3分的得分率都降低了一丟丟,這說明包夾可以起到一定的壓制效果。
但2分失分率、犯規率明顯升高,都是防守方選擇包夾是要面臨的風險。不僅會更容易犯規,也給了對方空位投籃的機會。
預處理資料,給包夾效果打分
機器篩出表現不錯的包夾片段後,進一步資料按秒切好。然後轉成直觀的運動軌跡(Court Image)⤵️
△ 一秒內所有球員+球的移動軌跡
除了運動軌跡資訊,判斷要不要包夾某個球員的必要資訊還有對方的身高、體重啥的,所以輸入的資料還需要其他非空間的特徵值(flat features)。
視覺化的球員運動軌跡交給卷積網路(ConvNet)去提取視覺上的特徵,至於非空間特徵值則交給全連線網路(FC Net)處理,最後輸出Q值,相當於是給包夾效果打個分。
Q值僅為每種實際狀態下對可能的行為打分。
而這整個強化學習的網路,叫Nothing But Net,簡稱NBNet。
控制變數訓練RL模型
為了儘可能客觀地還原不同防守策略的效果,要控制進攻方這個變數。
因此,進攻方的資料選了進攻力接近Max的老詹所在的球隊,騎士。從中翻出那些對家防得還不錯的瞬間,總結一下。
騎士的2萬多個持球片段,總共分三部分:70%訓練用,10%做驗證,最後留20%待評估。經訓練後的RL模型會對待測片段作出是否應該進行包夾的預測。
等到NBNet模型訓練得差不多了——預測包夾的結果(29.29%)比較接近真實情況(33.92%)時,研究團隊就讓模型進入實戰,分析之前篩好的包夾片段。
結果發現,模型輸出的Q值越大,被包夾的一方得分越低,這說明該輪防守效果越好。
那麼問題來了:在所有對戰騎士的球隊裡,哪個球隊的Q值最大?
防騎士,公牛No.1
△ 馬爾卡寧還搶斷過詹皇,芬蘭小哥哥大有前途
NBNet按各球隊以往資料打分,發現Q值最大的是公牛隊。今年常規賽上公牛防騎士的表現也可圈可點。
包夾,還是不包夾?
除了最強防守隊,NBNet分析完一圈騎士的資料後,還給了個的夾防建議:
最不該包夾的人就素詹皇(捂住臉.gif)。
上圖裡的藍柱,指的是實際比賽中某球員被包夾的比例,而橙柱是模型建議的比例。紅框的資料顯示,詹皇持球時,對家包夾的比例接近25%,由此可見防守方內心的焦灼。不過模型建議,夾防的比例得降至15%,否則得不償失。
除了詹皇,像進攻力很強的明星球員歐文、湯普森也最好少夾,漏防反而給對方空位投球的機會(哎,模型寶寶都不知道歐文不在騎士了,sad)。
此外,NBNet還給了最違反直覺的建議:夾防時,最好不要漏防弱側底線。不然到時空位一旦拿球補防完全來不及。
△ 橙點是持球人,墨藍區為空位
相反,可以優先考慮留空上圖右邊那兩坨墨藍區的人,這樣協防起來相對沒那麼費力。
OMT
雖然詹皇勢如破竹,但這季常規賽騎士打得十分艱難,今年屈以東部第四攻進季後賽。這可是詹皇迴歸騎士第4年來獲得最差的常規賽排名。
防守端無太多層次,進攻端又嚴重依賴詹皇。騎士能在季後賽走多遠,還真不好說。
△ 詹皇打得好辛苦>_<
最後,附論文:
https://arxiv.org/abs/1803.02940
及程式碼:
https://github.com/igfox/AdvantageOfDoubling
— 完 —
誠摯招聘
量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話介面,回覆“招聘”兩個字。
量子位 QbitAI · 頭條號簽約作者
վ'ᴗ' ի 追蹤AI技術和產品新動態
相關文章
- 面試官問你MyBatis SQL是如何執行的?把這篇文章甩給他面試MyBatisSQL
- 開放世界給《巫師3》帶來了什麼?開發者是這樣回答的
- 再有人問你synchronized是什麼,就把這篇文章發給他。synchronized
- 再有人問你synchronized是什麼,就把這篇文章發給他synchronized
- 給記憶體加上AI?三星是這樣做的記憶體AI
- DeepMind給AI模型做了個IQ測試,結果是這樣的AI模型
- 當面試官問你Vue響應式原理,你可以這麼回答他面試Vue
- 關於資料治理ChatGPT是如何回答的?ChatGPT
- 新火種AI | 馬斯克的AI大模型來了!其他AI不能回答的問題,它能回答嗎?AI馬斯克大模型
- 面試還問這些?甩手就給個讓他僵住的答案!面試
- 再有人問你Java記憶體模型是什麼,就把這篇文章發給他。Java記憶體模型
- 再有人問你Java記憶體模型是什麼,就把這篇文章發給他Java記憶體模型
- AI時代如何重構社交?Soul App 透過媒體開放日活動這樣回答AIAPP
- 在 TEDx 裡,他們是這麼說小遊戲的遊戲
- 這些年,他們是怎麼做功能遊戲的?遊戲
- 2048遊戲的最佳演算法是?來看看AI版作者的回答遊戲演算法AI
- 如何給玩家留下深刻印象?這個小團隊是這樣做的
- 邁克爾 · 喬丹:我討厭將機器學習稱為AI機器學習AI
- 再有人問你分散式鎖,這篇文章扔給他分散式
- 還有人不懂分散式鎖的實現就把這篇文章丟給他分散式
- 李開復、LeCun、喬丹三位AI大牛談AI現狀與未來LeCunAI
- 如果再有人問你分散式 ID,這篇文章丟給他分散式
- 再有人問你分散式事務,把這篇扔給他分散式
- 老闆今天問我為什麼公司的資料庫這麼爛,我是這樣回答的......資料庫
- Nacos配置中心互動模型是 push 還是 pull ?你應該這麼回答模型
- 這是給開發者的彌天大謊還是至理名言?
- 如果有人再問你 Java 的反射,把這篇文章扔給他Java反射
- 【MySQL】面試官問我:MySQL如何實現無資料插入,有資料更新?我是這樣回答的!MySql面試
- 機器學習大神邁克爾 · 喬丹:我討厭將機器學習稱為AI機器學習AI
- RUP是如何輸給敏捷Agile的?敏捷
- 李嘉誠也玩AI?他的維港投資投的第一個AI專案是何方神聖?AI
- 他的名字是Linus,他是所有程式設計師們的上帝程式設計師
- 嫁給程式設計師好嗎?我們來看看她們是怎麼回答的程式設計師
- 馬斯克起訴OpenAI:他們做出了AGI還授權給微軟,這是對創始協議赤裸裸的背叛馬斯克OpenAI微軟協議
- 如何更好的回答面試問題面試
- 預訓練BERT,官方程式碼釋出前他們是這樣用TensorFlow解決的
- B站AI課幾秒出總結,劃詞就給解釋,這個「AI學習搭子」真香AI
- 如果有人給你撕逼Java記憶體模型,就把這些問題甩給他Java記憶體模型