이미지 분류를 딥러닝(DL)을 이용해 시도하려는데 데이터가 부족하면 제 성능을 발휘할 수 없다고 알고있다. 머신러닝(ML)과 달리 딥러닝은 이미지의 특성을 자동으로 추출하여서 데이터가 많을수록 모델이 커질(깊어질)수록 성능이 증가한다.
특별히 영상과 같이 매우 고차원의 입력 샘플들이 사용되는 경우에는 더욱이 많은 데이터를 통한 특성 자동추출이 필요하다. 하지만 주위에 훈련하려는 관련 이미지를 수십만 장 확보하고 시작하는 경우는 쉽지 않은 것이 현실이다.
컴퓨터비전에서 딥러닝은 본질적으로 대상의 적용에 있어 다목적인 적용이 가능하다.
컴퓨터비전에서 놀라운 성능을 발휘하는 합성곱(convolutional) 신경망은 첫째, 이미지의 어느 한 부분에서 학습된 패턴을 이미지의 어디에서나 동일하게 인지하는 번역 불변(translation invariant) 특징 덕분에 적은 훈련 샘플로도 효율적인 인지 능력을 보여준다.
둘째, 합성곱 신경망은 첫번째 층에서 모서리와 같은 작은 지역 패턴을 학습하고 두 번째 층에서는 첫 번째 패턴들로부터 만들어진 보다 큰 패턴을 학습하는 것과 같은 패턴의 공간 계층성(spatial hierarchies)을 학습한다.
완전연결층의 경우에는 전체 이미지로부터 특정 패턴을 인식하는 반면, 합성곱 신경망은 소규모 필터가 합성곱을 수행하는 국지적 지역의 학습을 통하여 완전연결층에 비해 훨씬 적은 파라미터로 이미지 분류가 수행되어 효율적이다.
소규모 데이터로 딥러닝을 시도할 때 고려할 점
수십개의 이미지 데이터 샘플로 복잡한 합성곱 신경망 훈련을 시도하는 것은 불가능할 것이지만, 만약 작업이 간단하고 모델이 작으며 일반화가 잘 되었다면 수백장의 이미지 데이터로도 가능할 수 있다.
가령 2,000장 정도의 개와 고양이 사진 데이터를 갖고 합성곱 신경망 훈련을 맨 처음부터 일반화(regularization) 없이 시도한다고 하면 약 70% 정도의 분류 정확도를 보여준다. 이 경우, 일반화 고려가 없었기 때문에 과적합(overfitting)이 발생한다.
데이터증식(data augmentation)을 통하여 정확도를 80~85% 정도까지 끌어 올릴 수 있다. 그 다음에 생각할 수 있는 방법으로는 대용량의 데이터를 기반으로 이미지 분류에 사전학습된 모델을 활용하는 전이학습(transfer learning)이다.
여기에는 사전 학습된 모델의 특징 추출(feature extraction)을 사용하는 방법과, 이에 더해서 사전 학습된 모델을 미세 조정(fine-tuning)하는 방법이 있다. 전자의 feature extraction 방법을 통하여 97% 이상의 정확도를 나타낼 수 있고, fine-tuning을 통하여 98% 이상의 정확도를 나타낼 수 있다.
전이학습(transfer learning)
딥러닝에서 가장 강력한 아이디어 중에 하나는, 한 작업에 대해 학습을 이미 한 경우에, 그 지식을 다른 종류의 작업에 적용할 수 있는 것이다.
예를 들어, 신경망이 고양이와 같은 사물을 인식하도록 학습되었다면 이 작업을 x-ray를 분류하는데 적용할 수 있다는 뜻이다.
마치 거인의 어깨위에서 세상을 보듯 인터넷상에 공개된 대용량 데이터세트를 컴퓨터비전 전문가들이 그들의 알고리즘들을 통해 사전 훈련시켜 놓은 ImageNet, MS-COCO, Pascal 등과 같은 사전훈련 모델들을 다운로드 받아 사용할 수 있다고 생각해보자.
가령 2015년 ImageNet 대회 ILSVRC에서 선보인 Resnet의 경우 신경망의 층이 152개 층으로 이루어져 있다. ImageNet 대회는 약 1,000개 카테고리(개, 자전거 등의)의 이미지 140만개로 구성된 데이터로부터 이미지 분류 성능을 겨루는 대회로 2015년 Resnet의 경우 정확도가 96.4%를 자랑한다.
Resnet50 은 신경망 층이 50층으로 전이학습에 많이 사용되는 사전학습 모델이다. 이러한 사전학습 모델은 통상 훈련에 몇 주가 걸리기도 하며 수많은 GPU를 사용한다.
글 : 주철휘 / 인공지능연구소 소장(CAO) / 에이프리카(구 엔쓰리엔클라우드)
관련기사
- 인공지능(AI)을 활용한 객체탐지(Object Detection)는 어떻게 작동하나 ②
- 인공지능(AI)을 활용한 객체탐지(Object Detection)는 어떻게 작동하나 ①
- [그것을 알려주마] 안면인식 시스템은 어떻게 작동하는 걸까? ①
- 넷플릭스, 왓챠…OTT플랫폼의 추천시스템은 어떻게 동작할까?
- 순차 입력 정보를 처리하는 심층신경망(DNN) 구조…어떻게 작용할까?
- “훈련이 끝난 머신러닝(ML) 모델, 어떻게 서비스 할 수 있을까?”
- “AI개발자들, 주목!”…복수의 GPU를 활용한 분산 훈련 최적화 방법론
- 인공지능(AI), 데이터가 늘어나면 성능도 최적화될까?
- “데이터가 부족해요”…딥러닝(DL) 통한 이미지 분류할 때 고려할 점 ②
- “데이터가 부족해요”…딥러닝(DL) 통한 이미지 분류할 때 고려할 점 ③