<ResNet>
잔차 네트워크(residual network)를 사용한다. 152개 층으로 구성된 극도로 깊은 CNN을 사용했다. 더 적은 파라미터를 사용해 점점 더 깊은 네트워크로 모델을 구성하는 일반적인 트렌드를 만들었다 이런 네트워크를 훈련시킬 수 있는 핵심 요소는 스킵 연결(skip-connetcion)이다. 어떤 층에 주입되는 신호가 상위 층의 출력에도 더해진다.
일반적인 신경망을 초기화할 때는 가중치가 0에 가깝기 때문에 네트워크도 0에 가까운 값을 출력한다. 스킵 연결을 추가하면 이 네트워크는 입력과 같은 값을 출력한다. 즉 초기에는 항등함수를 모델링한다. 목적 함수가 항등 함수에 가깝다면(대부분의 경우에 해당) 훈련 속도가 매우 빨라질 것이다.
또한 스킵 연결을 많이 추가하면 일부 층이 아직 학습되지 않았더라도 네트워크는 훈련을 시작할 수 있다. 스킵 연결 덕분에 입력 신호가 전체 네트워크에 손쉽게 영향을 미치게 된다. 심층 잔차 네트워크는 스킵 연결을 가진 작은 신경망인 잔차 유닛(residual unit,RU)을 쌓은 것으로 볼 수 있다.
특성 맵의 수는 몇 개의 잔차 유닛마다 두 배로 늘어나고 높이와 너비는 절반이 된다(스트라이드 2인 합성곱 층을 사용해서). 이러한 경우 입력과 출력의 크기가 다르기 때문에 입력이 잔차 유닛의 출력에 바로 더해질 수 없다(예를 들어 이 문제는 그림 14-17 에서 파선으로 표시된 스킵 연결에 영향을 미친다). 이 문제를 해결하기 위해 스트라이드 2이고 출력 특성 맵의 수가 같은 1x1 합성곱 층으로 입력을 통과시킨다(그림 14-18)
ResNet-34는 (합성곱 층과 완전 연결 층만 헤아려서) 34개 층으로 이루어진 ResNet으로 64개의 특성 맵을 출력하는 3개 Ru, 128개 맵의 4개 RU, 256개 맵의 6개 RU, 512개 맵의 3개 RU를 포함한다.
<Xception>
GooLeNet 과 ResNet의 아이디어를 합쳤지만 인셉션 모듈을 깊이별 분리 합성곱 층(또는 간단히 분리 합성곱 층)이라는 특별한 층으로 대체했다. 일반적인 합성곱 층이 공간상의 패턴(예를 들어, 타원 형태)과 채널 사이의 패턴(예를 들어, 입+코+눈=얼굴)을 동시에 잡기 위해 필터를 사용한다. 분리 합성곱 층은 공간 패턴과 채널 패턴을 분리하여 모델링 할 수 있다고 가정한다. 이 층은 두 개의 부분으로 구성된다. 첫 번째 부분은 하나의 공간 필터를 각 입력 특성 맵에 적용한다. 그다음 두 번째 부분에서는 채널 사이 패턴만 조사한다. 이 부분은 1x1 필터를 사용한 일반적인 합성곱 층이다.
<SENet>
SENet은 다음 그림처럼 원래 구조에 있는 모든 유닛(즉, 모든 인셉션 모듈이나 모든 잔차 유닛)에 SE블록 이라는 작은 신경망을 추가하여 성능을 향상했다.
SE블록이 추가된 부분의 유닛의 출력을 깊이 차원에 초점을 맞추어 분석한다(공간 패턴은 신경 쓰지 않는다). 어떤 특성이 일반적으로 동시에 가장 크게 활성화되는지 학습한다. 그 다음 이 정보를 사용하여 특성 맵을 보정한다. 예를 들어 SE 블록이 그림에서 함께 등장하는 입,코,눈을 학습할 수 있다. 우리가 사진에서 입과 코를 보았다면 눈도 볼 수 있다고 기대한다. 따라서 입과 코 특성 맵이 강하게 활성되고 눈 특성 맵만 크게 활성화되지 않았다면 이 블록이 눈 특성 맵의 출력을 높인다(정확히 말하면 관련 없는 특성 맵의 값을 줄인다). 눈이 다른 요소와 다소 혼동된다면 이런 특성 맵 보정이 애매함을 해결하는 데 도움이 된다.
'Computer Vision > Deep learning' 카테고리의 다른 글
24. 사전훈련된 모델을 사용한 전이 학습 (0) | 2021.06.13 |
---|---|
23. 케라스를 사용해 ResNet-34 CNN 구현 (0) | 2021.06.13 |
21. LeNet-5, AlexNet, GoogleNet (0) | 2021.06.12 |
20. CNN 구조 (0) | 2021.06.12 |
19. 풀링 층 (0) | 2021.06.12 |