Skip Connection
1. 개요
인공 신경망에서 중간의 레이어를 건너뛰고 데이터를 연결하는 개념. 신경망 구조에서 서로 다른 계층의 정보를 선택적으로 병합하고 결합하는 메커니즘을 제공하여 보다 유연한 학습을 가능케한다.2. 상세
일반적으로 신경망 모델 학습 시 모델의 층이 깊어질수록 학습 결과는 좋아지기 마련이다. 하지만 이 과정에서 층을 너무 많이 쌓아버리면 핵심적으로 다음 레이어로 전달되어야 하는 값들에 지나친 가중치가 끼게 된다. 레이어를 쌓는다는 것은 값이 전달될 때마다 레이어의 가중치가 곱해진다는 의미이므로, 이 가중치가 크지 않더라도 여러 레이어를 거치게 되면 그 값이 기하급수적으로 작아지거나 커지게 되는 것이다.[1] 이를 해결하기 위한 개념이 특정 레이어의 특정 정보들은 중간의 층을 아예 건너뛰고 이전 층의 정보를 연결하는 것이며, 이를 Skip Connection이라 한다.그냥 가중치를 1로 연결하면 되지 않냐는 의문이 들 수 있는데, 신경망 모델은 모든 연결이 다 선형으로 연결되는 것이 아니기 때문에 단순히 가중치 1인 노드를 만드는 것만으로는 충분치가 않을 때가 있다. 뿐만 아니라 인공 신경망의 레이어는 특정 정보만을 추출하거나 압축하는 등의 정보를 추상화하는 기능이 있음을 생각하자. 매번 1로 연결하는 노드를 만들어서 매 레이어마다 정보를 바로 연결하면 쓸데없는 작업량이 늘어날 뿐만 아니라 네트워크 용량도 비효율적으로 사용하게 된다.
3. 장단점
Skip 개념이 적용되었기 때문에 자연스럽게 퍼포먼스 측면에서 시간 단축의 효과를 얻을 수 있다. 컨트롤해야 하는 레이어 수가 줄어드는 만큼 학습의 복잡도가 낮아지는 것 또한 장점으로 꼽힌다.하지만 엄연히 가중치를 의도적으로 배제하는 것이기 때문에 어떤 skip 방식을 채택하느냐에 따라 정확도 문제가 발생할 수 있다.
4. 예시
- U-net
[1]
이러한 현상을 각각 Vanishing Gradient, Exploding Gradient라 한다.