Insight

Few shot learning 이란? - 개념, 학습 방법, 프로세스

Few shot learning 정의와 원리, 트렌드

2023
.
06
.
12
Few shot learning 이란? - 개념, 학습 방법, 프로세스

모델 학습을 위해서, 데이터는 많을수록 좋다는 인식이 있습니다. 하지만 실제로 반드시 데이터가 다다익선인 것은 아닙니다. 최근에는 제한된 데이터로 학습하는 few shot learning 방법론에 대한 관심이 높아지고 있습니다.

빠르게 진화하는 인공지능 분야에서 제한된 데이터로부터 학습하고 일반화하는 능력이 중요해졌습니다. 아래 글을 통해 few shot learning 방법론이 AI 모델 교육에 유망한 솔루션이 될 수 있는 이유에 대해 설명하겠습니다.

Few shot learning 개념

What is few shot learning? (concept, learning method, process)

Few shot learning의 정의

Few shot learning은 10개 미만의 한정된 샘플로부터 학습할 수 있는 머신러닝 방법론을 의미합니다. 보통 딥러닝 모델이 대량의 데이터로 사전 학습된 다음, 새 작업에 대한 몇 가지 샘플로 미세 조정하여 수행하고 있습니다.

머신러닝인간과 유사한 학습 기능 사이의 격차를 해소하는 것에 목표를 두고 있습니다. 마치 사람이 몇 가지 예시만으로 새로운 개념을 빠르게 익힐 수 있듯이, 모델에게도 가능성이 있다고 보는 것이죠.

주요 과제와 목표

few-shot learning는 레이블이 지정된 훈련 데이터가 부족하거나, 효과적인 표현 학습이 필요할 때, 보이지 않는 새로운 클래스로 일반화하는 능력 등의 문제를 해결할 필요가 있습니다. 

Few shot learning은 모델을 훈련하는 데에 필요한 데이터의 양을 줄여 모델의 훈련 및 배포 비용을 절감할 수 있다는 장점이 있습니다. 또한, 모델은 새로운 태스크에 더 쉽게 적응할 수 있기 때문에 모델의 유연성과 적응성을 높일 수 있죠.

이 방법론은 NLP컴퓨터 비전과 같은 다양한 영역에 적용할 수 있습니다.

Few shot learning vs. Zero shot learning 비교

머신러닝 모델이 이전에 보거나 학습한 적이 없는 카테고리나 레이블을 ‘클래스’라고 합니다. ZSL(Zero shot learning)이란, 머신러닝 Training 과정 중에 새로운 클래스의 예시를 보지 않고도 인식하는 방법을 학습할 수 있는 머신러닝 방법론입니다. 즉, 새로운 클래스에 대한 명시적인 훈련 없이도 모델이 속성이나 특성에 대한 정보를 사용하여 정확하게 인식하고 분류하도록 학습시킬 수 있습니다.

ZSL은 시맨틱 임베딩(Semantic embedding)과 속성(feature) 기반 학습을 활용하여 학습 프로세스를 최적화합니다. 이 원리를 자세히 살펴보면 아래와 같습니다.

  • 시맨틱 임베딩이란 단어 또는 구문을 벡터 공간에 매핑하는 자연어 처리 기법입니다.
  • 벡터 사이의 거리는 단어 또는 구문 간의 의미적 유사성을 반영합니다.
  • 일반적으로 라벨링이 없는 대규모 데이터에 대응하는 방법으로 사용합니다.
  • 이전에 학습한 모델을 사용해 새로운 문제를 해결할 수 있습니다.

Zero shot learning은 새로운 클래스부터 학습할 수 있다는 점과 이미지 인식 및 자연어 이해 등 다양한 영역에서 빛을 발하고 있습니다. 정보 검색이나 텍스트 분류, 번역을 비롯한 여러 애플리케이션에서 활용하고 있습니다. 예를 들어, AirBnB는 Zero shot learning을 사용하여 게스트의 선호도를 예측하고 이에 맞는 숙소를 추천합니다.

Zero shot learning, few shot learning 모델에서 가장 두드러지는 차이점은 아래와 같습니다.

1. 데이터

  • FSL: 레이블이 지정된 소량의 예제가 필요
  • ZSL: 레이블이 지정된 예제 불필요

