[논문리뷰] 1. Deep CNN을 이용한 이미지 Classification

논문명: ImageNet Classification with Deep Convolutional Neural Networks

저자: Alex Krizhevsky 외 2명

1. 개요 
위 논문은 9장 정도 되는 길지는 않은 논문이지만 딥러닝 분야에서 CNN(합성곱 신경망)을 획기적으로 발전시킨 전설적인 논문이다. 이미지 인식 딥러닝의 기초를 쌓았고 더 이상 딥러닝을 연구실이 아닌 생활까지 가져오게 한 일등 공신이라고 할 수 있다. 

여기서 만들어진 Alex Net이라고도 불리는 이 구조와 GPU연동은 현재까지도 딥러닝에 광범위 하게 사용되고 있다. 


2. 리뷰

일단 시작은 이렇다. 기본적으로 CNN은 연산 처리량이 어마어마하고 결점투성이였다. 실제로도 오차가 심해 일상생활에 적용하기는 어려운 수준이였다. 그래서 연구팀은 이런 점을 보완하기 위해 몇가지 시도를 한다.


2.1 실험 환경

기본적으로 실험을 진행한 환경에 대해 먼저 이야기 해 보겠다. 

실험 데이터는 다음과 같다. ILSVRC(이미지 인식 대회)에서 2010년, 2012년 자료를 가져와 인식시켰다. 

IMGNET라는 이미지 데이터베이스에는 총 1500만개의 이미지가 있었으며 2만2천개의 카테고리가 존재했는데 그 중 120만개의 학습용 이미지 5000개의 확인용 이미지 그리고 15만개의 테스팅용 이미지를 가져와 학습을 진행했다. 

각각의 이미지는 256*256의 사이즈로 변환시켜 학습을 진행했으며 컬러(RGB)값 역시 학습했다.

학습에는 

1. 기존 포스트에 리뷰되었던 ReLU함수를 사용했다. 기존까지는 tanh나 시그모이드 함수등을 사용했으며 보완을 위해 몇몇 시도를 하던 중이었다. 그리고 이 연구팀이 처음으로 ReLU함수를 실제로 사용했다.

2. GPU(그래픽카드)를 사용했다. 기본적으로 CNN의 연산량 자체가 많은데 엄청난 양의 데이터와 후술할 수천만개의 변수(가중치)를 설정하려면 엄청난 메모리와 연산 기능이 필요했다. 따라서 연구팀은 CPU뿐만아니라 당시 최신인 GTX580(3GB)를 두개 연결하여 사용하였다.

3. 국소적 정규화를 사용했다. 국소적 정규화는 Pooling의 경우 특정 값이 너무 크면 사실상 지배적이게 된다. 따라서 이를 막기 위해 국소적 정규화 - 특정 값에 대한 영향력 조정 을 적용했다.

4. Data augmentation 

Overfitting을 방지하기 위해 연구팀이 실시한 것 중 하나이다. 오버피팅의 가장 근본적인 이유 중 하나는 데이터양의 부족이다. 연구팀의 데이터 양이 분명 적은 것은 아니였지만 수천만개의 가중치를 일일히 설정하기에는 부족했기에 데이터를 조금씩 변형시켜 (ex. 위치 이동, 좌우 반전등) 데이터양을 늘렸다.

5. DropOut

이전 포스팅에서 다루었던 Overfitting 방지 기법 중 하나로 임의의 노드를 삭제하는 방법이다. 이 방식을 처음 적용한 것이 바로 이 연구팀이다.

6. Overlapping Plooing


위 이미지와 같이 기존의 Pooling과 다르게 윈도우의 크기를 나오는 값보다 작게 조정하여 기존의 방식과는 다르게 겹치게 되도록 Pooling layer를 구현했다.

2.2 학습 모델



학습 모델은 다음과 같다 총 8개의 레이어로 이루워져 있으며 3개의 완전연결 계층과 5개의 CNN계층으로 구현되어있다. 각각의 커널의 크기와 데이터의 각 차원의 크기 값을 그림에서 확인할 수 있다.

또한 이전에 말했던 GPU 2개를 병렬 연결하여 학습을 진행했다고 하는데 위의 그림에 반영되어있다. 하나의 특징은 1,4,5 레이어는 각각의 들어온 커널에게만 전달해주는 방식으로 진행된다. 


2.3 실험 결과 

실험 결과는 경이로웠다. Top-1 test set error(하나의 카테고리만 확인하는 방식) Top-5 test set error(5개의 카테고리로 후보군을 넣고 확인하는 방식)에서 각각 2010년 ILSVRC기준 우승자가 47%, 28%의 오류율을 보인 것에 반해 위 모델링은 37%, 15%로 약 10%에 달하는 정확도의 상승률을 보여주며 기존의 방식과는 매우 차별화 된 방식으로 뛰어난 결과를 보여줬다.

