배너
닫기
배너

라온피플의 머신러닝 아카데미(10) - GoogLeNet (1)

  • 등록 2019.02.07 09:25:46
URL복사
[무료 웨비나] 빠르고 직관적인 강력한 아날로그 시뮬레이션 'MPLAB® Mindi™ 아날로그 시뮬레이터' 왜 주목받고 있을까요?? (5/23)

[첨단 헬로티]

 

머신비전산업에서 인공지능 기술(머신러닝, 딥러닝)이 빠르게 확산되고 있다. 인공지능 기술을 통해 기존의 컴퓨터비전 기술로는 어려웠던 검사가 가능해질 뿐만 아니라 ‘데이터의 자기 학습’으로 보다 빠르고 쉬우며 신뢰성과 유연성을 갖춘 머신비전 검사가 가능해졌다. 이에 따라 자연스럽게 인공지능 기술에 대한 관심이 높아지고 있다. 국내 대표적인 머신비전 전문업체인 라온피플은 ‘LAON PEOPLE’s 머신러닝 아카데미’를 통해 인공지능의 대표적인 기술인 머신러닝 기술에 대해 연재한다.

 

CNN(Convolutional Neural Network) – "GoogLeNet (part1)"
2014년 ILSVRC는 구글의 GoogLeNet이 차지하였고, 아주 근소한 차이로 옥스퍼드 대학교의 VGGNet이 2위를 차지한다. 그런데 여기서 주목해야 할 것은 2014년부터 CNN의 구조에 큰 변화가 나타나기 시작한다는 점이다. AlexNet이나 ZFNet 그리고 원조격인 LeNet5는 2014년 구조에 비하면 아주 단순한 편이며, 전형적인 형태를 취하고 있고, 망의 깊이도 10 layer 미만이다. 2014년 변화의 특징은 한마디로 "deeper"라고 표현을 할 수 있다.

 

GoogLeNet이나 VGGNet은 2012년 Krizhevsky의 AlexNet에서 촉발된 에너지를 바탕으로 새로운 변화를 모색하게 되었으며, CNN을 통한 학습 능력이 훨씬 더 커지게 되었음을 입증하였다. 이번 Class부터 GoogLeNet의 구조에 대하여 설명할 예정이다. 이해를 돕기 위해 여러 part로 구성이 될 예정이며, VGGNet은 GoogLeNet에 대한 Class를 마치고 따로 자세히 설명을 할 예정이기는 하지만, 중간 중간에 필요에 따라 VGGNet에 대한 설명도 곁들일 예정이다.

망은 깊어진다 (deeper and deeper) !!

 

CNN의 성능을 향상시키는 가장 직접적인 방식은 망의 크기를 늘리는 것이다. 여기서 망의 크기를 늘린다는 것은 단순하게 망의 layer 수(depth)를 늘리는 것뿐만 아니라, 각 layer에 있는 unit의 수(width)도 늘리는 것을 의미한다. 특히 ImageNet 데이터와 같이 대용량 데이터를 이용해 학습을 하는 경우는 거의 필수적이라고 할 수 있다. 아래 그림은 image classification의 성능 향상을 위해 CNN의 구조가 어떻게 바뀌고 있는지를 명쾌하게 보여주는 그림1이다.

 

림1

 

2013년까지는 CNN 망의 깊이가 10 layer 미만이었지만, 2014년의 대표주자인 GoogLeNet과 VGGNet은 각각 22 layer와 19 layer로 깊어지게(deeper) 된다. 물론 top-5 에러율도 각각 6.7%와 7.3%로 낮아지게 된다. AlexNet의 결과가 나온 뒤 불과 2년 만에 에러율을 약 10% 정도 낮추는 쾌거를 이루게 된다. 2015년 우승을 한 ResNet은 망의 깊이가 152 layer 로 더욱 깊어지게 되며, top-5 에러율도 3.57%로 더욱 낮아지게 된다.

 

망이 깊어지면, 부작용(side effect)는 없나?
망의 크기를 늘리면 성능을 더 높일 수 있지만, 적절하지 못하면 다음 2가지 중대한 문제를 만날 수도 있다. 우선 망이 커지면 커질수록 자유 파라미터(free parameter)의 수가 증가하게 되며,이렇게 되면 특히 학습에 사용할 데이터 양이 제한적인 경우에 더 심각한 문제가 되지만, 망이 overfitting에 빠질 가능성이 높아진다. (즉, 학습 데이터에만 특화된 결과가 만들어져, 실제 테스트 set에 적용하면 만족할 만한 결과가 나오지 못할 수 있다.) 그리고 대량의 데이터에 사람이 일일이 label을 달아주는 것도 쉬운 일이 아니다. 또 다른 문제는 망의 크기가 커지면 그만큼 연산량이 늘어나게 된다. 예를 들어 필터의 개수가 증가하게 되면, 연산량은 제곱으로 늘어나게 된다. 연산 능력이 뛰어난 GPU를 사용하더라도 연산량의 증가는 심각한 문제가 된다. 그리고, ZFNet을 학습하면서 살펴보았던 것처럼, 학습이 잘못되어 filter의 kernel이 특정한 무리로 쏠리게 된다면, 기껏 망의 크기를 늘렸음에도 불구하고, 최적의 결과를 얻지 못할 수도 있다.

 

