Apa itu skip connection (residual connection)?
Skip connection adalah jalan pintas yang menambahkan input sebuah block layer langsung ke output-nya, sehingga block itu menghitung F(x) + x, bukan F(x). Dengan begitu, layer-layer di dalamnya hanya perlu mempelajari residual F(x), yaitu selisih antara output yang diinginkan dan input. Penjumlahan sederhana ini menjadi inti residual network (ResNet), yang diperkenalkan He et al. pada 2015.
Skip connection membuat network yang sangat dalam bisa di-train. Berkat skip connection, ResNet bisa melewati 100 layer pada klasifikasi gambar. Teknik ini juga muncul di U-Net untuk segmentation, di backbone untuk detection, dan di setiap block Transformer, tempat attention dan feed-forward layer masing-masing berada di dalam residual connection. Tanpa skip connection, menumpuk lebih banyak layer sering kali membuat training error makin buruk, bukan makin baik.
Ide utama
- Skip connection menghitung F(x) + x, jadi layer-layer-nya hanya mempelajari residual F(x).
- Training error plain network makin buruk seiring bertambahnya kedalaman, bahkan dengan batch normalization.
- Karena ∂(x + F(x))/∂x = 1 + ∂F/∂x, gradient selalu punya jalur langsung untuk kembali.
- Block dengan F(x) mendekati nol bertindak sebagai identity, jadi menambah block berisiko kecil.
- Bottleneck block memakai convolution 1x1 untuk memangkas parameter di ResNet yang dalam.
- Residual connection dipakai di ResNet, U-Net, dan setiap block Transformer.
Pertanyaan umum
Apa bedanya skip connection dan residual connection?
Skip connection adalah jalur apa pun yang membawa input sebuah layer melewati satu layer atau lebih. Residual connection adalah jenis khusus yang menjumlahkan input ke output, seperti di ResNet. Skip connection juga bisa berupa concatenation, seperti di DenseNet dan U-Net, atau melewati gate yang dipelajari, seperti di highway network.
Apakah skip connection mengurangi overfitting?
Tidak secara langsung. Fungsi utamanya memperbaiki masalah optimasi: plain network yang lebih dalam gagal mencocokkan data training sekalipun. Overfitting tetap ditangani dengan data augmentation, weight decay, dan regularization lainnya. ResNet yang lebih dalam memang melakukan generalization dengan baik dalam praktik, tetapi itu berawal dari fakta bahwa ia bisa di-train.
Apa itu highway network?
Highway network (Srivastava et al., 2015) adalah desain yang lebih awal, dengan gate T(x) yang dipelajari untuk mencampur output layer dan input: y = T(x) · H(x) + (1 − T(x)) · x. Desain ini membuat network dengan sekitar 100 layer bisa di-train. ResNet membuang gate itu dan selalu menjumlahkan input, yang lebih sederhana dan bekerja lebih baik pada skala besar.
Apa arti angka pada ResNet-50?
Angka itu menghitung layer dengan weight yang dipelajari di sepanjang jalur utama: convolution 7x7 pertama, convolution di semua residual block, dan fully connected layer terakhir. ResNet-50 punya 16 bottleneck block yang masing-masing berisi 3 convolution, jadi 1 + 48 + 1 = 50. Shortcut, pooling, dan batch normalization tidak dihitung.
Penjelasan terkait
- Convolutional Neural Network · Cara CNN melihat dan memahami gambar
- Vanishing dan Exploding Gradient · Kenapa deep network sulit dilatih dan cara mengatasinya
- Batch Normalization · Kenapa normalisasi aktivasi mempercepat training deep network
- Backpropagation · Cara network belajar dari kesalahannya
- Arsitektur Transformer · Panduan visual untuk paper "Attention Is All You Need"
- Image Segmentation · Klasifikasikan setiap pixel dalam gambar, dari area semantik sampai tiap objek
Referensi
- He, Zhang, Ren & Sun (2015), "Deep Residual Learning for Image Recognition", CVPR 2016
- He, Zhang, Ren & Sun (2016), "Identity Mappings in Deep Residual Networks", ECCV
- Veit, Wilber & Belongie (2016), "Residual Networks Behave Like Ensembles of Relatively Shallow Networks", NeurIPS
- Srivastava, Greff & Schmidhuber (2015), "Highway Networks"
Terakhir diperbarui