위 실험을 통해 지금까지 CNN, 더 나아가서는 딥러닝의 폭발적인 관심과 발전을 가져오게 되었고 기존까지 사용하던 다양한 방식을 모두 뒤엎어 버렸다고 할 수 있다.


2.4 학습에 활용된 DataSet 해석

논문에 첨부된 그림들이다. 그림들을 몇가지 해석하며 이야기를 해보겠다.



위 그림에서 그림 바로 밑에 있는 글씨가 정답 그 밑에 막대 그래프들이 각각 그림이 ~일 확률을 판단한 그래프들이다. 예시로 첫째줄, 두번째 그림은 모델이 압도적으로 컨테이너 배라고 확신했다는 뜻이다. 

여기서 그럼 재미있는 몇가지 그림들이 있다. 

가장 먼저 첫번째줄 첫번째 그림이다. 이게 왜? 라고 할 수 있지만 그림의 아주 일부분 그것도 왼쪽 아래에 물체가 있다. 사람이라면 융통성을 발휘해 맞추겠지만 실제로 모델에게 그런것을 학습하는 것은 쉽지 않다. 하지만 DCNN모델은 국소적인 해석에서 시작해 - 전체적인 해석으로 넘어가기 때문에 정상적으로 예측을 해낸 것이다. 이것과 관련한 이야기는 뒤에서 추가로 하도록 하겠다. 


다음으로는 둘째줄의 첫번째부터 세번째 그림이다. 이 그림들은 사람들에게도 물어봐도 햇갈릴것이다. 각각 그림들의 정답-예측은 다음과 같다

둘째줄 첫번째: 그릴(자동차 부품) - 컨버터블(자동차 종류)

둘째줄 두번째: 버섯 - 균류

둘째줄 세번째: 체리 - 달마시안

당신은 무엇이 맞다고 판단할 수 있는가? 이는 모델링이 정상적으로 판단했다고 생각해도 무리가 아니며 사실상 데이터 셋의 오류라고 판단할 수 있다. 그만큼 이 모델링이 정확하면서도 융통성 있다는 뜻으로 생각할 수 있다. 그럼 다음 그림 예시를 보겠다.



아까 진드기에 대해 언급한 것을 떠올려보자 진드기는 왼쪽 아래에 있었으며 사실상 어떤것을 물체로 인식해야하는지는 상당히 어려운 부분이다. 위의 그림은 그에 대한 다양한 예시이다. 첫번째 열이 학습한 데이터 나머지 6개 열들이 각각 시험에 들어간 데이터들이다. 보다싶이 좌우, 구석 심지어는 포즈조차 다르다. 하지만 CNN은 아까 말한 방식대로 국소적인 픽셀 단위에서부터 판단을 하니 전혀 다른 위치에서 물체가 사진에 찍혀도 비슷하다고 판단을 할 수 있었던 것이다.

3 (필자) 개인 해석 및 제언

1. 국소적 정규화에 대하여 

국소적 정규화는 이번 논문을 해석하며 처음 접한 용어이다. 따라서 수박 겉핥기 식으로 매우 가볍게 글을 작성했다. 분명 유명한 기법이라고 생각했으나 확인해 보니 사실상 의미가 없는 기법이라고 밝혀져 현재는 사용되지 않는다고 했다. 따라서 나중에 시간이 나면 번외적으로 다뤄볼 주제라고 생각한다.

2. Overfitting에 대하여

의문점이 들었다. Overfitting이 일어난다는 판단은 어떻게 하는 걸까? '적당히'라는 말은 이과적으로 옳지 않다. 사수 분이 말씀하시길 현 논문에서도 4에서 

'Although the 1000 classes of ILSVRC make each training example impose 10 bits of constraint on the mapping from image to label, this turns out to be insufficient to learn so many parameters without considerable overfitting.'

라는 단락이 존재하고 대충 요약하면 10bit의 값이 나온것으로 보아 Overfitting이 일어난다는 뜻이라고 하셨다. 다만 이를 해석하기 위해선 정보이론을 공부해야 한다고 하셨다. 즉 딥러닝에는 Overfitting을 판단하는 공식 또는 방안이 존재한다는 것이며 이를 알기 위해 추가적으로 공부하기로 했다. 


1. https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf

2. Overplooing 이미지 출처

 https://velog.io/@kgh732/%EB%B6%80%EC%8A%A4%ED%8A%B8%EC%BA%A0%ED%94%84-AI-Tech-U-stage.-3-3

댓글

이 블로그의 인기 게시물

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

퍼셉트론(Perceptron)

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