Extracting Meaningful High-Fidelity Knowledge from Convolutional Neural Networks