Few-shot Learning이란?
훈련 데이터(train data)의 수가 매우 제한적인 상황에서 모델을 개발하려는 기술 혹은 알고리즘을 의미합니다. 즉, 상대적으로 적은 훈련 데이터에서도 새로운 입력 값으로 주어지는 데이터(unseen data)를 잘 인식하고 분류하고자 하는 것입니다. 매우 많은 데이터로 모델을 구축하는 전통적인 인공지능 트랜드와는 달리, 매우 적은 데이터에서도 모델을 잘 구축하는 것이 핵심이라고 할 수 있습니다.
등장 배경
학습 데이터가 적은 상황에서는 딥러닝 모델의 구축 자체에 어려움이 있었고, 몇 장의 사진만을 보고 직관적으로 분류할 수 있는 사람과는 달리 인공지능 모델은 적게는 수천 개, 많게는 몇 십만 개에 달하는 사진이 필요했습니다. 이에 인공지능 개발자들은 소량의 데이터(few-shot)만으로 학습해도 좋은 성능을 내는 모델을 만들고자 했습니다. 이것이 few-shot learning의 등장배경이라고 할 수 있습니다.
학습방법
Few shot learning의 목적은 적은 데이터로 추론(inference)이 가능하게 하는 것입니다. 이 방법으로 고안된 학습 방법이 메타 학습(Meta learning)과 전이 학습(Transfer learning)입니다
메타 학습(Meta learning)
Meta learning은 학습하는 방법을 학습합니다. 이는 여러 개의 task를 동시에 학습하고 각 task간의 차이도 학습하며 이루어집니다. 전체 학습 이후에 적은 데이터(few-shot)로도 추론할 수 있는 범용적인 모델을 생성하게 됩니다.
$\theta$를 사전학습모델의 파라미터, $D_i^{tr}$를 i번째 task를 위한 훈련 데이터라고 할때 Meta learning의 목표는 $\theta$의 적은 업데이트만으로도 각각 task의 최적의 파라미터 $\phi$를 구할 수 있게 하는 초기 파라미터 $\theta$를 최적화(oprtimization)하는 것입니다. 즉, 새로운 테스크를 위한 최적의 초기 $\theta$를 구하는 것입니다. 이는 아래의 공식으로 표현할 수 있습니다.
$$min \ \theta \sum_{task\ i} L( \theta - \alpha \nabla_{\theta}L(\theta, D_i^{tr}), D_i^{ts})$$
Meta Learning에 대한 전체적인 프로세스는 아래의 Fig2.와 같습니다.
전이 학습(Transfer learning)
Transfer learning은 높은 정확도를 비교적 짧은 시간 내에 달성하고자 합니다. 따라서 사전학습된 모델(pre-trained model)을 가져와서 주어진 목적에 맞게 fine-tuing을 시킵니다.
$\theta$를 사전학습모델의 파라미터, $D^{tr}$을 새로운 테스크를 위한 훈련 데이터라고 할때 Transfer learning의 목표는 새로운 테스크를 위한 최적의 $\phi$를 구하는 것입니다. 이는 아래의 공식으로 표현할 수 있습니다.
$$\phi\gets \theta - \alpha \nabla_{\theta}L(\theta, D^{tr})$$
Transfer Learning에 대한 전체적인 프로세스는 아래의 Fig3.와 같습니다.
'인공지능(AI)' 카테고리의 다른 글
[ML] 사이킷런 클래스 SGDClassifier : 선형분류 (0) | 2021.10.06 |
---|---|
[ML] 모델 성능을 측정하는 네가지 지표 (0) | 2021.06.04 |
[ML] 은닉 마르코프 모델 : Hidden Markov Models(HMM) (0) | 2021.03.18 |