Jan 4, 2024
MUHAMMAD GHIFARY
Deep residual networks (ResNet) merupakan suatu arsitektur model deep learning yang bisa dikatakan menjadi fenomena pada computer vision (terutama problem rekognisi objek) sejak diperkenalkan pada akhir 2015 (He et al. 2015). ResNet memungkinkan deep learning dilatih dengan arsitektur yang benar-benar “deep” (lebih dari 30 layer) dengan peningkatan performa yang signifikan.
Pada masa itu, sebelum ResNet diperkenalkan ada fenomena menarik yang ditemukan pada deep learning, yaitu semakin mendalam suatu arsitektur model deep learning tidak berarti semakin bagus pula hasil pelatihannya. Gambar yang diambil dari paper (He et al. 2015) di bawah ini mengindikasikan efek tersebut: model standar convolutional networks dengan layer lebih banyak (56-layer) memiliki performa yang lebih buruk dibandingkan model yang lebih kecil (20-layer).

Performa model standar convolutional networks 56-layer lebih buruk dibandingkan model 20-layer
Jika kita perhatikan tren grafik training vs test error, model 56-layer sudah pasti tidak mengalami overfitting. Dengan demikian, model 56-layer memang gagal untuk dilatih dengan baik, kemungkinan besar dikarenakan terjadinya problem vanishing gradient: **informasi gradient yang menghilang ketika backpropagation sehingga tidak efektif tersampaikan ke layer-layer yang dekat dengan input.
Residual networks mencoba menjawab permasalahan vanishing gradient melalui modifikasi arsitektur model dengan menambahkan skip connection: koneksi yang menghubungkan 2 layer yang berjauhan secara langsung dengan melompati beberapa layer di antaranya. Pada skip connection hanya merepresentasikan operasi penjumlahan antara kedua layer tersebut, tidak ada tambahan parameter / bobot.
Dua gambar di bawah ini mengilustrasikan perbedaan antara model deep learning standar dengan model dengan skip connection.

Plain Block

Residual Block
Kumpulan layer yang dinaungi oleh skip connection dapat kita sebut sebagai satuan residual block. Jika kita tumpuk beberapa residual block, maka menghasilkan residual networks.
Untuk memudahkan pembandingan, model deep learning standar kita namakan sebagai plain networks yang terdiri dari block tanpa skip connection.
Secara matematis sebuah residual block dapat didefinisikan dengan persamaan:
$$ x_l = x_{l-1} + \mathcal{R}{\theta{l-1}}(x_{l-1}) $$
dimana $\mathcal{R}_\theta(x)$ merepresentasikan fungsi non-linear berparameter $\theta$ yang disebut sebagai residual (dari sinilah asal muasal penamaan residual networks), yang bisa saja terdiri dari beberapa tumpukan layer linear atau convolutional disertai dengan fungsi aktivasi.
Residual merupakan konsep yang sudah tidak asing baik di statistik/machine learning maupun di pengolahan citra (image processing). Pada statistik, residual diinterpretasikan sebagai selisih antara nilai observasi dan prediksi. Pada pengolahan citra, residual dapat dipahami sebagai fungsi koreksi dari citra noise ke citra asli (contoh: image denoising, deblurring, dsb).
Sebagai perbandingan, plain block (blok yang digunakan deep learning standar tanpa skip connection) dapat ditulis dengan persamaan: