brunch

매거진 머신러닝

You can make anything
by writing

C.S.Lewis

by 모험과 안정 Jan 21. 2024

'원하는' 데이터가 없을 때의 머신러닝  

Zero shot, one shot, few shot learning

배경

머신러닝은 이미 주어진 데이터를 기반으로 학습된 모델을 바탕으로, 새로운 데이터에 대해서 원하는 target을 예측하는 것이다. 그 형태는 classification이 될 수도 있고 regression이 될 수도 있다. 가장 대표적인 예시는 아래의 개와 고양이 사진 분류일 것이다. 

여기서 개와 고양이 사진으로 학습된 머신러닝 모델 (ML model)은 개와 고양이 두 가지 class만 있으며, 어떠한 사진을 넣더라도 개와 고양이 둘 중에 하나라고 예측할 것이다. 그러면 이 모델은 어떤 한계점이 있을까? 


많은 한계점이 있겠지만, 이 글에서는 다음과 같은 한계점을 다루고자 한다. 


개와 고양이가 아닌 다른 class에 대해서는 전혀 예측할 수 없다


Zero shot, one shot, few shot learning

이 문제를 좀 더 일반화시켜보면 우리는 머신러닝 모델을 가지고 생전 처음 보는 class에 대해서는 전혀 예측을 할 수 없다는 뜻이다. 하지만, 우리는 생전 처음 보는 개념에 대해서 다음과 같이 학습하지 않는가? 예를 들어서 6살 아이한테 눈사태의 개념에 대해서 학습시킨다고 가정해보자


눈사태:  덮인 에서 눈이 갑자기 쏟아지는 것이다.


여기서 아이가 눈, 산이라는 명사와 덮여있다, 쏟아진다는 동사, 갑자기라는 부사를 알고 있다면 눈사태라는 새로운 개념을 자기가 원래 알고 있는 개념을 바탕으로 이해할 수 있는 것이다.


이와 같이 기존에 학습된 class들을 바탕으로 새로운 class를 학습하는 것을 zero shot, one shot, few shot learning이라고 한다. 여기서 3가지 모두 개념이 비슷하기 때문에 zero shot만 이해하면 one shot, few shot learning도 어렵지 않게 이해할 수 있다. 아래의 새와 강아지를 분류한 모델을 바탕으로 뱀을 예측한다고 생각해보자

물론 이 모델은 뱀을 뱀이라고 예측하지는 못할 것이다 (뱀이라는 class를 배워본적이 없으니까). 대신, 뱀을 강아지의 특성과 새의 특성을 일부 가지고 있는 형태로 예측할 것이다. 뱀 사진을 계속 예측 시키면 이전에 예측시킨 사진와 같은 형태로 반복해서 예측할 것이고, 그렇게 clustered 된 데이터들을 모아서 뱀이라고 정의하면 된다. 이와 같이 한 번도 안 배워본 새로운 class를 예측하는 경우를 zero-shot이라고 하고, 새로운 class를 딱 한 번 배우고 나서 예측하는 경우를 one shot이라고 하고, 적은 양으로 배우고 나서 예측하는 경우를 few shot이라고 한다.


활용 및 관련 모델

이와 같은 형태의 모델은 새로운 class와 유사한 형태를 가진 학습된 class가 많은 경우에 매우 유용하다. 이러한 zero-shot learning이 활용되고 있는 대표젹인 예시는 DALL-E 모델이며, 아래의 Bing에서 여러분이 그리고 싶은 이미지에 대해서 설명하면 원하는 이미지를 그려준다


https://www.bing.com/images/create


Zero-Shot Text-to-Image Generation

 https://arxiv.org/abs/2102.12092 



매거진의 이전글 머신러닝 이해하기 (가제)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari