How to adaptively sample n-dimensional data and build an optimum training set
Take a look at active learning. 

https://en.m.wikipedia.org/wiki/Active_learning_(machine_learning)

In this approach you can train with a subset of samples and add more depending on what samples are most informative for the model.

Alternatively you could try reducing the number of samples by clustering and choosing a small number of samples from each cluster.