Deep Collective Learning: Learning Optimal Inputs and Weights Jointly in Deep Neural Networks