Not All Bits have Equal Value: Heterogeneous Precisions via Trainable Noise