I am using a simple CNN with one convolutional layer and one fully connected layer. I am using 3 filter channel and one input channel. I run my code 500 times with random initialization of weights in each loop. Each training loop is run for 30 thousand training steps. Then I plot filter weights of 1st filter and use fitting function to fit the data, similarly for second and third filter. I am getting similar result. Which shows that machine is learning same features to distinguish two classes. But I read every filter channel should learn a different feature. My model is showing 80 percent accuracy in 500 training loops. So what can be the reason for learning same features? Is my input data is quite simple?
Actually nothing guarantees that different convolutional filters would learn different features. The filters have same structure and are trained in the same way, so they are redundant before they learn something. We initialize the parameters randomly and we hope they will learn different features. You should probably try different initialization for the weights. If this doesn't help, try debugging the network as described in What should I do when my neural network doesn't learn?.
Deep neural networks use Several hidden layers to hierarchically learn high level representation of a given picture, for example : first layer of your neural network might detect edges present in your given picture, second layer may detect curves present in your given picture and 3rd layer may detect your full face from your given picture,basically they try to bridge the gap between high level representation and low level features.so even if you keep on doing random initialization every time there is a possibility that first layer of your neural network might still detect something like edges present in your given picture over and over again,low level features are minor details of your picture, like lines,dots etc and these are typically caught by convolution filters... does it make sense?if you want your network to learn more features then increase neurons and hidden layers.