GoogLeNet보다 layer 수가 작은 AlexNet 경우를 살펴보자.
AlexNet [1] 에서 살펴본 것처럼, AlexNet은 엄청난 연산을 필요로 한다. AlexNet은 자유 파라미터의 개수가 6000만개이고 약 6억 3000만개의 connection으로 이루어져 있으며, 엔비디아의 GTX580 dual-GPU를 이용하여도 학습 시간이 일주일 넘게 소요되었다. 단순하게 망을 깊게 만든다면, 자유 파라미터의 개수가 더욱 많아질 것이고, connection도 엄청나게 많아지면서, 학습에 필요한 시간도 더욱 길어지게 된다. 또한 parameter 값이 정해지더라도 실제 연산을 할 때의 연산량 역시 무시할 수 없게 되고 말 것이다. 그리고 모바일이나 embedded 시스템에서 CNN을 활용하고자 한다면, 연산 능력이나 메모리 사용 등에서 PC 를 사용할 때보다 훨씬 제한될 수밖에 없기 때문에, 단순히 망을 깊게 만든 것이 아니라, 뭔가 구조적인 고민이 필요하다.

 

GoogLeNet과 Inception
크리스토퍼 놀란 감독의 영화 인셉션(Inception)을 보면, 남에게 어떤 생각(꿈)을 주입하거나, 남의 생각을 읽어내는 내용이 나온다. 구글의 연구팀들은 그 영화에서 컨셉을 따와 인셉션이라는 이름을 갖는 CNN모듈을 만들어 낸다. 구글의 소개 자료를 보면 항상 다음과 같은 그림2가 등장한다. 이는 더 깊은 CNN 구조를 사용하면 더욱 좋은 성능을 얻을 수 있다는 것 때문인 것 같고, 또한 인셉션의 내용이 남의 생각을 읽어내듯, DNN을 이용한 데이터로부터 중요한 정보를 얻어내는 것을 연상하여 지은 이름 같다.

림2

 

구글이 발표한 인셉션의 기본 구조는 아래와 같으며, 대충 봐도 무지 복잡해 보인다. 같은 layer에 서로 다른 크기를 갖는 convolutional filter를 적용하여 다른 scale의 feature를 얻을 수 있도록 했다. 그림3에서처럼, 1x1 convolution을 적절히 사용하여 차원을 줄이고(reduce dimension) 망이 깊어졌을 때 연산량이 늘어나는 문제를 해결하였다. 이 부분은 다음 class에서 자세하게 설명할 예정이다. (비록 복잡해 보이지만, 그 개념과 원리를 이해하면 충분히 공감이 갈 구조이다.)

 

그림3

 

GoogLeNet은 구글의 연구팀들이 인셉션 모듈을 고안한 뒤에 2014년 ILSVRC에 참가하기 위한 버전으로 내놓은 것이며, 인셉션의 구조는 다양한 형식으로 적용이 가능하다.

AlexNet과 GoogLeNet을 비교한 그림은 그림4와 같다.
놀라운 부분은 망의 깊이는 훨씬 깊은데 free parameter의 수는 1/12 수준이고 전체 연산량의 숫자도 AlexNet에 비해 적다는 것을 알 수가 있다. GoogLeNet과 인셉션에 대한 설계 철학을 정확하게 이해를 하면 그 이유를 알 수 있으며, 역시 설명할 부분이 많아 다음 Class 에서 다룰 예정이다. 참고로 GoogLeNet에는 총 9개의 인셉션 모듈이 적용되어 있다.

 

그림4

 

정리하자면, 구글의 연구팀들은 망을 더 깊게 하여 성능 향상을 꾀하면서도, 연산량의 증가를 늘리지 않는 CNN 구조를 개발하기 위해 많은 연구를 하였다. 결과적으로 초기 CNN 구조가 적합하지 않다는 것을 발견하였으며, 효과적으로 차원을 줄이면서 망을 깊게 할 수 있는 방법으로 인셉션 모듈을 개발하였다. 그 후에도 구글의 개발팀들은 인셉션을 더욱 발전시켜 자신들의 CNN연구의 기본으로 삼았으며, 관련 논문들도 많이 발표를 하였다.
여기까지 구글의 GoogLeNet이 이전 CNN 구조와 많이 다르다는 것에 대하여 간단하게 살펴보았다. 다음에는 그들의 설계 철학과 왜 이런 구조를 발전시키게 되었는지에 대해 상세하게 살펴볼 예정이다.

 

(주)라온피플










배너









주요파트너/추천기업