bottleneck layer

Et lag i et neuralt netværk med færre neuroner end de omkringliggende lag, som tvinger netværket til at lære en komprimeret repræsentation af inputdata.

Kort fortalt

Et flaskehalslag er et smallere lag i et neuralt netværk, der tvinger modellen til at finde de vigtigste træk i dataene.

Kategori
arkitektur
Niveau
øvet

Betydninger

1
  1. 1

    Et neuralt netværkslag med et markant mindre antal neuroner end de tilstødende lag, hvilket tvinger netværket til at udtrække de mest essentielle træk og dermed fungere som en komprimeret repræsentation.

    • I en autoencoder tvinger bottleneck-laget netværket til at lære en komprimeret kodning af inputdata.Generel faglitteratur
    • Transformere bruger et bottleneck i feed-forward-laget til at reducere modelkompleksiteten.Vaswani et al., 2017

Hvornår bruges det

Bottleneck-lag anvendes primært i autoencodere til dimensionalitetsreduktion og i Transformers' feed-forward-netværk for at kontrollere modelstørrelse. De kan også indgå i mobilnetværk som MobileNet for at reducere antallet af parametre.

Kodeeksempel

from tensorflow.keras.layers import Input, Dense
from tensorflow.keras.models import Model

input_dim = 784
encoding_dim = 32  # bottleneck layer size

input_layer = Input(shape=(input_dim,))
encoded = Dense(encoding_dim, activation='relu')(input_layer)
decoded = Dense(input_dim, activation='sigmoid')(encoded)

autoencoder = Model(input_layer, decoded)
autoencoder.compile(optimizer='adam', loss='binary_crossentropy')

Eksempel på en autoencoder med et bottleneck-lag på 32 neuroner, der tvinger netværket til at lære en komprimeret repræsentation af 784-dimensionelle input.

Oprindelse

Fra engelsk 'bottleneck' (flaskehals) og 'layer' (lag), med henvisning til at laget udgør en snæver passage i netværket.

Kilder

2
  • Auto-Encoding Variational Bayes (Kingma & Welling, 2013)
  • Attention Is All You Need (Vaswani et al., 2017)