depthwise separable convolution

En convolutionsteknik der dekomponerer en standard convolution i en dybdevis convolution efterfulgt af en punktvis convolution, hvilket reducerer antallet af parametre og beregninger.

Kort fortalt

En måde at udføre convolution på med færre parametre ved at opdele operationen i to trin: først et filter pr. inputkanal (dybdevis), derefter en 1×1 convolution for at kombinere kanalerne.

Kategori
teknik
Niveau
øvet

Betydninger

1
  1. 1

    En faktoriseret version af standard convolution, der består af en dybdevis convolution (et filter pr. inputkanal) efterfulgt af en punktvis 1×1 convolution, som kombinerer kanaloutput. Denne dekomponering reducerer antallet af parametre og beregningsmæssig kompleksitet.

    • MobileNet anvender depthwise separable convolutions for at opnå en effektiv mobil arkitektur.Howard et al., 2017
    • Ved at erstatte standard convolution med depthwise separable convolution reduceres parameterantallet med en faktor på ca. 8-9.

Hvornår bruges det

Depthwise separable convolution anvendes primært i mobile og effektive neurale netværk som MobileNet og Xception for at reducere modelstørrelse og beregningsomkostninger. Den er særligt nyttig på enheder med begrænsede ressourcer, fx smartphones. Teknikken gør det muligt at bygge dybe netværk med færre parametre uden væsentligt tab af nøjagtighed.

Kodeeksempel

import tensorflow as tf

# Standard convolution layer
standard_conv = tf.keras.layers.Conv2D(filters=64, kernel_size=3, padding='same')

# Depthwise separable convolution layer
sep_conv = tf.keras.layers.SeparableConv2D(filters=64, kernel_size=3, padding='same')

# Compare number of parameters
input_shape = (32, 32, 3)
print('Standard conv params:', standard_conv.count_params())
print('Separable conv params:', sep_conv.count_params())

Eksempel i TensorFlow/Keras der sammenligner en standard 2D convolution med en depthwise separable convolution. Antallet af parametre er markant lavere for den separable version.

Oprindelse

Termen er en sammensætning af 'depthwise' (dybdevis) og 'separable' (separable), der refererer til at convolutionen opdeles i to separate trin: én for spatial dimension og én for kanaldimension.

Afledte ord

3

Kilder

2
  • MobileNets: Efficient Convolutional Neural Networks for Mobile Vision Applications
  • Xception: Deep Learning with Depthwise Separable Convolutions