심층 학습/GoogLeNet, ResNet

1. 소개



이번에는 CNN 모델의 GoogLeNet과 Resnet에 대해 정리해 보겠습니다.

2.GoogLeNet





GoodLeNet은 2014년 ILSVRC에서 우승한 모델로 복잡해 보이는 모델입니다만, 처음으로 「모듈」을 1개 설계해, 그것을 연결시켜 가는 방법이 도입되었습니다. 이 이후 모듈에서 생각한다고 하는 것이 많아졌습니다.



  이것이 사용되고 있는 Inception 모듈입니다. 특징은, 1×1의 컨벌루션을 적극적으로 사용해, 다양한 변환을 실시해 그것을 모두 연결하는 것입니다. 이 1x1 컨벌루션은 차원 감소와 동등한 효과를 가지고 있습니다.

작은 컨벌루션 필터의 그룹으로 근사하는 것으로, 모델의 표현력과 파라미터수의 트레이드 오프를 개선하고 있다고 말할 수 있습니다.


 파라미터의 삭감은 위 그림과 같이 직관적으로 이해할 수 있습니다. 컨볼 루션 레이어의 파라미터 수는 bias 항을 제외하면 입력 채널 수 × 출력 채널 수 × 커널 크기 (e.g. 5x5 = 25)로 표현됩니다.

통상의 컨벌루션이라면, 왼쪽과 같이 파라미터는 모두 무언가의 값을 가지고 있기 때문에 dense 입니다. 한편, Inception에서는 다른 사이즈의 컨벌루션을 독립적으로 실시하고 있기 때문에, 비0의 파라미터수가 크게 줄어듭니다.


GoogLeNet의 학습에서는, 네트워크의 도중에서 분기시킨 서브 네트워크에서도 클래스 분류를 실시해, auxiliary loss를 추가하는 것이 행해지고 있다. 이를 통해 네트워크의 중간층에 직접 오차를 전파시킴으로써 기울기 소실을 방지하고 네트워크 정규화를 실현하고 있습니다.

또한 앙상블 학습과 같은 효과를 얻을 수 있기 때문에 일반화 성능의 향상을 기대할 수 있습니다. 또한 AuxililaryLoss를 도입하지 않더라도 BatchNormalization을 추가하면 마찬가지로 학습이 성공적으로 진행될 수 있습니다.

3.ResNet



딥 러닝은 기본적으로 다층으로 할수록 좋다고 생각되고 있었지만, 50층을 넘는 것과 같은 큰 네트워크는 그라디언트 상실의 문제로부터 퍼포먼스가 저하되어 버리는 것이 알려져 있었습니다. ResNet은 이를 해결하여 초다층 네트워크도 학습 가능하게 되었습니다. 현재 CNN은 거의이 ResNet 기반 모델입니다.


ResNet은 계층을 가로 지르는 조인으로 Identity mapping을 사용합니다. 이렇게하면 건너 뛰기 연결의 내부 레이어가 블록의 입출력 잔차를 배우게됩니다.

ResNet이 잘 가는 것은 블록으로의 입력에 더 이상의 변환이 필요하지 않은 경우는 가중치가 0이 되어 작은 변환이 요구되는 경우는 대응하는 작은 변동을 보다 찾아내기 쉬워지는 것, 우회하는 것에 의해 입력층에 가까운 층에도 오차가 전해져 기울기 소실이 일어나기 어렵다는 것, 다양한 바이패스의 조합이 존재하게 되어 앙상블 효과가 있는 것, 등에 의합니다.

이와 같이, 많은 이점을 가지면서, 하고 있는 것은 입력을 쇼트 컷 해 더할 뿐이므로, 계산 코스트는 거의 늘지 않고, 실장도 용이한 것이 특징입니다.

 

좋은 웹페이지 즐겨찾기