[논문리뷰] 3. CNN에 대하여

논문명: Going Deeper with Convolutions

논문저자: Christian Szegedy 외 다수 


개요: 전체적으로는 기존의 CNN뿐만 아니라 사실상 모든 기계학습에서 나타나는 문제점인 '층을 깊게하여 학습할 경우 생기는 문제'에 대해 해결책을 제시하면서도 성능을 향상시킨 그런 논문이다.  


1. 기존 구조의 문제점

기존의 구조에서는 학습의 깊이를 더욱 깊게 하기 위해 층을 늘리는 방식으로 진행한다. 하지만 층을 늘릴수록 계산해야하는 파라미터의 개수가 기하급수적으로 늘어난다. 


위의 예시 표와 같이 매우 간단한 148*148 형태의 input이 단 3개의 계층만 거쳐도 147584개의 파라미터가 필요하게 된다. 그럼 만일 더 큰 형태로 수많은 층을 구현한다고 하면 엄청난 수의 파라미터가 필요할 것이고 이는 CPU,GPU가 발달한 현재에서도 쉽지 않은 일이다. 

또한 단순하게 심층 구조를 이용할 경우 위의 파라미터의 과한 갯수와 맞물려 오버피팅이 일어나기 쉽다는 특성을 가지고 있다.  그리고 본 논문에서는 이에 대한 해답으로 희소구조 + 완전 연결 계층의 사용을 언급한다.

(희소구조란?

조밀한 구조의 반대로 실제로 사용되지 않는(무언가를 표현하지 않는 데이터가 대부분인)데이터가 많은 데이터 구조를 이야기 한다. 

예시로 희소행렬은 

0    0    1    0    5    0     

0    0    0    0    0    0   

0    0    0    0    0    1   

0    0    0    0    0    0

0    1    0    0    0    0

같은 형태를 띄고 있다.)

하지만 희소구조 역시 문제점을 가지고 있다. 바로 연산 시 매우 비효율적으로 진행된다는 점이다. 따라서 희소행렬을 사용하면 compress할 필요가 있다. 

2. 구조 설명

위쪽은 기본적인 Inception구조이고 아래쪽은 1X1 합성곱을 적용해 차원을 낮춘 구조이다.
간단하게 본 구조를 설명하면 1X1, 3X3, 5X5 필터가 있고 3X3 Max pooling이 있는데 1X1, 3X3, 5X5는 다양한 종류의 필터로 구조를 정확히 파악하는 용도로 이게 연결된 1X1은 차원을 낮추고 변수를 줄이는 용도로 사용되었다. 또한 MaxPooling은 변수도 차원도 없는데 1X1를 적용한 이유는 같은 형태로 맞추기 위함이라고 이해하였다. 
이런 구조를 다층으로 쌓아  GoogleNet이라는 학습모델을 제작하였다.
특징

1.  평균 에버리지 풀링
출력 부분에 구글넷은 이전 논문에서 리뷰한 평균 에버리지 풀링을 이용하였다. 이를 통해 더욱 데이터와 출력의 관계를 유지하였다.

2.  다수의 출력층
구조를 보면 softmax를 이용한 출력이 1개가 아닌것을 확인 할 수 있다. 다양한 출력층을 통해 정확도를 높히려 했다고 볼 수 있다.

3.  Inception구조와 ReLU함수 
기본적인 base는 Inception 구조로 되어있다. 전체적으로는 다중 Inception구조이며 위의 특징들이 적절하게 구성되어 있는 구조이다. 그리고 거의 모든 필터에서 ReLU함수를 사용했으며 이는 비선형성을 위한 것이고 1X1 합성곱 필터를 많이 추가한 이유 역시 ReLU함수인 1X1필터를 통해 비선형을 증가시키면서 파라미터의 갯수는 적게 유지하려 한 것이다.

전체적인 구조는 다음과 같다. 

다중의 출력과 다중의 Inception 구조를 볼 수 있다. 

3. 결과 
결과는 성공적이였다. 
다양한 시험 과정에서 충분한 성적 향상을 보여줬다. 결과 표는 다음과 같다.
1. 


기존의 최고점을 달성한 다른 구조에 비해 유의미한 향상이 있음을 확인 할 수 있었다.
또한 두번째 표에서 본 논문에서 이끌어낸 특이한 점은 
 
단일 모델의 경우 오히려 성능이 Deep Insight에 비해 떨어지지만 다중으로 구성되는 경우 획기적인 성능 향상이 된다는 것이다. 

4. 결론
이번 논문은 어려웠다. 몇줄 읽을때마다 인터넷을 뒤져봐야했고 용어 자체도 구조도 어려웠다. 그리고 실제로 세간에는 구조 자체가 실생활에 적용되기는 어려울 정도로 복잡하고 사실상 연구용으로 생각된다며 저평가 당하기도 한다는 말을 들었다. 뭐 그래도 충분히 학술적 가치는 있는 듯 하다.  


댓글

이 블로그의 인기 게시물

다양한 계층 구현을 통한 오차역전파법 구현하기(2)

퍼셉트론(Perceptron)