Receptive Field
Das rezeptive Feld ist der Bereich eines Eingabebildes, der eine Einheit in einem neuronalen Netz beeinflussen kann. So wächst es mit Tiefe, Stride und Dilatation – mit Code.
Das rezeptive Feld einer Einheit in einem Faltungsneuronalen Netz (CNN) ist der Bereich des Eingabebildes, der den Wert dieser Einheit beeinflussen kann. Eine Einheit in der ersten Faltungsschicht eines Netzes mit einer Größe von 3 × 3 sieht einen Bildausschnitt von 3 × 3 Pixeln. Einheiten in tieferen Schichten sehen zunehmend größere Bereiche, weil jede Schicht benachbarte Ausgaben der vorherigen Schicht zusammenfasst. Das rezeptive Feld bestimmt, wie viel Kontext ein Merkmal nutzen kann: Eine Einheit, die einen ganzen Bus erkennen soll, muss den gesamten Bus sehen. Der Begriff stammt aus der Neurowissenschaft. Dort bezeichnet er den Bereich des Gesichtsfelds, der ein einzelnes Neuron aktiviert.
Wie das rezeptive Feld wächst#
Jede Schicht vergrößert das rezeptive Feld um (k − 1) × j Pixel. Dabei ist k die Kernelgröße und j der Sprung, also der Abstand in Eingabepixeln zwischen benachbarten Einheiten der Schichteingabe. Er entspricht dem Produkt aller vorherigen Schrittweiten. Daraus ergeben sich drei Folgen:
- Kleine Kernel stapeln: Drei 3 × 3-Schichten mit Schrittweite 1 sehen einen Ausschnitt von 7 × 7 Pixeln – genau wie eine 7 × 7-Schicht. Bei C Kanälen benötigen sie 27C² statt 49C² Gewichte. Dieses Argument verwendeten die VGG-Netze für den Aufbau tiefer Stapel aus 3 × 3-Faltungen.
- Schrittweiten und Pooling: Jede Schicht mit Schrittweite 2 und jeder Pooling-Schritt verdoppelt den Sprung, sodass spätere Schichten das rezeptive Feld doppelt so schnell vergrößern. So erreichen CNNs rezeptive Felder von Hunderten Pixeln, während ihre Feature-Maps immer kleiner werden.
- Dilatation: Bei einer dilatierten (atrous) 3 × 3-Faltung liegen die Abtastpunkte im Abstand von d Pixeln und decken 2d + 1 Pixel ab. Dadurch wird das rezeptive Feld vergrößert, ohne die Auflösung zu verringern. Das eignet sich für dichte Aufgaben auf Pixelebene, etwa semantische Segmentierung.
Eine direkte Messung des rezeptiven Felds bestätigt diese Regeln: Berechne den Gradienten rückwärts ausgehend von einem Ausgabewert und prüfe, welche Eingabepixel einen Gradienten ungleich null erhalten.
import torch
from torch import nn
# Three stacked 3x3 convolutions in three configurations: (stride, dilation)
for name, stride, dilation in (("plain", 1, 1), ("strided", 2, 1), ("dilated", 1, 2)):
convs = [nn.Conv2d(1, 1, 3, stride, padding=dilation, dilation=dilation, bias=False) for _ in range(3)]
for conv in convs:
nn.init.ones_(conv.weight) # positive weights, so no input pixel's gradient cancels out
layers = nn.Sequential(*convs)
# Backpropagate from the central output value; input pixels with nonzero gradient form its receptive field
image = torch.zeros(1, 1, 64, 64, requires_grad=True)
output = layers(image)
output[0, 0, output.shape[2] // 2, output.shape[3] // 2].backward()
rows = image.grad[0, 0].sum(dim=1).nonzero()
size = rows.max().item() - rows.min().item() + 1
print(f"{name}: {size}x{size} pixels")Die Ausgabe beträgt 7 × 7 für den einfachen Schichtenstapel, 15 × 15 für den Stapel mit Schrittweiten, bei dem der Sprung von 1 auf 2 und dann auf 4 wächst, und 13 × 13 für den dilatierten Stapel, bei dem jede Schicht das Feld um 4 Pixel vergrößert.
Theoretisches und effektives rezeptives Feld#
Die Formel gibt das theoretische rezeptive Feld an, also alle Pixel, die eine Einheit beeinflussen können. Das effektive rezeptive Feld misst, wie stark jedes Pixel tatsächlich beiträgt: Der Einfluss des effektiven rezeptiven Felds ist annähernd gaußförmig, konzentriert sich auf das Zentrum und erstreckt sich nur über einen Teil der theoretischen Fläche. Größere Kernel erweitern das effektive rezeptive Feld; RepLKNet verwendete Kernel für Tiefenfaltungen mit einer Größe von bis zu 31 × 31 und berichtete von wesentlich größeren effektiven rezeptiven Feldern als bei CNNs mit kleinen Kerneln. In Modellen vom Typ Vision Transformer kann dank Selbstaufmerksamkeit jeder Patch eines Bildes bereits ab der ersten Schicht Informationen aus allen anderen Patches beziehen, sodass das theoretische rezeptive Feld in jeder Netzwerktiefe das gesamte Bild umfasst.
Rezeptives Feld und verwandte Begriffe#
- Kernelgröße: Das Fenster, das eine Faltung aus ihrer Eingabe liest, beispielsweise 3 × 3. Das rezeptive Feld ist der aufsummierte Bereich im Originalbild. Drei gestapelte 3 × 3-Kernel ergeben bereits 7 × 7.
- Feature-Map: Das Ausgabegitter einer Schicht. Das rezeptive Feld beschreibt den Eingabebereich, der einer einzelnen Position auf diesem Gitter zugrunde liegt.
- Kontextfenster: Die Anzahl der Token, die ein Sprachmodell auf einmal verarbeitet – das Gegenstück zum rezeptiven Feld auf einem Bildgitter bei Sequenzen.
Rezeptive Felder bei der Objekterkennung#
Detektoren erkennen kleine Objekte anhand feiner Feature-Maps und große Objekte anhand grober, tiefer Feature-Maps mit großen rezeptiven Feldern. Ein Feature-Pyramid-Netzwerk (FPN) überträgt tiefen Kontext zurück in die feinen Feature-Maps. Ein rezeptives Feld, das kleiner ist als ein Objekt, erfasst nur einen Teil davon. Kleine Objekte benötigen weiterhin eine feine Ebene, denn auf einer Feature-Map mit Schrittweite 32 nimmt ein 20 Pixel großes Objekt weniger als eine Gitterzelle ein. YOLO26 trifft Vorhersagen auf Feature-Maps mit Schrittweiten von 8, 16 und 32. Am Ende seines Backbones wendet es einen SPPF-Block an, der die Feature-Map mit Schrittweite 32 mit Fenstern zusammenfasst, die 5 × 5, 9 × 9 und 13 × 13 Zellen entsprechen. Darauf folgt ein Selbstaufmerksamkeitsblock, dessen Reichweite die gesamte Feature-Map mit Schrittweite 32 umfasst.










