conda create -n ctrlns python=3.11
conda activate ctrlns
pip install -r requirements.txtThe data used in the paper is already generated in the datasets folder. If you want to generate the data yourself, you can follow the following steps.
cd datasets
python generate_data.pyThe default parameters will generate a synthetic dataset used in paper. You can change the configurations by changing the values in datasets/generate_data.py file.
To run the experiments, you can use the following steps. Make sure you have a GPU available for training the models.
To see the HMM model cannot handle complex nonstationary dynamics, you can run the following command:
python train_hmm.pyIt is expected to see the HMM doesn't converge and make the optimization problem unstable.
Identifiable result for $u_t$ when directly accessing latent variables $z_t$ (First part in Theorem 1)
To see the identifiable result for
python train_nsctrl_z.pyYou will find accuracy achieves >95% for estimating the latent variables
Theorem 1 indicates we can accurately estimate
python train_nsctrl.pyYou will find the MCC and Acc curve looks similar to the following one.
We can see at first the
Later on the Acc for estimating
Finally with accurate estimation of
See the real_world_exp folder for the real-world experiments.
