Hello Computer Vision

Zero shot learning에 대해 공부해보기 본문

딥러닝

Zero shot learning에 대해 공부해보기

지웅쓰 2023. 4. 2. 00:26

여러 글을 보고 제 개인적인 이해를 담았습니다. 아래 참조있습니다.

 

Zero shot learning이란 무엇인가?

기존의 supervised learning은 레이블링된 학습 데이터 세트를 사용하여 모델을 학습하지만 이에 반해 zero-shot learning은 학습 데이터에 없는 클래스를 인식하거나 예측하는 방법이다. 예를 들자면 말 이미지들만 train 단계에서 활용한 후 zebra 이미지를  test시에 input값으로 준다면 이를 잘 분류할 수 있다. 여기서 중요한 점은 구체적인 클래스로 분류할 수는 없다. 왜냐하면 Zero shot learning에서 새로운 unseen data에 대해서는 어떤 클래스로 분류할지 모르기 때문이다. 그러나 만약 110개의 새로운 클래스가 들어왔을 경우 잘 분류하는 모델일 경우 새로운클래스1, 새로운클래스2 ... 새로운클래스10 등 잘 분류해낼 수 있다(많은 글들에서 이 새로운 클래스에 대해서 예측을 할 수 있다고 해서 어떻게 보지도 않은 클래스에 대해서 예측을 하지 생각했는데 명확하게 구분을 못하는 것이고 새로운 클래스라고 구분은 할 수 있다).

(2024.03.21 수정) 위의 내용에서는 분류할 수 없다고하는데, 우선 결론적으로는 할 가능성이 높다. 왜냐하면 zero-shot learning은 기본적으로 scratch상태로부터 훈련하는 것이 아니다. GPT3에서 대표적으로 zero shot learning이 활용되었는데, 상상할 수 없을 정도로 큰 데이터들을 활용해 pre-train 하고 이를 zero shot으로 test해본다면 잘한다는 것이다. 예를 들어 번역관련한 데이터로 학습을 수행하지 않았더라도 GPT는 autoregressive하게 다음 단어를 예측하도록 훈련되있기 때문에 Love라는 단어를 그냥 task로 준다면 사랑이라고 잘 번역할 수 있는 것이다.

 

Zero shot learning 의 학습방법

우선 Zero shot learning도 지도학습이다. 그러나 기존의 지도학습과는 다른 방법으로 예측하는데 바로 semantic information을 활용하는 것이다.  이를  side information이라고 하는데 다양한 방법들로 이를 제공할 수 있지만 여기서는 attribute(대상의 특징)위주로 설명하려고 한다.

https://www.v7labs.com/blog/zero-shot-learning-guide

예를 들어 이러한 방식으로 각 이미지의 특징들을 embedding하는 것이다. 이러한 attributes는 Wikipedia or word corpus를 활용하는 방법들이 있다. 추가적으로 CNN이나 Transformer를 통해 이미지의 특징들을 추출해낼 수 있다.

 

이렇게 attributes를 이용해 추출한 특징벡터들과 네트워크를 이용해 추출한 벡터들을 활용해 클래스간의 거리를 계산하는데 여기서 Similarity metric을 활용한다. 기본적으로는 코사인 유사도가 사용되며 Hinge Loss가 사용되기도 한다.  

이렇게 train과정에 끝나면은 test과정에서는 input으로 이미지와 해당 이미지에 대한 side information이 주어지며 새로운 이미지에 대해서도 새로운 클래스라고 잘 분류해낼 수 있다.

 

앞으로의 전망

Zero shot 은 현재에도 활발히 활용되고 있는데 이를 활용한 모델로는 Open AI의 DALLE가 있으며 해당 모델에서는 Text를 input으로 준다면 이에 해당하는 이미지를 output으로 내뱉는다. zero shot 외에도 one shot, few shot learning 방법들이 활용되고 있으며 새로운 클래스와 이미지에 대해서 추가적인 비용이 높은 분야에 대해서도 활용되고 있다. 

 


References

https://www.youtube.com/watch?v=7uAszeiLE2w&t=794s 

https://deep-learning-study.tistory.com/873