촉촉한초코칩
논문 [다양한 딥러닝 알고리즘과 활용] 본문
다양한 딥러닝 알고리즘과 활용
(주) 네이버 네이버랩스 (김지원, 표현아, 하정우, 이찬규, 김정희)
1. 서론
딥러닝(Deep Learning)은 신경망 기반 기계학습의 부활이라고 할 수 있다. 딥러닝을 적용한 음성인식의 오류율이 20%이상 개선되기 시작한 것을 계기로 다양한 분야로 확산되기 시작했으며, 이미지 분류 분야에서도 빠르게 적용되고 있는 추세이다. 최근에는 자연어 처리 및 멀티모달 데이터 학습 등 그 분야가 확산되고 있다. 이러한 딥러닝 확산의 바탕에는 빅데이터라고 불리는 대규모 학습 데이터와 이를 처리할 수 있는 하드웨어가 그 바탕에 있다. 본 논문에서는 다양한 분야에서 문제 해결의 새로운 패러다임을 제시하고 있는 딥러닝 알고리즘의 종류와 활용 분야들 중 몇 가지를 살펴본다.
2. Convolutional Neural Networks와 이미지 분류
CNN(Convolutional Neural Network)은 이미지 데이터의 처리에 적합한 구조로 만들어진 신경망으로, 1990년대 후반부터 필기 숫자 인식, 얼굴 인식 등의 제한적인 어플리케이션에 활용되어 왔다.
이후 딥러닝 기술이 본격 궤도에 오르면서, 2012년 ImageNet Challenge에서 딥 CNN이 기존의 컴퓨터 비전 기술을 크게 앞서는 성능을 냄으로써, 고해상도의 자연 이미지에서도 일반적인 사물을 인식할 수 있는 수준에 이르게 되었다.
국내외 IT 기업에서 사진 자동 분류, 내용 기반 이미지 검색 등의 서비스에 널리 활용되고 있으며, 동영상 분류, 이미지-텍스트 멀티모달 학습 등으로 영역을 꾸준히 확장해 나가고 있다.
2.1 CNN의 구조 및 학습
CNN은 그림 1과 같이 크게 convolution-pooling layer와 fully connected layer의 두 부분으로 구성되어 있다.
전자는 입력된 이미지로부터 계층적 구조의 feature를 추출하는 역할을,
후자는 추출된 feature을 입력받아 타겟 클래스로 분류하는 역할을 담당한다.
CNN layer은 아래와 같은 두 가지 특징을 통해 이미지 데이터의 특성을 반영하는 동시에 모델의 복잡도를 크게 단순화시킨다.
- Local connectivity : 해당 convolution 필터의 크기인 NxN window 내의 인접한 뉴런들에만 연결이 되어 있다. 이는 인접한 픽셀들끼리는 상관관계가 높지만 멀리 떨어진 픽셀들은 그렇지 않은 이미지의 특성(locality)을 반영한 것이다.
- Shared weights : convolution 필터들은 적용되는 위치가 달라도 같은 weight값을 공유한다. 이는 픽셀 값의 통계적 특성이 이미지 상의 좌표와 무관하다는 이미지의 특성 (stationarity)을 반영한 것이다.
Pooling layer은 NxN 윈도 내의 입력값들을 그 최대값 또는 평균값으로 매핑함으로써 이미지의 크기를 점차적으로 줄인다. 그 결과 상위 layer로 올라갈수록 같은 크기의 convolution 필터가 상대적으로 넓은 영역을 처리하게 되어, 상위 layer에서는 하위 layer의 저차원 feature를 조합한 고차원 feature를 학습하는 효과를 가져온다. (그림2)
2.2 CNN을 이용한 어플리케이션
대다수 IT 기업들은 이미지에서 사물을 인식하는 데 뛰어난 성능을 보이고 있는 CNN을 사진 자동 태깅, 내용 기반 이미지 검색 등 다양한 이미지 관련 서비스에 적극 활용하고 있다.
3. Recursive Neural Networks과 감성분석 (Sentiment Anaysis)
RNN(Recursive Neural Networks)은 parse-tree와 같이 구조화된 입력을 처리할 수 있는 아키텍쳐의 한 종류이다. 다른 표현으로 tree-structured neural network라고도 불리우는데, 신경망의 출력이 다시 신경망의 입력으로 들어가서 처리하기 때문이다. 따라서 고정된 길이의 입력이 아니라 다양한 길이의 구문이나 문장을 각 워드 벡터를 합성 벡터 (compositional vectors)로 표현하여 재귀적으로 처리할 수 있다.
(그림 4)는 이러한 방법을 설명한다. N개의 단어로 이루어진 구문이 주어졌을 때, 바이너리 트리로 구문을 파싱하고, 각 리프 노드에는 워드 벡터로 표현되는 단어를 대응한다. 리프 노드를 이용하여 bottom-up 방식으로 상위 노드 (parent vectors)의 벡터를 구하고, 이렇게 구한 상위 노드 벡터값은 다시 다음 네트웍의 입력이 된다.
Recursive Neural Networks은 특별한 타입의 트리 구조를 가지는 Recurrent Neural Networks의 일반화된 모델이라고 볼 수 있다. Recursive Neural Networks의 장점은 문장 구조를 파악하여 입력으로 사용하기 때문에 조금 더 정확한 의미를 나타낼 수 있다. 이러한 모델들은 언어 구문분석(Parsing), 감성분석(Sentimen Analysis), paraphrase detection 등에 사용되어 높은 성능을 보인다.
감성분석은 텍스트에 나타난 사람들의 태도, 의견, 성향과 같은 주관적인 데이터를 분석하는 자연어 처리 분야로서 특히 최근에는 시장현황이나 주식 등에서 소비자나 대중들의 반응을 측정하는 도구로서 많이 사용되고 있다.
(스탠포드 대학에서 구축한 sentiment treebank DB는 10,605문장의 영화 리뷰를 구문분석, 감성 레이블을 하였고, 이 DB를 이용하여 RNN 방식으로 감성분석을 하였을 때, 82.4%의 인식률을 보였다. (긍정/부정의 바이너리 예측) 한국어의 경우 역시 영화리뷰를 이용하여 감성분석을 실험하였다. 다만 sentiment treebank는 모든 리프 노드, 중간 노드에도 감성 레이블이 표기되어 있어서 모든 노드에서 softmax error를 계산하여 RNN을 훈련시켰지만, 한국어의 경우에는 DB구축의 시간, 비용의 문제로 인하여 문장단위로 루트에서만 softmax error를 계산하였다. 140만 문장을 이용하여 학습했을 때 최고 88.7%의 인식률을 얻었다.)
4. 딥러닝 기반의 멀티모달 학습 (multimodal learning)
4.1 멀티모달 학습
멀티모달 데이터(Multimodal data)는 두 가지 이상의 모달리티로 의미를 표현하는 데이터로 정의되며 태그를 포함한 사진은 이미지-텍스트, 동영상은 이미지-오디오-텍스트, 가요는 오디오-텍스트로 표현되는 멀티모달 데이터의 예이다. 멀티모달 학습은 데이터로부터 같은 의미를 표현하는 서로 다른 모달리티 간의 연관 관계를 표현 및 학습하는 기법으로 정의될 수 있으며 멀티모달 데이터의 조회, 검색, 추천을 위한 핵심기술로 사용된다.
ex) "작년 여름 해수욕장의 사진"이라고 입력하면 스마트폰에 저장된 수많은 사진들 중에서 질의어와 연관된 사진을 자동으로 검색 가능(Text2Image)하며 반대로 스마트폰으로 사진을 촬영하면 이를 설명하는 문장을 자동으로 태깅(Image2Text)하여 저장할 수도 있다.
멀티모달 학습은 2000년대 초반에 시작되었으며 초기에는 주로 토픽모델(Topic model)을 이용한 접근법이 다수를 차지하였다.
4.2 딥러닝을 이용한 멀티모달 학습
학습을 통해 데이터로부터 인자를 자동으로 생성 가능하다는 점에서 딥러닝은 멀티모달 학습에 적합한 모델이라고 할 수 있다. 이는 서로 다른 모달리티가 표현하는 공통 의미공간을 딥러닝 모델에 이용해 학습함으로써 가능해진다.
멀티모달 학습을 위한 딥러닝 초기모델로서 multimodal deep Boltzmann machine (mDBM)이 제안되었다.[10] 이 모델은 텍스트와 이미지 데이터 각각을 학습하는 restricted Boltzmann machine(RBM)위에 모달리티 통합 RBM층이 존재하며 확률적 추론을 통해 이미지가 입력으로 주어지면 텍스트 단어로 표현되고 단어가 주어졌을 때 이미지 인자가 생성된다. (그림6(a)).
2014년 11월 구글에서는 "Show and Tell: a neural image caption enerator(NIC)"라는 딥러닝 기반의 멀티모달 학습 관련 연구결과를 공개하였다.[11] 이는 이미지 분류나 태깅에 국한되던 기존의 Image2Text 기술을 뛰어넘어 주어진 이미지의 내용을 설명하는 문장을 자동으로 생성하는 기술을 포함한다. 본 기술에서는 그림6(b)와 같이 이미지 인자를 위해 Convolutional Neural Network(CNN)이 문장생성을 위한 언어모델로서 Recurrent Neural Network(RNN)이 사용되었다. 즉 이미지가 질의로 주어지면 주어진 이미지는 학습된 CNN에 의해 다차원의 실수 인자 벡터로 변환되고 이 벡터값이 RNN의 입력으로 주어지면 이미지를 설명하는 텍스트 정보가 학습된 RNN에 의해 문장형태로 생성된다. 특히 생성된 문장은 정확도를 측정했을 때 사람이 직접 작성한 문장과 유사한 수준으로 문장이 생성됨을 보였다. (그림7(a)).
최근에는 Image2Text에 attention 개념이 포함되어 주어진 이미지로부터 문장을 구성하는 단어들이 순차적으로 생성될 때 생성되는 단어와 직접 관련된 이미지 부분에 attention이 주어지도록 학습하는 모델이 제안되었다. [4] 또한 이미지를 넘어서 비디오 데이터를 분류하고 비디오의 내용을 설명하는 문장을 생성하는 연구도 다수 발표되었다. [13-15]. 만화비디오의 내용 및 각 등장인물들의 성격 및 특성을 학습하는 딥러닝 모델인 deep concept hierarchy (DCH) 모델이 제안되었으며 그림 3과 같이 이 기술을 통해 만화 이미지가 주어지면 자막을 자동으로 생성하고 문장이 주어지면 관련된 장면을 자동으로 생성하는 연구가 소개된 바 있다. [16]. 궁극적으로는 100개의 에피소드를 학습한 모델이 101번쨰의 에피소드 스토리를 자동으로 생성하도록 하는 스토리텔링 모델도 구현될 수 있다.
멀티모달 학습은 아직 초기단계에 머무르고 있다. 먼저 생성된 문장에 대하여 BLEU*를 대신할 정성적 측면을 고려한 측정기준을 수립하는 것이 필요하며 이미지-텍스트 변환에 있어서 단편적인 사실 설명문장을 넘어서 스토리를 포함한 상위수준의 추상화된 문장을 생성하는 기술로 발전되어야 한다. 또한 현재의 멀티모달 학습은 이미지, 텍스트, 사운드에 집중되어 있는 상황이지만 더욱 다양한 종류의 센서 모달리티 데이터로 확장될 때 인간 인지모델링 및 인간수준 인공지능 구현을 위한 핵심 기술로 자리잡게 될 것이다.
BLEU (Bilingual Evaluation Understudy)
- 기계 번역 시스템의 성능을 평가하는 지표
- 번역된 텍스트의 정확성과 자연스러움을 측정하는 데 사용되며 주로 자동 번역 모델이나 자연어 처리 (NLP) 시스템의 품질을 평가할 때 사용된다.
5. 향후 연구 및 결론
딥러닝을 이용하여 좋은 성능을 얻기 위한 관건 중 하나는 대용량 학습 데이터를 얼마나 빠른 시간 안에 학습시킬 수 있느냐에 달려 있다. 딥러닝을 이용하여 학습할 때에는 다양한 hyper-parameter들을 설정해 주어야 하며, 구조에 있어서도 다양한 변이가 존재한다. 각 문제에서 최적의 답을 얻기 위해서는 많은 실험을 통해 이러한 hyper-parameter 들을 결정할 수 밖에 없는데, 대용량 데이터를 학습하기 위해 많은 시간이 소요된다면, 효율이 떨어질 수 밖에 없고 기업체에서 경쟁력 있는 서비스를 제공하기 어렵다. 따라서 얼마나 scalable 한 딥러닝 학습 플랫폼을 갖추느냐가 딥러닝 경쟁력을 좌우할 수 있다.
'Study > Paper.News' 카테고리의 다른 글
1년 새 10억 원 버는 모델이 가짜?… 가상 인플루언서와 손잡는 유통업계 (0) | 2022.03.24 |
---|---|
게임 공간 넘어 출근하듯이 접속 아바타가 수익내고 일자리 창출 (0) | 2022.03.24 |
[학생기자단 기사 - 메타버스 시대가 온다] (0) | 2022.02.10 |
[데이터 마이닝을 이용한 유튜브 인기 동영상 콘텐츠 분석] (0) | 2022.02.01 |
논문 [인공지능의 발전과 고용의 미래] (0) | 2021.11.19 |