2. 활용 분야

  • FSL: Image classification, NLP, 강화 학습(Reinforcement learning) 등 다양한 작업에 사용
  • ZSL: 일반적으로 질문 답변 및 요약과 같이, 텍스트를 이해하거나 생성하는 작업에서 유용

3. 알고리즘

  • FSL: 일반적으로 학습 방법을 학습하는 기술인 메타 학습(Meta learning)을 사용
  • ZSL: 새로운 데이터를 생성할 수 있는 생성 모델을 기반

4. 성능

  • FSL: 적은 수의 예제로 높은 성능을 보이지만 대규모 데이터 세트에서 학습된 기존 머신러닝 알고리즘보다 정확도가 떨어지는 한계
  • ZSL: 높은 정확도를 달성할 수 있지만 데이터의 노이즈나 이상값에 취약

위의 내용을 토대로 예시를 들어보겠습니다. Few shot learning은 몇 개의 레이블이 지정된 예시를 보고 다양한 유형의 꽃 이미지를 분류하는 모델을 훈련할 수 있게 됩니다. 반면 Zero shot learning 모델은 프랑스어 데이터에 대해 학습하지 않아도 영어에서 프랑스어로 텍스트를 번역하는 모델을 구축하는 데에 사용할 수 있습니다. 유사한 면도 있지만, 장점과 한계가 명확히 다른 모델입니다. 따라서, AI 모델을 통해 해결하고자 하는 문제나 목표를 구체화한 뒤 어떤 기법을 사용할 것인지 결정할 필요가 있습니다.

Few shot learning 원리

접근 방식

few shot learning 방법론은 세 가지의 접근 방식으로 나눌 수 있습니다.

  • 메트릭 기반 방법: 유사성 메트릭을 활용하여 레이블이 지정된 몇 가지 예시와의 유사성을 기반으로 새 인스턴스를 비교하고 분리합니다. 프로토타입 네트워크와 매칭 네트워크는 메트릭 기반의 few shot learning의 대표적인 예시 중 하나입니다.
  • 모델 기반 방법: 사용 가능한 레이블이 지정된 예제에서 생성 모델을 학습한 다음, Few shot learning 시나리오에서 새로운 샘플을 생성하는 것을 목표로 합니다. 일반적으로 VAE(Variational Autoencoder) 및 GAN(Generative Adversarial Networks)은 모델 기반의 few shot learning에 사용합니다.
  • 최적화 기반 방법: 최적화 기반 방법은 소수 학습을 최적화 문제로 공식화하여 모델이 사용 가능한 몇 가지 훈련 예제에 맞게 파라미터를 조정합니다. MAML(모델에 구애받지 않는 메타 학습) 및 Reptile과 같은 방법이 이 범주에 속합니다.

few shot learning learning method
<출처: BOREALIS AI> 두 훈련 작업 {cat, lamb, pig}, {dog, shark, lion}의 클래스와 테스트 작업 {duck, dolphin, hen}의 클래스 간에 겹치는 부분이 없으므로 알고리즘은 다음을 학습해야 합니다. 특정 집합이 아닌 일반적으로 이미지 클래스를 분류합니다.

학습 방법

Few shot learning은 대개 4가지 방법으로 분류할 수 있습니다.

  • 메모리 기반 방법
    - 훈련된 모델의 메모리를 사용하여 새로운 작업을 학습
    - 개와 고양이를 구별하는 방법을 배운 경우, 개와 고양이의 이미지가 포함된 메모리를 가질 수 있음
    - 새로운 이미지를 볼 때 모델은 메모리를 사용하여 이미지가 개인지 고양이인지 결정할 수 있음
  • 사전 훈련된 모델 사용
    - 이미 대규모 데이터 세트에서 학습한 모델
    - 사전 훈련된 모델을 미세 조정하여 새 작업에 맞게 조정할 수 있음
  • 규제된 학습, Supervised learning
    - 모델이 학습하는 동안 오류를 방지하는 데 사용
    - 훈련 데이터에 너무 맞지 않도록 할 수 있음

Few shot learning 장점

Few shot learning은 일반적으로 레이블이 지정된 데이터가 많은 데이터 세트에서 모델을 미리 학습한 다음, 소량의 데이터로 새로운 작업을 학습하는 방법입니다.

