見てわかるデータしか信用されない現状

藤井慶輔氏:よろしくお願いします。藤井と申します。今回は初参加です。ちょっと雰囲気が掴めてないんですが、よろしくお願いします。タイトルは『バスケットボールの攻撃・守備戦術の自動分類』という話をします。

初参加なのでまず自己紹介から。スポーツ歴は今日お話をするバスケットで、大学時代まで選手をやっていて、大学院の5年間はコーチをやっていました。

大学院時代はこの動画にあるような対人の動作分析を、モーションキャプチャを使ってやっていました。ポスドク時代は、この動画にあるように、体育館で頭と肩に反射マーカーを付けてモーションキャプチャを取るといったような分析をしていました。

このころからプロ、NBAでは自動で大量の選手とボールの位置データが取られるといったようなことが起こっており、それで提供されたデータを使って機械学習をしようというのを、理研時代と現在名古屋大学で行っています。

今日は時間が短いのですごく簡単になってしまうんですけども、背景としましては先ほどのCHIBAさんのお話にもあったように、現場での戦術的な分析はビデオの目視が主になります。例えばSportscodeだったり、あるいはプレー頻度を分析するサービスだったり、こういうものが使われていますけれども、見てわかるデータしか信用されていないのが現状かなと思います。

この位置計測システム、これを導入できて自動化できれば、コーチやスタッフなどの専門家の負担軽減や観客、初心者などの理解促進などが期待されます。

選手とボールの位置データから戦術を自動分類する

本日の話は位置データから攻撃・守備戦術を自動分類するというお話です。イメージが湧く人もいるかもしれないですけど、選手とボールの位置データというのを時間と選手とボールの位置、XYデータがこのように並んでいます。

このデータを使ってプレーの種類や有無などを出力するというのが目標ですが、これ自体は機械学習を使わなくてもできます。まず位置データから時間を区切って、その範囲で特徴を作成して、分類する。このような方法があります。

機械学習の使い方はいくつかあるんですけれども、最も簡単なのは作成した特徴を使うこと。あとは教師データとしてプレーの種類や有無などを使うことによって分類器を学習するという方法で自動分類できます。

もう1つは特徴自体を機械学習で自動で抽出するといったような方法もできます。ちょうど我々はこの順番で研究を行っていまして、今日はすごく簡単なんですがそれぞれ順に紹介したいと思います。

その前にちょっと特殊なプレーというか、説明しないとわからないようなプレーがあります。これはスクリーンプレーと言いまして、協力プレーの1つなんですけど。目的はオフェンスが守備を妨害するプレーです。

具体的に言うと、この図を使うと赤がオフェンスで青がディフェンス。赤の3番にシュートを打たせたいと。これが動画です。シュートを打たせるために赤の5番が壁となって青の3番を邪魔する。実際にこの例ではその邪魔をするプレー、スクリーンが成功してシュートが決まったという局面です。

バスケットボールでは多くのフォーメーションがこのスクリーンプレーの組み合わせで成り立っていると言えます。ただこんなにわかりやすいものばかりではなくて、5人と5人の動きがある中で同時多発的にこれが起こるため、検出や分析が難しいという現状があります。

ちょっと話が逸れるんですけど、ちょうど今関連する3人とボールの位置データでコンペをやっています。Basketball Behavior Challengeというのをやってまして。最後にURLを載せますので、もしよかったら見てみてください。

まず、機械学習を使わずにルールに基づいて分類

話を戻すと、まず機械学習を使わずに特徴を作成して分類する。これはルールに基づく分類とも言ったりしますけれども。最初にやったのは、スクリーンに対するチームディフェンスですね。これをルールに基づいて分類して評価する。

スクリーンのディフェンスです。危機のレベルにおいて、危機のレベルが低いとそのままで3番は3番、5番は5番でいいんですけど。危機のレベルが高い、ピンチのときは3番が5番、5番が3番にスイッチします。

