title: 1x1 convolutions vs reducing number of filters
body: <p>In DNN architectures like GoogLeNet 1x1 convolutions are heavily used. I understand the reason to use them is mainly dimensionality reduction, i.e. if the previous convolutional layer had C channels, I can use a 1x1xC' convolution with C' &lt; C to reduce the number of channels. </p>
  
  <p>However, what is the advantage of doing this over reducing the number of filters in the previous layer in the first place? For example, in GoogLeNet there's a Max Pooling Layer that has C=480 output channels (and so does the layer before it). The Inception module (inception (4a)) that follows it uses three 1x1 convolutions with C'=192, 96, 16. Why not take C in the previous layer smaller to begin with, say 200 or 300? Of course, I'd still use the 1x1 convolutions to reduce the dimensions to the corresponding 3x3 and 5x5 filters.</p>