データ分析関連のまとめ

データ分析・機械学習周りのもくもく会LTやイベント参加をまとめていきます

Tac-Valuer: Knowledge-based Stroke Evaluation in Table Tennis

Tac-Valuer: Knowledge-based Stroke Evaluation in Table Tennis(KDD2021)を読んでまとめました。
解釈間違い等ある時がありますので、その場合指摘いただけると助かります。

目次

背景と概要

背景

課題

  • コーチが卓球の試合で選手のパフォーマンスを見る上で、ストロークの評価は非常に重要。
  • ただし、現在の方法では熟練した知識が要求される上に時間もかかる。
  • 卓球の評価方法は以下の2つに分けられている
    • video-driven手法
      • わかりやすく広く採用されている。
      • アナリストは、ストロークのビデオを様々な方法で整理・検証し知識に基づきパフォーマンスの評価を行う。
    • data-driven手法
      • アナリストは事前に動画から主要なストロークのattributes(属性や特徴量のイメージ)を収集する必要がある。
      • 次に上記に対して、統計的指標やシミュレーションモデルを用いてストロークを評価。
      • 深い洞察を得るのに役立つが、データ収集等をアナリストの知識に頼っているため、面倒で時間がかかってしまう。

考えられる施策

  • 上記の解決策として考えられるのが、機械学習モデルを学習させストロークの特徴を抽出、特徴に基づきストロークを評価する事。
    • 但し、大量のラベル付きデータが必要だが人が限られる上に時間もかかるため、データの生成には限界がある。
    • ラベル無しデータやアナリストのドメイン知識は豊富にあるので、これらを基に自動的な特徴抽出やストローク評価が望まれている。

ナショナルチームとの共同研究

著者は中国の卓球ナショナルチームと4年間共同研究を行っている。 その中で以下図のようなチーム向けのデータプラットフォームを開発 - 構成要素 - データベース - 試合映像、選手情報、試合のメタ情報等が保存 - データ収集 - EventAnchorを利用することで,分析者のデータ検索作業を軽減 - データ分析 - 可視化やシミュレーションをサポート - シミュレーション:hybrid second-order Markov chain modelを使って特定選手との対戦をシミュレートし、コーチがトレーニングプランやプレー戦略を立てるのに役立てている。

f:id:yhiss:20210912145634p:plain
データプラットフォーム構成

概要

  • 卓球のアナリストのための自動ストローク評価フレームワークTac-Valureを提案。
    • 今回のようなタスクの場合、アナリストの知識と機械学習モデルの組み合わせ方が課題となる。
    • アナリストの知識を機械学習モデルに統合するために、abductive learning(ABL)に基づいた方法(computer visionアルゴリズムと知識に基づいたルールベースのロジックを組み合わせ)ストロークに関する特徴量の埋め込みをおこなった。
    • 使用データ:卓球中国代表選手のもの

Tac-Valueのステップ

  • 以下3ステップで構成
    • video formalizing(VF):動画の形式化
    • stroke embedding (SE):stroke埋め込み
      • ここで属性を学習strokeし、中間層の特徴量を抽出しstroke embeddingとする。
      • component
      • ラベルの無いデータに対しても、上記componentを利用し学習を行う。
    • performance rating (PR):性能評価
      • SEを入力として、strokeのパフォーマンスをDeep forestで予測

活用の仕方

各試合におけるstrokeテクニック毎のパフォーマンスやラリー毎のパフォーマンスを定量化する事で、なぜ試合に勝った(or負けた)のかを考察しやすくする。

[以下長い詳細]

Data

必要なデータ

  • Tac-Valuerでは学習のために4つのデータが必要となる。
    • stroke videos:Tac-Valuerの入力
    • stroke属性:SE(stroke embedding)用学習ラベル
    • 推論ルール:アナリストの知識の定量
    • パフォーマンススコア:PR(Performance Rating)で利用

stroke videos

  • 各stroke videoは、8つのフレームシーケンスで構成
    • プレイヤーがボールに触れた時の中央のフレーム
    • その前の4フレーム
    • 中央の後の3フレーム

ラベリングに熟練の知識はいらないので、クラウドソーシングで、21試合から9,522本のストロークを収集。

