[논문리뷰] 2.NIN 신경망 구조

논문명: Network In Network

논문저자: Min Lin 외 2명

개요 

본 논문의 전체적인 내용은 CNN(합성곱 신경망)의 단점과 그것의 보완점을 제시한다.


1. 논문에서 제시된 기존 CNN 구조의 문제점

본 논문에서 제시된 기존 CNN 구조의 문제점은 크게 2가지이다.

첫째 

컨볼루션(convolution) 레이어에서는 기존의 입력값을 특징 맵으로 변환하는 과정을 거친다. ㄷ이때 기존의 CNN구조에서는 선형적으로 변환을 진행한다. 선형적으로만 변환을 진행하면 당연히 비선형적 연산에 비해 정확도가 떨어 질 수 밖에 없다. 따라서 본 논문에서는 이를 보완하기 위한 방법으로 다증퍼셉트론(MLP)를 도입했다. 구조는 다음과 같다.



위와 같은 구조를 통해 기존의 선형 연산이였던 것을 비선형 연산을 통해 정확도를 높인것을 본 논문에서는 MLPconvolutional Layer 라고 칭하며 이 Layer들이 쌓여있는 것이 NIN(Network in Network)구조이다. 

둘째 
마지막 출력 부분(또는 레이어)에서 완전연결 계층의 문제점이다. 가장 큰 문제는 CNN자체가 입체적인 데이터를 다루는데 이런식으로 연결되면 입체적인 INPUT과 거리감이 생긴다는 것이고 다음으로는 완전연결 계층 그 자체의 문제인 Overfitting 문제가 있다.
따라서 본 논문에서는 Global Average Pooling 이라는 레이어를 사용했다. 
간략히 설명하면 마지막 출력부분에서 완전연결 계층을 대신해 각각의 Classification에 사용될 category를 특성맵으로 만들고 전부 평균을 내어 softmax함수에 집어 넣어 출력하는 방식으로 진행했다. 구조를 보면 다음과 같다. 
위에 보다 싶이 완전연결계층이 아닌 각각의 특성 맵을 만들어 이를 softmax함수에 넣는 것을 볼 수 있다. 이를 통해 좀 더 입력값에 건장해지고 더해서 오버피팅을 방지할수 있다는 장점이 있다. 

총 구조 
총 구조는 다음과 같다고는 한다. (뒤에 추가적으로 이야기 하겠다)
 


세개의 MLP가 포함된 합성곱 층과 마지막의 글로벌 풀링층으로 이루워져있는 형태이다.

성능
성능은 당시 최신 방법에 비해 정확도가 약 1~2%정도 향상된 것으로 나왔다.
실험 테스트는 모두 NIN구조를 이용했으며 선행 실험으로 DropOut을 적용하였더니 testsample에서는 낮은 오차를 기록하여 드롭아웃을 적용하였다고 한다. 또한 별다른 언급이 없다면 마지막에는 위의 글로벌 에버리지 풀링을 사용하였다고 한다.
각 테스트의 결과는 다음과 같다.  

(각 실험의 테스트군과 학습군에 관한 내용은 직접 찾아보길 바란다)
이는 충분히 유의미한 수치이다. 하지만 MNIST에서는 오히려 오차율이 더 높았던 것 등 보완이 필요했다. 또한 몇가지 단점이 발견되었다 이는 후술하겠다.

개인 리뷰
일단 논문자체는 흥미로웠지만 새롭지는 않았다. 아이디어가 
선형 계산만으로 표현이 가능할까? - 그럼 비선형 계산을 넣자! 
이런 식 이여서 새롭지는 않았다고 생각된다. 그렇지만 이걸로 이 논문을 비판하기는 옳지 않다. 그럼 개인적인 몇가지 이야기를 해보겠다.

1. 드롭 아웃 관련
본 실험에서는 드롭아웃을 사용하기 전 실질적인 효과가 있는지를 확인하고 적용했다. 그 그래프는 다음과 같다. 




보다 싶이 학습용 데이터에서는 드롭아웃을 적용하니 정확도가 낮아졌다. 하지만 테스트 데이터에서는 정확도가 높아진 것으로 보아 유동적이고 정확해졌다는 것을 확인 할 수 있었으며 드롭아웃이 효과가 있었다는 것으로 판단이 가능하다. 따라서 본 논문의 위와 같은 검증과정은 매우 좋았다고 할 수 있다.

2. MLP유효성 관련
나는 논문을 읽다가 의구심이 든게 하나 있다. 바로 MLP의 장점 또는 유효성을 입증할 만한게 단 한개도 없다는 것이다. 위에 분명 성능이 향상된 결과값이 있지만 미리 언급했던 것처럼 NIN구조에서는 글로벌 에버리지 풀링 레이어를 같이 사용했다고 언급되어 있고 단독으로 MLP를 사용한 데이터는 없다. 보면 첫번째와 두번째 네번째 실험 결과는 MLP가 아닌 NIN으로 언급되어 있다. 
이와 반대로 글로벌에버리지 풀링 레이어의 경우에는 



보다 싶이 따로 비교군을 이용해 검증을 해주었다. 이는 개인적으로 생각하는 이 논문의 가장 큰 단점이다. 분명 MLP를 이용한 CNN은 효용이 있는 것처럼 보이고 아마 실제로도 그럴 것이다. 하지만 직접적인 비교와 대조군을 넣지 않았다는 것에서 크게 설득력이 떨어지며 특히 MINST에서 (MINST은 매우 단순한 형태의 자료라고 생각하면 쉽다.) 오차율이 더 높게 나온것과 직접 찾아보면 확인할 수 있지만 실험, 검증, 테스트에 쓰인 데이터 양이 절대로 매우 많고 충분하다고 할 수 없는 양이라는 것 역시 MLP의 효용성에 대해 의심하게 만드는 부분이였다.

3. 구조 관련
위의 의문점과 연결이 되었던 질문이다. 이는 보이는 NIN구조가 엄청 단순하면서도 (3개의 계층) 최신의 복잡한 레이어와 같이 또는 그 이상의 성능을 보인다는게 쉽지 않기 때문이다. 
이를 사수분께서 설명해주셨는데 본인도 정확히 기억은 안나지만 구조가 위에 보이는 구조와 다르다는 것이였다. 즉 위에 보이는 NIN구조라고 나오는 것은 대략적인 구조이며 조금씩 또는 크게 디테일한 부분이 실제 코드와 다르다는 것 이였다. 따라서 이는 좀 더 자세한 구조를 설명하는 것이 필요하다고 생각된다.

총평
위에도 이야기 했지만 흥미로웠지만 새롭지는 않았고 그렇게 썩 잘 쓴 논문이라고도 생각하지는 않는다. 다만 몇가지 발전시킨 방법과 그 결과는 충분히 효용성이 있다고 말할 수 있는 그런 논문 이였다고 생각한다.   

댓글

이 블로그의 인기 게시물

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

퍼셉트론(Perceptron)

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