[논문리뷰] 4. 심층 CNN에 대하여

논문명: Very Deep Convolutional Networks for Large-Scale Image Recognition

논문저자: Karen Simonyan & Andrew Zisseman

1. 개요: 이논문은 제목 그대로이다. '깊은' 합성곱 신경망이 얕고 '고급진' 신경망과의 비교를 주로 삼았다고 생각하면 된다. 

2. 실험 개요:

전체적인 실험의 조건은 다음과 같았다.

1. 활성화 함수로는 ReLU를 사용

2. 출력 함수로는 Softmax를 사용

3. 224*224 크기의 컬러 이미지를 사용

4. 완전 연결 계층 3개를 사용 


본 실험은 위의 표에서 보다 싶이 A~E까지의 경우로 나누어서 실험을 진행했다. 
A부터 E는 각 11개~19개의 층을 가지며 완전연결 계층을 제외할 경우 각 8~16개의 합성곱 층을 가지게 된다.  그럼 각각의 경우를 확인해보겠다.

A: 가장 얕은 신경망으로 3*3필터가 적용된 층이 총 8개가 존재하며 특이사항은 없다.
A-LRN: 전체적인 구성은 동일하지만 LRN, 즉 정규화를 적용하였다.
B: A와 비슷하지만 3*3층이 2개 더 추가되었다.
C: B에 3개의 층이 추가되었는데 이때 추가된 층의 필터는 3*3이 아닌 1*1필터이다.
D: C와 비슷하지만 추가된 층의 필터가 3*3이다.
E: D에 3*3필터를 3개를 추가하였다.

그리고 각 경우의 변수는 다음과 같다.
 

특징으로는 B,C,D를 확인할 수 있는데 B,C는 층이 3개나 차이나지만 변수의 숫자는 크게 차이가 없고 반대로 C,D는 층의 갯수는 동일하지만 변수의 숫자가 차이나는 것을 볼 수 있다.

3. 실험 진행:
실험은 다음과 같이 진행되었다. 
1. 확률적 경사하강법을 이용
2. 무작위로 Shift 진행
3. 등방적으로 리스케일링 되기도 함(Q라는 변수) 
3.1 Scale Jittering이라는 이름으로 사용됨
4. 다중 GPU를 통한 병렬적 처리 

4. 실험 결과 
1. 단일 스케일
단일 스케일의 경우 하나의 사이즈의 이미지를 사용하여 학습에 사용하는 것이다. 
먼저 결과 표를 보면 다음과 같다.


전체적으로 보면 층의 깊이가 깊어질 수록 정확도가 높아지는 단순한 결과로 보인다. 하지만, 몇가지 특징이 존재한다. 

1. A와 A-LRN의 비교
정규화를 적용한 모듈과 그렇지 않은 모듈의 비교를 보면 큰 차이가 없다. 아니 오히려 성능이 더 떨어지는 경향을 보인다. 따라서 논문에서는 다음 실험부터 A-LRN을 배제하였다.

2. 스케일 지터링의 영향
C, D, E를 보면 각 모듈이 Input 값이 하나로 정해졌을 때보다 256~512로 임의로 rescailing되었을 경우 정확도가 더 높아지는 특이사항이 보였다. 그것도 분명 '싱글 스케일'인데 말이다.

2. 다중 스케일



다중스케일의 경우 하나의 사진에서 여러 개의 스케일을 얻어 여러개의 이미지로 학습&시험 하는 방법이다. 여기서도 보다 싶이 지터링이 적용된 경우 가장 정확도가 높게 나왔으며 D,E의 차이가 거의 나지 않는 특이사항 역시 발견되었다.

3. 멀티 크롭


이미지를 256,384,512의 Q값으로 크롭하여 진행하였다. C,D가 크게 차이 나지 않는 모습을 보였다.

4. 기존의 알고리즘과의 비교


보다 싶이 대부분의 알고리즘보다 우세한 정확도를 보인다. 또한 구글넷의 경우 연구용으로만 사용해야 할정도로 복잡한데 이와 유사한 정도로 정확도를 보였다는 것 자체가 큰 의미가 있다.

5. 총평:
생각보다 재미있는 논문이였고 흥미로웠다. 따라서 이 논문의 몇가지를 CNN을 구현하면서 실험해 보았다. 이는 나중에 포스트로 따로 올리겠다.

출처: 
논문: https://arxiv.org/abs/1409.1556
  


  






댓글

이 블로그의 인기 게시물

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

퍼셉트론(Perceptron)

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