Machine Learning Applications to Brain Computer Interfaces