딥러닝은 많은 데이터를 분류해서 같은 집합들끼리 묶고 상하의 관계를 파악하는 기술이다. 데이터양이 많을수록 딥러닝의 정확도가 높아진다.
그러나 하나의 개념을 학습시킬 때마다 매번 많은 양의 데이터가 있어야 한다는 것은 큰 걸림돌이 될 수 있다. 양질의 데이터가 많은 경우에는 괜찮지만, 항상 학습하고자 하는 개념에 대한 데이터가 충분히 많으리라는 보장은 없기 때문이다. 소량의 데이터만으로 학습할 수는 없는 것일까?
이에 대한 해답이 바로 ‘퓨샷 러닝(few-shot learning)’이다. 퓨샷 러닝은 말 그대로 적은(few) 양의 데이터를 가지고 학습하는 것을 의미한다. 퓨샷 러닝 모델이 완전히 새롭게 주어진 데이터에서도 잘 작동하도록 만들기 위해서는 에피소딕 훈련(episodic training) 방식의 메타러닝(Meta learning, 사람이 통제하던 기계학습 과정을 자동화함으로써 기계 스스로 학습 규칙을 익힐 수 있게 하는 방법)이 필요하다. 에피소딕 훈련은 퓨샷 작업과 유사한 형태의 훈련 작업을 통해 모델 스스로 학습 규칙을 찾아낼 수 있도록 하여 일반화 성능을 향상하는 역할을 한다.
그렇다면 데이터가 아예 없는 상태에서도 학습할 수 있을까? 가능하다. 제로샷 러닝(Zero-shot learning, ZSL)덕분이다. 제로샷 러닝은 머신러닝의 문제 설정으로, 시험 시간에 학습자(learner)는 훈련 중 관찰되지 않은 클래스의 샘플을 관찰한다. 그리고, 이를 기반으로 샘플이 속하는 범주를 예측한다. 제로샷 러닝은 컴퓨터 비전, 자연어 처리, 기계 인식 등에서 폭넓게 연구되고 있다.
자연어 처리에서 개발된 핵심 기술 방향은 “라벨을 이해하는 능력(분류할 문서와 동일한 의미적 공간에 있는 라벨을 나타냄)”을 기반으로 한다. 이 덕분에 제로샷 분류가 가장 순수한 형태인 주석이 달린 데이터를 관찰하지 않고도 단일 예제를 분류할 수 있다.
제로샷 러닝 모델은 관찰된 클래스에 대한 매개변수를 클래스 표현과 함께 학습한다. 또, 추론 중에 인스턴스를 새로운 클래스로 분류할 수 있도록 클래스 라벨 사이의 표현적 유사성에 의존한다. 참고로 객체 지향 프로그래밍(OOP)에서 인스턴스(instance)는 해당 클래스의 구조로 컴퓨터 저장공간에서 할당된 실체를 의미한다. 여기서 클래스는 속성과 행위로 구성된 일종의 설계도이다.
물론 이러한 제로샷 클래스에 대한 몇 가지 형태의 부가 정보가 제공되어야 한다. 부가 정보의 유형은 다음과 같이 분류할 수 있다.
① 속성이 있는 학습: 클래스에는 미리 정의된 구조 설명이 수반된다. 이러한 속성은 종종 구조화된 구성 방식으로 구성되며, 그 구조를 고려하는 것은 학습을 향상시킨다.
ex) 새를 설명할 때 "빨간 머리", "긴 부리"와 같은 정보
② 텍스트 설명으로부터의 학습: 자연어 처리에서 추구하는 핵심 방향이다. 여기서 클래스 라벨은 의미를 가지기 위해 취해지고 종종 정의 또는 자유 텍스트 자연어 설명으로 강화된다.
ex) 클래스에 대한 위키피디아의 설명
③ 계급적 유사성: 여기서 클래스는 연속된 공간에 내장되어 있다. 제로샷 분류기는 샘플이 해당 공간의 어떤 위치에 해당한다고 예측할 수 있으며, 훈련 중에 그러한 샘플이 관찰되지 않았더라도 가장 비슷한 내장형 클래스를 예측된 클래스로 사용한다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]