Snoopy [DL] 6. ImageNet과 ILSVRC 우승 알고리즘
머신러닝과 딥러닝/DL 개념정리

[DL] 6. ImageNet과 ILSVRC 우승 알고리즘

Sooyoon Jeong 2022. 12. 8.

ImageNet이란?

ImageNet 프로젝트는 시각 객체 인식 소프트웨어 연구에 사용하도록 설계된 대규모의 시각적 데이터 베이스로 20,000개 이상의 카테고리가 포함되어 있다.

 

ImageNet의 기원

1️⃣ 약 10,000장의 이미지와 20개의 class로 구성된 PASCALVOC가 영국에서 맨 처음 만들어짐

2️⃣ 그러나 FeiFeiLi는 어린이도 3만개의 사물을 구분하는데, 컴퓨터가 겨우 20개의 사물만을 구분하는 것에 문제를 느낌

3️⃣ 인터넷의 발달로 구글과 Filkr 등에서 약 10억 장의 이미지를 모았고 학부생들에게 labeling 작업을 시킴

4️⃣ 그 중 박사 과정의 학생이 이 속도면 19년 정도가 걸릴 것이라고 예상하였지만, 당시 컴퓨터는 겨우 20개의 물체만 구분하였기에 활용할 수 없었음

5️⃣ 진행이 멈춘 도중 실리콘밸리에서 온 석사과정의 학생이 Amazon Mechanical Turk를 소개하였고 2년 반 동안 약 5만명의 전세계 작업자들의 도움으로 ImageNet이 탄생함

 

ILSVRC

imageNet 데이터 셋은 2009년에 완성되었지만, GPU가 지금처럼 쓰이지도 않았고 CPU가 너무 느려서 활용이 되지 못했다고 한다.

그러나, FeiFeiLi는 이 data가 앞으로 더욱 중요해질 것이라고 생각했고 어떻게 하면 성능을 높일 수 있을지 고민하게 되었다.

 

그러던 중 ICCV 학회에서 PascalVOC 처럼 대회를 개최하는 것이 어떻겠냐는 조언을 받게 되고, 이 조언에 따라 개최된 것이 바로 ILSVRC이다.

 

ILSVRC는 ImageNet Large Scale Visual Recognition Challenge의 약자로 2010년에 처음으로 개최되었으며

소프트웨어 프로그램이 물체와 장면을 정확하게 분류하고 감지하기 위해 경쟁하는 연례 소프트웨어 콘테스트이다.

 

ILSVRC 우승 알고리즘

ILSVRC에서 우승한 알고리즘은 아래와 같다.

연도 알고리즘 layer 수
2010 NEC-UIUC (Lin et al.) shallow
2011 RCE (Florent Perronnin, Jorge Sanchez)  shallow
2012 AlexNet 8
2013  ZFNet 8
2014 GoogLeNet
※ 준우승 VGGNet:
구조의 간결함과 사용의 편이성으로 인해 GoogLeNet보다 더 각광
GoogLeNet: 22
VGG: 19
2015 ResNet 152
2016 GoogLeNet-v4 152
2017 SENet 152

 

2010년과 2011년에 우승한 알고리즘은 얕은 구조를 기반으로 하며 이미지 인식에 유용할만한 특성들을 개발자들이 임의로 결정해 도출하였다. 즉, 지식 전문가가 직접 정해진 규칙에 따라 지식을 입력하였으며 거의 모든 것을 미리 지식 베이스화 하였기 때문에 지식이 늘어면서 서로 모순되거나 일관되지 않는 문제가 발생함

 

2012년에 CNN 기반 딥러닝 알고리즘인 AlexNet이 우승하게 되면서 깊은 구조를 가진 알고리즘이 우승을 차지하게 되고 딥러닝과 GPU에 대한 관심이 확대되기 시작함

ILSVRC 우승 알고리즘 성능 비교

[출처] Main breakthroughs in ImageNet image classification challenge. | Download Scientific Diagram (researchgate.net)

 

2012년에 우승한 AlexNet 알고리즘에 대해 좀 더 자세히 얘기해보자면,

당시 FeiFeiLi 교수는 육아휴직 중이었으며 학회 결과 발표 2주 전 아주 늦은 밤에 대학원생들로부터 전화를 한 통 받게 되었다. 그 내용은 바로 엄청 오래된 알고리즘인 CNN을 쓴 결과 엄청난 성적이 나왔다는 것.

 

이렇게 딥러닝 기반 알고리즘이 사용되면서 인식 오류는 빠르게 낮아졌고 레이어의 수도 계속 늘어갔다.

그러나, 레이어 수가 증가되면서 파라미터가 많아져 연상량이 기하급수적으로 증가하여 학습시간이 길어지고 기울기 소실과 폭주, 과대 적합 등의 문제가 발생하게 되었다.

 

딥러닝 기반의 주요 알고리즘 4개(AlexNet, ZFNet, VGGNet, ResNet)에 대해서는 좀 더 알아보도록 하자.

 

AlexNet(2012)

[논문] https://proceedings.neurips.cc/paper/2012/file/c399862d3b9d6b76c8436e924a68c45b-Paper.pdf

 

AlexNet은  Alex Krizhevsky가 Ilya Sutskever 및 Krizhevsky의 박사 과정 고문이었던 Geoffrey Hinton과 공동으로 설계 한 CNN이다. 

 

