Kết nối tắt ResNet
Kết nối tắt ResNet
Một công tắc: có đường tắt hay không. Xem gradient qua mạng rất sâu tóp về 0 hay giữ được quanh 1.
Càng xếp thêm lớp, mạng nơ ron lẽ ra càng mạnh, nhưng thực tế thì ngược lại: mạng rất sâu lại khó học hơn mạng nông. Lý do nằm ở lan truyền ngược. Gradient bắt đầu từ lớp ra rồi đi ngược về lớp đầu, và ở mỗi lớp nó bị nhân với một hệ số. Khi hệ số nhỏ hơn 1, nhân dồn qua vài chục lớp sẽ ép gradient về gần 0 trước khi kịp tới các lớp gần đầu vào, nên những lớp đó gần như không nhận được tín hiệu nào để chỉnh. Đó là gradient biến mất, và nó là bức tường chặn mọi cố gắng làm mạng sâu hơn.
Kết nối tắt của ResNet gỡ đúng chỗ nghẽn đó. Thay vì bắt mỗi khối tính y = F(x), ta cho nó tính y = x + F(x): đầu vào x được cộng thẳng vào đầu ra qua một đường tắt identity. Khi gradient truyền ngược, nó tách làm hai nhánh, một nhánh chui qua lớp F và bị nhân hệ số như cũ, một nhánh đi thẳng theo đường tắt và được chuyển qua nguyên vẹn. Vì luôn tồn tại một lối identity thẳng từ lớp ra về bất kỳ lớp nào, gradient luôn có một thành phần bằng 1 không phụ thuộc độ sâu, nên nó không còn tóp về 0 nữa.
Thử ngay
Thử điều này:
- Để công tắc
TẮTrồi kéo độ sâu lên40: các cột xám bên trái (lớp gần đầu vào) tụt xuống gần đáy thang log, gradient tới đó gần như bằng0. - Bật công tắc sang
BẬT: các cột đậm hiện ra nằm ngay quanh đường vànggradient = 1, dù mạng vẫn sâu như vậy. So sánh cột xám tụt dốc với cột đậm phẳng ngang là thấy đường tắt đã cứu gradient. - Kéo hệ số mỗi lớp xuống
0.30khi công tắcTẮT: cột xám sụp còn nhanh hơn. Bật đường tắt lên: cột đậm vẫn giữ quanh1. - Đọc ô số bên phải toolbar:
lớp 1 không tắtlà con số bé xíu, cònlớp 1 có tắtluôn quanh1, kèm nhãn trạng thái đổi từgradient biến mấtsanggradient ổn định.
Đường tắt cho gradient
Đường tắt identity cho gradient một lối đi thẳng không bị nhân nhỏ đi ở từng lớp. Nhờ lối đi luôn giữ độ lớn quanh 1 này, tín hiệu học vẫn tới được các lớp gần đầu vào dù mạng chồng hàng trăm lớp, và đó là lý do ResNet huấn luyện được những mạng rất sâu mà trước đó không ai làm nổi.
Đường tắt cộng thẳng đầu vào vào đầu ra tạo một lối identity giữ gradient quanh 1, nên mạng rất sâu vẫn học được thay vì nghẽn vì gradient biến mất.
- 1Để công tắc TẮT và độ sâu 40, các cột xám ở những lớp gần đầu vào trông ra sao?
- 2Một khối residual tính gì thay cho y = F(x) thường?
- 3Vì sao có đường tắt thì gradient ở lớp đầu không tóp về 0 dù mạng rất sâu?