이는 딥러닝의 전통적인 방식과 대조되는 모델입니다. 기존 모델이 훈련 데이터 세트에서 많은 예시를 사용하여 학습하던 것과는 반대의 방법론이죠. 현재 few shot learning은 컴퓨터 비전, 자연어 처리 및 로봇 공학을 포함한 다양한 분야에서 활약하고 있습니다.

2000년대 초반에는 훈련 데이터가 적은 상황에서 분류나 회귀 및 클러스터링 작업을 수행하는 방법을 연구해왔었습니다. 대규모 컴퓨터 비전 데이터 세트의 가용성 증가와 딥러닝의 발전으로 few shot learning의 발전도 크게 증가했죠.

few shot learinig은 몇 개의 샷만으로 작업을 학습할 수 있는 모델을 만드는 데 사용됩니다. 대표적인 사용 예시는 아래와 같습니다.

  • 몇 장의 이미지만으로 새로운 개체를 식별할 수 있는 컴퓨터 비전 시스템
  • 몇 개의 문장만으로 새로운 언어를 번역할 수 있는 자연어 처리 시스템
  • 몇 가지 예시를 통해 새로운 작업을 수행할 수 있는 로봇 시스템

Few shot learning은 기존의 머신러닝 방법론보다 새로운 작업을 학습하는 데에 필요한 데이터가 적습니다. 이로 인해 데이터 수집 비용이 많이 들고, 시간이 많이 걸릴 수 있는 특정 작업에서 유용하게 활용할 수 있죠.

또한 새로운 작업이 자주 변경되는 경우, 더 빠르게 적응할 수 있다는 장점에도 주목할 필요가 있습니다. 마찬가지로 다양한 종류의 데이터에 대한 모델을 학습해야 하는 경우, 기존의 방법론보다 더 빠르게 일반화할 수 있습니다.

Few shot learning Use case

적용 분야

Few shot learning은 컴퓨터 비전과 음성 기술, 자연어 처리 등 다양한 영역에서 사용하고 있습니다.

  • 음성 기술 (Speech Technology)
    음성 변환: 보이는/보이지 않는 대상 화자가 말하는 것처럼 말하도록 모든 소스의 말하는 스타일을 변경
    사운드 이벤트 분류: 관찰되지 않은 사운드 이벤트 분류
    감정 분류: 말에서 관찰되지 않는 감정을 분류

애플은 사용자의 사용 패턴을 학습하기 위해 few shot learning을 사용합니다. Siri는 처음으로 질문을 받으면 유사한 질문의 몇 가지 예시를 사용하여 새로운 질문에 대한 답변 방법을 학습합니다. 이를 통해 Siri는 이전에 들어본 적 없는 질문을 받더라도, 더 정확하고 관련성 높은 답변을 제공할 수 있습니다.

이외에도 애플은 사용자에게 적합한 콘텐츠를 추천하기 위해 few shot learning을 사용합니다. 사용자가 앱을 다운로드하면 앱 스토어는 사용자가 다운로드한 다른 앱의 몇 가지 예를 사용하여 사용자의 관심사를 학습합니다. 또한 뉴스 앱은 사용자가 읽은 다른 기사의 몇 가지 예를 사용하여 사용자의 관심사를 파악하죠. Few shot learning은 애플이 보다 효율적이고 효과적인 방식으로 사용자에게 개인화된 콘텐츠를 제공할 수 있도록 합니다. 소수의 예시를 통해 학습하고 그 지식을 훨씬 더 많은 사용자에게 적용하면, 사용자에게 더욱 개인화된 경험을 제공할 수 있으며 참여도와 만족도를 높일 수 있죠.

최신 트렌드

최근 머신러닝 트렌드는 모델의 속도 개선과 학습 데이터 퀄리티에 주목하고 있습니다. 예를 들어 ChatGPT와 같은 대규모 언어 모델(LLM)은 방대한 양의 데이터에 대해 교육을 받았기 때문에, few shot learning 모델이 새로운 작업을 빠르게 학습하는 데에 도움이 될 수 있습니다. 이외에도 few shot learning 모델의 학습 및 추론 속도를 높이는 데에 사용되는 하드웨어 가속의 사용이 증가하고 있습니다.

