딥러닝에서는 f:X−>Y 를 위한 Function 을 학습하게 되는데, 이 때 올바른 "학습" 을 위한 표본 데이터가 필요합니다. 하지만 딥러닝의 학습에 필요한 다량의 data 를 모두 색인 (annotate) 하기에는 여러모로 비용이 많이 발생하지요. (시간, 비용) 실제로 색인된 다량의 데이터를 찾기도 쉽지 않고요.
따라서, 딥러닝에서는 라벨링이 되지 않은 unlabeled data 를 사용해서 모델을 어떻게 잘 학습 시킬 수 있을지에 대한 연구가 활발히 이루어져왔는데요, Unlabeled data 는 인터넷 상에서도 얻기가 훨씬 쉽다는 점을 생각하면 당연한거겠지요?
이런 관점에서 많이 언급되는 Supervised Learning, Unsupervised Learning, Low-labeled Learning 용어와 기본 개념들에 대해 알아보겠습니다.
Supervised Learning
- Training Input : {X, Y}
- Learning output : f: X -> Y, P(y|x)
- 예시 : classification
- 위에서 보듯이 학습 입력값으로 라벨이 있는 데이터를 주면, 그 데이터의 라벨 (정답값!) 을 참조하여 모델이 학습합니다. 이것이 우리가 가장 많이 듣고 알고 있는 지도학습 (Supervised Learning) 이며, 실제로 정답을 제시해주는 선생님이 있는 학습법이라고 보면 됩니다.
Low-labeled Learning
말 그대로 라벨이 붙은 데이터의 수가 적은 경우 사용하는 학습 방법을 의미합니다. 여기에는 세가지 정도의 학습 방법이 있는데, 이 학습법은 결합하여 같이 사용될 수 있습니다. (e.g. semi-supervised + few-shot learning)
- Few-shot learning : 카테고리 별 1~5개의 예시를 가진 데이터를 가지고 신규 카테고리의 데이터에 대해 일반화할 수 있도록 모델이 feature representation을 학습하도록 하는 방법 (no unlabeled data)
- Semi-supervised learning : 대략 10개 정도의 labeled data 와 unlabed data 로 학습
- Self-supervised learning : Unsupervised learning 에 가까운 형태로, unlabeled data 에 대해 feature representation 을 학습 (Unsupervised Learning 과는 다름)
Unsupervised Learning
- Input : X => Input 에 정답값/라벨 (Y) 없이 Unlabeled data 인 X 만 입력값으로 feed
- Learning output : P(x)
- Comparing/Grouping/Representation Learning
- 예시 :
- Modeling P(x)
- Density estimation : input space 에 대한 확률 분포 P(x) (probability distribution)
참고 : 데이터 라벨에 대한 분포가 아니라 입력 데이터 자체에 대한 확률 분포
- 딥러닝에서는 Deep Generative Models 로 활용
- 비교/그룹핑
- Clustering : 유사한 데이터끼리 그룹핑/클러스터링 (Euclidean distance, metric learning)
- 딥러닝에서는 메트릭 학습 & 클러스터링을 주로 사용
- Representation learning
- PCA (Principal Component Analysis :represenetaion learning (의미 있는 representation 만 남기고 차원 축소)
- 딥러닝에서도 비슷하게 사용
- Self-supervised learning 과는 다른다는 점을 유의해주세요.
- 딥러닝에서도 위의 예시가 비슷하게 적용되지만 주로 feature learning (Encoder 에서의 학습)에 집중합니다.
딥러닝에서 많이 사용되는 Low-labeled Learning 에 대해서는 다음 포스팅에서 더 자세하게 알아보겠습니다.
좋은 정보 감사합니다