Residual connection
En residual connection er en forbindelse i et neuralt netværk, der springer et eller flere lag over og adderer indgangssignalet til lagets output.
Kort fortalt
En genvej i et neuralt netværk, der lader information flyde ubesværet forbi lag for at undgå problemer med forsvindende gradienter.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /rɪˈzɪdjuəl kəˈnekʃən/
Betydninger
1- 1
En forbindelse, der springer et eller flere lag over og adderer den oprindelige indgang til lagets output, hvilket gør det muligt for netværket at lære en residualfunktion.
- I ResNet bruges residual connections til at konstruere residualblokke, der muliggør træning af netværk med hundredvis af lag. — Deep Residual Learning for Image Recognition, 2016
- Transformer-modellen anvender residual connections omkring hvert del-lag i opmærksomheds- og feedforward-netværket. — Attention Is All You Need, 2017
Hvornår bruges det
Residual connections bruges i dybe netværk som ResNet og Transformers for at forbedre gradientflow og muliggøre træning af meget dybe modeller.
Formel
y = F(x, {W_i}) + xKodeeksempel
import torch.nn as nn
class ResidualBlock(nn.Module):
def __init__(self, in_channels, out_channels, stride=1):
super().__init__()
self.conv1 = nn.Conv2d(in_channels, out_channels, 3, stride, padding=1)
self.bn1 = nn.BatchNorm2d(out_channels)
self.relu = nn.ReLU()
self.conv2 = nn.Conv2d(out_channels, out_channels, 3, padding=1)
self.bn2 = nn.BatchNorm2d(out_channels)
self.shortcut = nn.Sequential()
if stride != 1 or in_channels != out_channels:
self.shortcut = nn.Sequential(
nn.Conv2d(in_channels, out_channels, 1, stride),
nn.BatchNorm2d(out_channels)
)
def forward(self, x):
out = self.relu(self.bn1(self.conv1(x)))
out = self.bn2(self.conv2(out))
out += self.shortcut(x) # residual connection
out = self.relu(out)
return outEn PyTorch-implementering af en residualblok med en shortcut-forbindelse, der adderes til outputtet før den endelige ReLU.
Oprindelse
Fra engelsk 'residual' (resterende), fordi forbindelsen lader netværket lære en residualfunktion (forskel) i stedet for den fulde transformation.
Afledte ord
2Kilder
3- Deep Residual Learning for Image Recognition (He et al., 2016)
- Attention Is All You Need (Vaswani et al., 2017)
- Identity Mappings in Deep Residual Networks (He et al., 2016)