Answers.Body: <p>For simplicitly, let's consider only the first convolutional layer, that is, the one applied to the image. If you consider an RGB image, then there are <span class="math-container">$3$</span> channels: the red channel, the green channel and the blue channel. Thus, a kernel that is applied to this image will also have <span class="math-container">$3$</span> channels: the red channel, the green channel and the blue channel. In general, the distributions of the intensity of the red, green and blue colors in the image are different, so, in general, the red, green and blue channels of the kernel will also be different because they need to keep track of different information.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-10T08:24:49.593Z
Answers.Text: Thanks for your answer. I understand what you mean, so do you think it is possible to use the same weight for different channel? Or do you know someone who tried it and got a result?
Answers.UserDisplayName: wangxl
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-10T09:17:47.570Z
Answers.Text: The weights are the learnable parameters. They are changed by gradient descent and the back-propagation algorithm during training.
Answers.UserDisplayName: nbro
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-07-11T12:04:44.750Z
Answers.Text: @wangxl To test it yourself you could just modify your images to place the red channel at the top, the green channel in the middle and the blue channel at the bottom (so that your 3-channel width * height image becomes a 1-channel width * (3*height) image) and feed that single-channel image into the network. This will contain all the same information as your original image, but only train a single set of filter kernels.
Answers.UserDisplayName: DrMcCleod
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-06-09T14:00:05.123Z
Answers.LastActivityDate: 2019-06-09T14:00:05.123Z
Answers.UserDisplayName: nbro
Body: <p>From the answers to this question <a href="https://ai.stackexchange.com/q/5769/2444">In a CNN, does each new filter have different weights for each input channel, or are the same weights of each filter used across input channels?</a>, I got the fact that each filter has different weights for each input channel. But why should that be the case? What if we apply the same weights to each input channel? Does it work or not?</p>
  
Tags: <machine-learning><convolutional-neural-networks><weights>
Title: Why should each filter have different weights for each input channel?
UserDisplayName: wangxl
ThreadText: # Why should each filter have different weights for each input channel?
  
  (Asked by: username_0 on 2019-06-09)
  
  From the answers to this question [In a CNN, does each new filter have different weights for each input channel, or are the same weights of each filter used across input channels?](https://ai.stackexchange.com/q/5769/2444), I got the fact that each filter has different weights for each input channel. But why should that be the case? What if we apply the same weights to each input channel? Does it work or not?
  
  **Tags:** machine-learning, convolutional-neural-networks, weights
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2019-06-09. Score: 1
  
  For simplicitly, let's consider only the first convolutional layer, that is, the one applied to the image. If you consider an RGB image, then there are $3$ channels: the red channel, the green channel and the blue channel. Thus, a kernel that is applied to this image will also have $3$ channels: the red channel, the green channel and the blue channel. In general, the distributions of the intensity of the red, green and blue colors in the image are different, so, in general, the red, green and blue channels of the kernel will also be different because they need to keep track of different information.
  
  > **Comments:**
  > **username_0**: Thanks for your answer. I understand what you mean, so do you think it is possible to use the same weight for different channel? Or do you know someone who tried it and got a result?  
  > **username_1**: The weights are the learnable parameters. They are changed by gradient descent and the back-propagation algorithm during training.  
  > **username_2**: @wangxl To test it yourself you could just modify your images to place the red channel at the top, the green channel in the middle and the blue channel at the bottom (so that your 3-channel width * height image becomes a 1-channel width * (3*height) image) and feed that single-channel image into the network. This will contain all the same information as your original image, but only train a single set of filter kernels.  
  
  ---
  
  