Learning local discrete features in explainable-by-design convolutional neural networks