또한, 대량의 데이터를 구축할 수 없는 사업에서 few shot learning 모델을 활용하려는 움직임이 증가했습니다. 스탠포드 대학의 연구원들은 적은 수의 이미지로 피부암을 진단할 수 있는 AI 시스템 개발에 few shot learning을 사용하고 있습니다. 의료 분야의 경우, 모델을 학습시킬 데이터의 절대적인 양이 부족하다는 사실이 모델 훈련의 걸림돌이 되어왔기 때문이죠. 소량의 데이터라도 모델이 분석 및 인식할 수 있을 정도로 정확성과 품질을 갖춘다면 few shot learning 모델을 통해 충분히 좋은 AI 시스템을 만들 수 있습니다.

데이터헌트가 생각하는 few shot learning 모델 학습 데이터 품질의 기준은 아래와 같습니다.

데이터헌트는 few shot learning 모델과 같은 소량의 데이터가 필요한 경우, 기존보다 더 엄격한 데이터 품질 기준이 필요하다고 생각합니다. 따라서 모든 학습 데이터 가공 과정을 AI의 손으로 빌리는 것보다, Ai assisted의 형태로 진행하되 HITL(Human in the loop)를 통해 인간 작업자의 손을 반드시 거칩니다. 데이터 오류나 이상값, 중복 데이터 제거 등의 업무는 물론 레이블을 지정하는 것까지 AI와 사람이 협업해 정확도를 개선합니다. 데이터 다양성 개선, 품질 프레임워크 등의 업무에서 전문가의 검수를 거친 끝에, 정확도 99%의 학습 데이터를 가공할 수 있게 되었죠.

Few shot learning 한계와 미래

Few shot learning은 아직 개발 초기 단계에 있지만, 이미 다양한 작업에 적용되어 성공을 거두었습니다. 이 방법론은 앞으로도 계속 발전할 것이며, 기존의 머신러닝 모델을 대체할 수 있는 잠재력이 있다고 평가 받고 있습니다. 물론 극복해야 할 문제점도 있습니다.

Few shot learning 한계

‘서당 개도 3년이면 풍월을 읊는다’는 말이 있습니다. 일반적으로 사람은 새로운 작업에 앞서 몇 번의 경험이면 쉽게 익힐 수 있습니다. 그러나 모델을 훈련하기 위해서는 많은 데이터가 필요합니다. 그러나 의료 진단이나 자연어 처리와 같이 데이터가 부족한 작업에서는 대량의 데이터를 구축하는 과정에서 많은 문제가 발생할 수 있습니다.

많은 데이터를 구축했다고 하더라도 처리 리소스가 많이 들어갈 경우 비용과 시간이 많이 들기 때문에 실시간 애플리케이션에 적용하기 어려운 한계에 부딪힐 수 있습니다.

Few shot learning 모델은 이러한 문제를 해결할 수 있는 방법이 될 수 있습니다. 그러나, 이 모델 역시 이와 비슷한 한계를 가지고 있다는 평가도 있습니다. 일반적인 모델의 문제점과 더불어 Few shot learning 모델이 가지고 있는 추가적인 한계도 있습니다.

  • 작업 전이성: Few shot learning 모델은 일반적으로 이미지 분류나 자연어 번역과 같은 특정 작업에 대해 학습합니다. 즉, 유사한 작업이라 하더라도 다른 작업으로 일반화하지 못할 수 있습니다.
  • 모델 복잡성: Few shot learning 모델은 복잡할 수 있으며, 이로 인해 이해하고 설명하기 어려울 수 있습니다. 이는 의료나 금융과 같이 투명성이 중요한 애플리케이션에서 문제가 될 수 있습니다.

GPT의 사례에서 보는 Few shot learning의 미래

GPT-4는 다음 단어를 생성할 때 시퀀스 내 단어의 관련성을 평가하는 트랜스포머 아키텍처를 활용합니다. 이 모델은 방대한 인터넷 텍스트 말뭉치를 가지고 학습했지만, 추론을 위해 단발성 학습을 활용한다는 점에서 다른 언어 모델들과 차별화되고 있습니다.

‘프롬프트’로 불리는 몇 가지 예제들은 GPT-4가 해결해야 할 과제의 데모 역할을 합니다. 학습 과정을 훈련과 추론 단계로 나눠서 설명하는 것은 아닙니다. 다만, 과거와 현재에 입력된 프롬프트를 진행 중인 대화의 일부로 간주하고 시퀀스에서 다음 단어를 예측하는 것입니다.