stroke属性

このデータは、SEのモデルを学習するトレーニングラベルとして使用。

stroke属性のラベリングには卓球の知識が必要となるため、アナリストがデータ収集を行っている。

  • 以下図にstroke属性のデータ例が示されている。
    • 最初の3属性:試合の中のstrokeの時間的な位置を特定する
    • 続く3属性:strokeの技術的特徴
      • stroke technique
      • stroke position:ボールを打つ時のプレイヤーのポジション
      • stroke placement:打つ前のボールの位置
    • 最後の属性:Striker, strike time()

f:id:yhiss:20210912154435p:plain
stroke属性例

推論ルール(ルールベース)

データ収集時のアナリストの知識をまとめ、以下の形で定量化。 以下の例では、前のstrokeが「Block」の場合、現在のstrokeが「Push」「Short」「Slide」「Block」になる事が出来ない事を意味している。 今回は28個のルールを作っている。

 Pre\_Tech(X,"Block")  \rightarrow \neg Cur\_Tech(X,"Push")  
 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \wedge \neg Cur\_Tech(X,"Short")  
 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \  \wedge \neg Cur\_Tech(X,"Slide")  
 \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \   \wedge \neg Cur\_Tech(X,"Block")  
 \neg : negation, \wedge : conjunction, \rightarrow : implication 

パフォーマンススコア

このスコアはPR(Performance Rating)モデルの学習用ラベルとして使われる。

  • プロのアナリストが手動で評価した
    • 有利なstroke:1、不利なstroke:-1

アノテーションの仕方

  • 全部で7人が評価
    • 各strokeは3人のアナリストで評価し、多数決
    • 3人のアナリストの評価が異なる場合→別のシニアアナリストが再評価

Tac-Valuerのフレームワーク

問題定義

卓球では、双方のプレイヤーが交互にストロークをやりとりする。

 ラリーをR = \{ S_1, ..., S_i  \}と定義(S_i:ラリーRにおけるi番目のstrokeのフレーム群)  
 stroke評価の問題定義: Score_i = F(S_i)\ \ \ \ \ (1)
 F:評価関数、Score_i:strokeのパフォーマンス
 ラリーの最後:今回のデータではラリーの敗者に属するため、デフォルトで不利なstrokeと評価される

今回はFを構築する際に、アナリストの評価プロセスを模倣している。

  • 一般にアナリストはstroke属性に加えその動きも考慮する必要がある。
    • 以下画像のような場合、これらのstrokeの効果は明らかに異なるが、属性だけ見ると似たようなstrokeになる。
    • そのため、動きまで含めると十分な情報を得られる事となる。

f:id:yhiss:20210912171050p:plain
strokeの動きの違い

Tac-Valuer構築時の課題

  • いかにして映像のノイズを減らすか
    • stroke映像では、以下のように主にコート上の審判等の選手以外の人物がノイズとなり、アルゴリズムの精度を下げる要因となる。

f:id:yhiss:20210914224609p:plain
映像のノイズ例

  • 限られたラベル付きデータでstrokeの特徴を効果的に抽出・埋め込みを行うには

    • ラベル付きデータを作るには熟練したドメイン知識が必要となるため、作れる量に限界がある。
    • strokeの動きをどう評価するかはまだあまり研究されていない。
  • strokeのパフォーマンスをどう定量化するか

    • 現在の研究では、定量的な分析には得点率を用いる事がほとんど。
    • しかしながら、プレイヤーが得点するかどうかは全strokeに関係するため、上記のアプローチではこの点を考慮できない。
    • より正確な方法:アナリストが映像を見て判断する。→基準が知識に基づくもので、言語化が困難なもの。

Tac-Valuerのフレームワーク構成

以下図のような3ステップの構成となる。

  • video formalizing (VF):ビデオフレーム内の無関係な人物の削除
    • object detection algorithmでプレイヤーを検出、無関係な人物をマスクする
  • stroke embedding (SE):ABLを活用し、stroke属性を抽出し動きと合わせて埋め込み。
    • 属性を認識するcomponentを使用し、strokeを特徴ベクトルに埋め込み。
    • 推論component(ルールベース)を使ってラベル無しデータの疑似ラベルを改善。
    • 上記を繰り返す。
  • performance rating (PR):分類器により評価結果を取得
    • ステップ2の埋め込みベクトルを用いて、各strokeのレベルを分類するモデルを学習。

