딥러닝의 성능은 데이터의 질, 양과 정비례하는데 데이터 수집의 어려움, 레이블링의 까다로움, 레이블링의 시간 및 금전적 비용 부담으로 더 이상 데이터에 의존하기엔 어려운 단계에 이르렀다. 이러한 수렴단계에서 데이터의 절대량에 구애받지 않는 모델의 중요성이 대두되었고 데이터의 context를 읽어내는 이른바 meta learning이 발전하게 되었다. Zero-shot Learning은 그 중 한 방법론으로 한 번도 본 적 없는 레이블을 구분해 낼 수 있는 모델이다.
Zero-shot learning 이란: label이 지정된 소수의 클래스 집합 데이터와 클래스에 대한 ‘추가 정보만을’ 사용하여 한 번도 본 적 없는 많은 클래스까지 잘 예측하도록 학습한 모델.
그렇다면 어떤 추가정보를 사용해 학습했기에 본 적 없는 데이터까지 추론할 수 있을까? 얼룩말을 학습한 모델에게 호랑이 이미지를 주고 어떤 동물인지 알아내라는 질문을 했다고 하자.
얼룩말을 학습한 모델이 호랑이를 본다면 먼저 얼룩말에서 학습한 특성을 살필 것이다. 꼬리가 있는가, 줄무늬가 있는가, 갈기가 있는가. 이러한 정보를 살핀 모델은 호랑이를 ‘꼬리가 있고 검은 줄무늬가 있으나 갈기는 없는 주황색 가죽을 가진 동물’ 로 설명할 수 있을 것이다. 기존처럼 이미지 모델을 이용해 분류 문제를 풀면 이 동물이 얼룩말이 아니라는 결론만 얻을 수 있지만 Zero-shot learning은 이미지를 묘사한 context를 얻을 수 있음에 주목한다. 이렇게 얻어낸 호랑이를 설명한 묘사를 언어 모델에 넣는다면 어떨까? 언어모델은 위키피디아를 포함한 다량의 언어를 학습한 모델이므로, 이미지 모델에서 동물의 종류를 찾기엔 부족했던 ‘갈기가 없고 주황색 가죽을 가진’ 특징을 찾아낼 수 있을 것이다. 주황색 바탕에 검은 줄무늬를 가진 얼룩말 크기의 동물은 무엇일까? 호랑이다.
이렇게 이미지 모델에서 이미지의 특성을 찾아내고, 그 특성을 언어모델에 물어 학습하지 않았던 label을 분류하는 모델이 Zero-shot model이다.
그런데 이미지 모델에서 이미지의 특성은 어떻게 찾아낼까?
이미지 모델은 이미지를 이미지가 아닌 행렬로 받아들인다. 이미지의 특성은 숫자로 표현되어 행렬이 되는데, 이렇게 특성을 반영하는 방식을 ’(semantic) embedding’이라고 한다. 임베딩 된 두 이미지를 비교하면 공통된 특성은 유사한 숫자로 표현되어 있을 것이다. 이렇게 학습되지 않은 특성도 임베딩 벡터 값으로 보존할 수 있다.
이렇게 Zero-shot learning의 직관을 얻을 수 있었다. 추후 모델이 작용하는 구체적인 기작과 Meta Learning에 대해 알아보도록 하겠다.
DMQM 연구실의 세미나 기록은 청자들의 후기에서도 사고를 확장할 수 있는데 이번에 눈에 들어온 부분은 아래와 같다.
Few-shot learning task with meta-learning Meta learning은 Meta training(경험을 쌓고)과 Meta testing(관심 대상의 소수데이터로 다수데이터를 잘 예측)으로 이루어진다. Meta training을 위해 확보된 데이터 셋에서 여러 개의 과업을 나눈다. 즉, 각 과업은 예측하고자 하는 클래스, 소수데이터, 다수데이터가 서로 다르다. 이렇게 여러 과업으로 나누어 학습하는 방법을 에피소딕 학습(episodic training)으로 말한다. 이렇게 얻어낸 “경험”으로 부터 관심 대상이 되는 과업(task new)을 잘 수행해야 하는데 어떤 “경험”을 반영할 지 선택하는 게 중요하다.
메타러닝은 배우는 방법을 배우는 방법이라고 간략하게 알고 있다. 조금 더 사람의 이해에 가까운 학습 방법으로 느껴져 흥미가 간다.