LeNet과 구조는 유사하지만, convolution layer 바로 뒤에 convolution layer가 온다는 점에서 차이점이 존재한다.

또한 LeNet이 Mnist Dataset을 기준으로 99.05% 라는 우수한 정확도를 달성하였지만, 복잡한 과제(얼굴 또는 객체 인식 등)를 해결할 수 없어 기존의 알고리즘이 더 널리 사용되었다.

 

AlexNet 특징

1️⃣ 구조

2개의 GPU를 기반으로 한 병렬구조와 5개의 합성곱층과 3개의 FC 층으로 구성

2️⃣ input 크기

224*224 크기의 RGB 3 channel image를 input으로 사용한다. (LeNet: 32X32)

3️⃣ 활성화 함수

Activation function으로 ReLU를 적용

4️⃣ 과적합 방지

- 파라미터 수가 커짐에 따라 발생할 수 있는 과적합 문제를 해결하기 위해 dropout layer 적용

(이는 batch normalzation 등의 방법론이 대두될 수 있는 계기가 되었음)

- PCA를 이용한 데이터 증강기법 사용

5️⃣ 정규화

정규화 방법인 Local Response Normalization 사용

6️⃣ 풀링 사이즈 조절

풀링의 커널 사이즈를 스트라이드보다 크게 하는 overlapping pooling 사용

 

ZFNET(2013)

Clarifai 팀의 Zeiler와 Fergus의 이름을 따서 지은 알고리즘

AlexNet을 기반으로 CNN을 가시화함

AlexNet의 하이퍼파라미터를 수정하여 성능을 좀 더 개성하고 중간에 convolution layer의 크기를 늘림

 - 첫 합성곱층의 필터 개수를 11에서 7로 스트라이드를 4에서 2로 변경

 - 합성곱층들의 필터 개수를 키워주는 등 튜닝 진행

 

ZFNET 특징

1️⃣ 시각화

입력 레이어에 맵핑함으로써 CNN 학습 과정에 따라 변화하는 피쳐맵을 시각화하는데 집중

즉, 아키텍쳐 자체 보다는 모델이 어떤 영역을 보고 예측을 하는지 관찰하기 위한 Occlusion기반의 attribution 기법 등 시각회에 집중하였다.

2️⃣ 픽쳐들의 활성화 함수가 입력 이미지에 어떻게 입력되는지 역으로 분석

3️⃣ 여러 개의 층이 존재할 때 특징들이 어떻게 매핑되는지 확인

 

VGGNet(2014)

[논문] https://arxiv.org/pdf/1409.1556.pdf

 

2014년에 ILSVRC에서 준우승한 알고리즘이지만, 간결하고 좋은 성능으로 각광받은 알고리즘이다.

 

특징

1️⃣ 훨씬 깊은 네트워크

AlexNet보다 훨씬 깊은 네트워크를 쌓았다는 점에서 가장 큰 차이가 있다. (AlexNet: 8 layer, VGGNet: 19 layer)

 

2️⃣ 사용한 conv filter의 size를 3X3 통일

AlexNet의 경우 이미지에 대한 다양한 특성 추출을 위해 7X7, 11X11 등 다양한 크기의 conv filter를 사용했지만,

VGGNet은 Conv filter size를 3X3으로 통일하여 이 필터를 중첩시켜 계산 비용을 줄이고 성능을 향상시켰다.

 

다만, 네트워크가 깊어지면서 기울기 소실 등의 문제가 대두되었다.

 

ResNet(2015)

[논문] https://arxiv.org/abs/1512.03385

VGGNet을 통해 층이 더 깊어지면 성능이 더 좋아진다고 생각하여 기존 VGGNet보다 더 깊기 쌓아 성능을 측정했지만, 결과가 좋지 않았다. 층이 깊어지면서 발생하는 문제 때문에 성능이 저하된 것.

 

ResNet은 '잔차' 라는 개념을 활용하여 이러한 성능 저하 문제를 해결함

 

특징

1️⃣ 잔여학습

깊은 네트워크를 학습시키기 위한 방법으로 잔여학습을 사용 (깊은 레이어의 성능이 좋아짐)

x로부터 H(X) = F(x) + x를 학습할 때 H(X)를 학습하는 것이 어려워 전체를 학습하는 것보다는 x는 그대로 넘겨주고 잔여물인 F(x)만 학습하는 것이 효율적일 것이라는 생각에서 출발

 

2️⃣ 


[참고자료]

CNN의 흐름? 역사? (tistory.com)

 

CNN의 흐름? 역사?

CNN의 종류가 너무 많습니다. 처음 접할 때는 LeNet, AlexNet, VggNet… 정도 였던 것 같은데, 지금 저런 모델은 구닥다리로 취급되고 훨씬 좋은, 그리고 멋진 테크닉이 적용된 모델이 등장했습니다. 이

junklee.tistory.com

ImageNet (image-net.org)

 

ImageNet

Competition The ImageNet Large Scale Visual Recognition Challenge (ILSVRC) evaluates algorithms for object detection and image classification at large scale. One high level motivation is to allow researchers to compare progress in detection across a wider

www.image-net.org

HistoryOfCNN (slideshare.net)

 

HistoryOfCNN

This document was written to find ways to improve the network structure as seen through the history of CNN.

www.slideshare.net

오늘코드 박조은 강사님 강의자료

댓글