The 1*1 convolution filter is the same as the normal filter, the only difference is that its size is 1*1 , and the relationship between the local information in the previous layer is not considered. It first appeared in the paper Network In Network. The use of 1*1 convolution is to deepen and widen the network structure, which is used to reduce dimensionality in the Inception network (Going Deeper with Convolutions).
Since 3*3 convolution or 5*5 convolution is quite time-consuming to perform convolution operations on the convolutional layers of hundreds of filters, 1*1 convolution is calculated in 3*3 convolution or 5*5 convolution Reduce the dimensionality first.Then, the main functions of 1*1 convolution are as follows:
1、降维( dimension reductionality )
The result after a certain convolution is the feature of W*H*100, and now it needs to be reduced to W*H*10 with a 1*1 convolution kernel, that is, 100 channels become 10 channels:
through a roll Product operation, W*H*100 will become W*H*1, in this case, using 10 1*1 convolution kernels, obviously you can convolve 10 W*H*1, and then do the concatenation of channels operation, W*H*5 is realized.
2. Dimension upgrade
For example, the result after a certain convolution is the feature of W*H*6, and now it is necessary to use a 1*1 convolution kernel to reduce its dimension to W*H*7, that is, 6 channels become 7 channels:
pass through once In the convolution operation, W*H*6 will become W*H*1. In this case, using 7 convolution kernels of 1*1, it is obvious that 7 W*H*1 can be convolved, and then the copper sleeve string can be made. Then, W*H*7 is realized.
3. Add nonlinearity . After the convolution layer passes through the excitation layer, the 1*1 convolution adds nonlinear activation (non-linear activation) to the learning representation of the previous layer to improve the expressive ability of the network;