そうではない、スイッチしたくない場合は青の4番のように一瞬助けて戻るといったようなこともあります。これが危機のレベルに応じて柔軟に行われるというようなことを明らかにした研究です。

この分類、実はスクリナーディフェンス、ここで言う4番ですね。スクリーンをするオフェンスのディフェンスがスイッチをするのか、あるいはユーザー、こっちのほうに、1番のほうに置くのか4番のほうに置くのかといったようなことを、ルールに基づいて、if-thenルールで分類していきました。

こういうのってすごく解釈しやすくていいんですけれども、スクリーンディフェンスっていう特有な方法なので、一般化しないので、ちょっと一般的な方法はないかなというのを考えました。

次に、特徴を作成して機械学習で自動分類する

それで機械学習で自動分類しようと。例えばスクリーンの特徴としては2人の間の距離とか、あるいは一時的な角度とか。そういうものを使って特徴を作成すると。

この例では、サポートベクターマシンと言われる機械学習の分類学習法を使って境界面、スクリーンあり、なしみたいなものを学習する。例えばオン/オフボール……スクリーンの種類だったり、もう少し詳しい種類みたいなのをある程度高い精度で分類できたりしました。

もう1つ、リバウンド。これもバスケの特有の、シュートが放たれて、次に誰がボールを触るかという獲得選手ですね。これを同じような方法で分類しました。こういう特徴自体は自分で設計するのでなにをやっているかわかりやすいんですけど。特徴の作成方法自体が一般化していないと。スクリーンならスクリーン、リバウンドならリバウンドというような感じで。

特徴を機械学習で抽出して分類

もうちょっと一般的な方法を考えたいなというので、最近発表した方法は特徴自体を機械学習で抽出して分類するという方法です。この方法は、入力はオフェンスが5人とディフェンスが5人とリング(ゴール)のお互いの距離に基づく隣接行列の時系列になります。この隣接行列の時系列を空間モードZと振動するような時間のモードλbに分解するような方法です。

このグラフ動的モード分解という方法なんですけれども、これで抽出した特徴を使ってすごくシンプルな、ロジスティック回帰なんですけど。これで守備戦術ですね。ゾーンとかマンツー。あるいは攻撃戦術のスクリーン有無みたいなものをわりと高精度で分類できたことがわかりました。

この方法はより一般的な運動の特徴を抽出するという意味でいいと思います。方法によっては抽出情報の解釈に困難なところもあって難しいですが、実はこの方法に関してはある程度根拠は解釈できるので、次に解釈について見ていきます。

スクリーンの有無でこういうモードだったんですけど。これはオフェンスのボールに近い順から並んでいます。近いもの同士が強く光ってると思うんですけど。強い振動のケースが見られているというので、スクリーンプレーっていうのはオフェンスが近づく特徴をもっていて、まさにそれが直感的にわかるような図になっています。

ゾーンディフェンスとマンツーマンディフェンスも実は似ていて、ゾーンディフェンスもお互いにボールに近い順のディフェンスです。順に並んでいて、近い同士のディフェンスが振動しているというのがこの図からわかるんですけど。

マンツーマンだとオフェンスに引っ張られてしまうので、そういうのは見られないといった、わりと直感的に得られるような特徴が得られました。

この分類タスクにおいてはこういうふうな特徴が見られたんですけど、分類の目的に応じてより特徴を選択したり、あるいは別個で作成した特徴と組み合わせてもう少し別のタスクには使えるんじゃないかなと考えています。

まとめ データの紹介

短いのでもうこれで終わりなんですけども、本日はこのような話をしました。データに関してはコンペをやっています。スクリーンプレイのデータとラベルがこちらのURLにはあります。

あとはNBAの位置データ、ゲームのデータとかですね。実はこれみなさん使えまして、あるいはこれを抽出するコードなんかもこちらに置いています。研究に関するその他の情報についてはこちらを参照していただけたらと思います。

発表は以上です。ありがとうございました。