ChatGPT는 few shot learning이 얼마나 효율적으로 구현될 수 있는지 보여주는 예시입니다. ChatGPT와 상호 작용할 때, 우리는 대화 프롬프트를 입력합니다. 그러면 모델이 사전 학습 데이터와 함께 이를 처리하여 응답을 생성합니다. 이후에는 각 사용자의 입력과 모델 출력은 대화 기록에 추가됩니다. 모델은 이를 활용하여 관련성 있는 응답을 생성하죠.

하지만 이 방법론의 한계 역시 ChatGPT에서 찾을 수 있습니다. few shot learning은 새로운 작업에 빠르게 적응하는 데는 탁월하지만, 여전히 모델이 사전 학습 단계에서 얻은 지식에 의존하는 경향이 있습니다. 따라서 훈련 데이터 세트에 포함되지 않거나, 훈련 컷오프 이후에 세상에 소개된 주제나 사실(예를 들면, ChatGPT는 2021년 9월 이후의 콘텐츠는 알 수 없죠.)에 대해서는 정확한 답변을 생성할 수 없습니다. 또한, 실제 세계에 대한 이해가 아닌 학습 데이터에서 학습한 통계 패턴에 의존하기 때문에 종종 부정확하거나 오해의 소지가 있는 답변을 생성할 수도 있죠.

결론: 효과적인 Few shot learning 모델을 위해서는 원본 데이터가 중요하다

ChatGPT의 예시를 통해, 우리는 few shot learning이 가지고 있는 근본적인 한계점에 대해 알 수 있었습니다. 양은 적더라도 고품질의 학습 데이터를 확보해야 한다는 점과, 부족한 Sample 학습이 이뤄질 경우 Overfitting(과적합)의 가능성이 높다는 점이죠.

하지만 Few shot learning을 통해 기대할 수 있는 바도 많습니다. 먼저, 훈련 데이터에 지나치게 맞춰져서 새로운 데이터에 일반화하지 못할 가능성을 최소화합니다. 이러한 문제는 모델이 훈련 데이터의 세부 사항에 대해 학습한 뒤, 새로운 데이터의 패턴에 대해 학습하지 못했기 때문에 발생하는 것입니다. 최근 LLM 기반 Generative AI의 눈부신 발전으로 다양한 산업에서 AI 챗봇 등을 도입하는 시도가 많은데 필요한 정확도를 사전에 정의하는 것이 꼭 필요합니다.

결론적으로, 처음 학습한 원본 데이터가 고품질일 경우 초기 학습 단계에서 모델의 정확도를 잡을 수 있기 때문에 few shot learning이 더욱 효과적으로 작용할 수 있습니다. 데이터헌트는 모델이 처음 만나는 데이터의 품질 관리에 심혈을 기울이는 이유도 이와 같습니다.

Few shot learning은 AI가 희소한 데이터나 새로운 작업에 직면했을 때에도 보다 효율적으로 학습하고 적응할 수 있는 미래를 약속합니다. 다만 정확한 의미 표현의 필요성에 주목하고, 편향된 시각을 주의해야 합니다. 하지만 훈련 데이터가 적은 상황에서 새로운 작업을 학습하는 데 유용한 방법론이 될 수 있으므로, 앞으로 연구해야 할 가치는 충분할 것입니다.

요약:

  1. few shot learning은 한정된 샘플로부터 학습할 수 있는 머신러닝 방법론으로, 데이터가 부족한 상황에서 모델이 일반화하여 정확한 예측을 할 수 있게 해주는 방법론입니다.
  2. 이는 몇 장의 이미지만으로 새로운 개체/언어 등을 식별하고, 작업을 수행할 수 있게 해주어 컴퓨터 비전이나 자연어 처리 및 로봇 공학을 포함한 다양한 분야에서 활용하고 있습니다.
  3. ChatGPT의 예시에서 볼 수 있듯이, Few shot learning은 기존 학습 데이터를 기반으로 다음 작업을 수행하기 때문에 원본 데이터의 품질과 정확도를 가져가야만 가장 효율적으로 사용할 수 있습니다.

Talk to Expert