f:id:yhiss:20210914232419p:plain
フレームワークの構成図

video formalizing (VF):上図A

  • VFは以下の流れとなっている
    • Faster-RCNNで各フレームのテーブルと全人物のbounding boxを検出。
    • テーブルのboxと人物のboxの位置関係から2人のプレイヤーを特定。
    • 他の人物はマスクする。

Stroke embedding(SE):上図B

ここでは動画フレームから特徴ベクトルへの埋め込みを行う。

  • ステップは以下画像のように2つに分けられる
    • 属性認識component(A)
    • 論理的abduction component(B)
属性認識component
  • 本componentでは、以下の構成となる。
 入力データ:ラリーS_iのstrokeビデオ
 VGG-13とLSTMでS_iの特徴ベクトルFV_iを抽出
 FV_iを全結合層およびsoftmax関数に入力する事でstroke技術、stroke位置、stroke配置を含む結果A_iを得る

本componentはラベル付きstroke動画で事前学習されるので、ラベル無しの動画では誤った疑似ラベル A_iを生成し得る。

論理的abduction component
  • 本componentは以下のプロセスとなる
    • 疑似ラベルがルールと一致するかをチェック。
    • 一致していればそのまま返し、そうでなければ推論ルールを用いて疑似ラベルを修正する。

最後に、修正された疑似ラベルはground-truthラベルとして扱われ、属性認識componentに戻り学習される。 このサイクルを繰り返す。

Performance rating(PR)

Stroke embeddingで生成した特徴ベクトル FV_iをDF21(Deep Forest)で学習させる。

 分類器はS_iのパフォーマンス確率(有利な確率p_{i,ad}と不利な確率p_{i,dis})を予測
 最終的なスコアはScore_i = p_{i,ad} * 1 + p_{i,dis} * (-1)となる

Evaluation

SE部分の検証

  • 3パターンの手法でテクニック(tec)・位置(pla)・配置(pos)・ストライカー(striker)がどちらかを検証
  • 配置に関しては提案手法が最もパフォーマンスが高く、他の指標は50%教師ありを超えたと主張。

f:id:yhiss:20210915235111p:plain

PR部分の検証

Deep Forest以外にGBDT系、ランダムフォレスト等で検証しDeep Forestが最も精度が良かったと述べている。

f:id:yhiss:20210915235125p:plain

実際のUse Cases

中国の卓球選手に対して強敵である伊藤美誠選手の分析がされている。

Ito should reduce errors in matches

以下の図が、2019年ITTFワールドツアーの女子シングルス決勝、準決勝、準々決勝で伊藤選手(紫)とChen Meng選手、Sun Yingsha選手、Wang Manyu選手(それぞれのオレンジ)が対戦したもの。

  • A:それぞれのstrokeテクニック毎のパフォーマンスを表したもの(積算)。プラスに振れている方が良いパフォーマンスとなる。

    • Sun選手とWang選手と対戦した際に、伊藤選手のパフォーマンスが優れている。
      • Wang選手との場合には、特にPush,Shortが相対的に優れている。
    • ただChen選手と試合した際には、あまり優位性を発揮できていなかった。
  • B:Chen選手と試合した際のラリー毎のstrokeパフォーマンスを更に検証したもの。

    • 棒グラフの高さ:パフォーマンスの差の絶対値
      • オレンジが上に伸びていれば、Chen選手の当該ラリーのstrokeのパフォーマンスが高い事を示す。
    • 中心の点:各ラリーでどちらが点を取ったかを示す。

本論文では、Cで囲ってある領域のように伊藤選手が非常に高いパフォーマンスを発揮したラリーで得点を落とさない事が必要だと述べていた。

[感想]全体的にパフォーマンスを見ると、安定して相対的に高いパフォーマンスのラリーを行う事が勝つ事に繋がってそうに見えた。

f:id:yhiss:20210916220635p:plain

参考文献

https://dl.acm.org/doi/10.1145/3447548.3467104 http://129.211.169.156/publication/kdd21Tac_Valuer.pdf