chychen / BasketballGAN

Basketball coaches often sketch plays on a whiteboard to help players get the ball through the net. A new AI model predicts how opponents would respond to these tactics.
https://arxiv.org/abs/1909.07088
57 stars 5 forks source link

Data training #4

Closed leohar93287 closed 3 years ago

leohar93287 commented 3 years ago

Hello, at first I got the intuition that I will be training the Model by feeding as input with the "Real/Full play" data while hiding the defense and computing the loss by seeing the model's defense versus real defense. Eventually the model would be tested on "Seq/offensive strategies" to see how a new defense behaves. Having read the paper I see this is not the case.

For the sake of simplicity let's assume we are dealing with a regular Variational Autoencoder. How is the data feeding working? From what I see we feed the Offensive strategies ('50Seq.npy') + their ball status ('SeqCond.npy') (concatenating both of them giving 18 features in total). Then for the loss computation we compare the model's output having 28 features with the real play data ('50Real.npy') + their ball status ('RealCond.npy') which in turn also gives 28 features, and it's up to us to split between training/testing data. Is this the methodology you follow ? If so, I was confused by the fact the ball status of the offensive strategies ('SeqCond.npy') is different from the offense in the real plays ('RealCond.npy'), since I thought that they are the same plays but with the defense hidden.

I hope I didn't over-complicate the question. Thank you very much in advance for your help ! Best regards

chychen commented 3 years ago

Hi, sorry I didn’t get it. why you think they are different plays between SedCond.npy and RealCond.npy

leohar93287 commented 3 years ago

hi @chychen i so happened to check some indices of both arrays and they seemed to differ at some point so i thought i misunderstood something :) Otherwise is my interpretation of model training correct ?

screenshot

chychen commented 3 years ago

@leohar93287 they are slightly diff because SedCond.npy is simplified. (please see paper: " Then, each player movement trajectory is represented by a Bézier curve, in which the control points are simplified from the original tracking data by the Ramer-Douglas-Peucker (RDP) algorithm."

chychen commented 3 years ago

@leohar93287 https://github.com/chychen/RL_strategies thanks for being interested in our work. I used to train GAIL (RL+GAN) to model it, I think you might also interested in it (however the data is missing...) feel free to email me if you want a copy of my thesis about the work.