언제할까?
최근 다양한 도메인에서 머신러닝이 활용되고 있다. 머신러닝의 문제점은 training data 가 필요하다는 것이다.
현실에서는 label 이 있는 데이터를 수집하기 어렵거나 높은 비용이 요구되는 상황이 많다.
semi-supervised learning 이러한 상황에서 전체 데이터의 일부에만 label 이 있을 때 사용한다.
왜할까?
semi-supervised learning 의 핵심 과정 중 하나는 unlabled data 를 labled data 로 변환하는 것이다. (이를 pseudo-labeling 이라고 한다.) 그런데, 전체 데이터의 일부에 lable 이 있다고 하면, 그 데이터를 training 데이터로 모델을 만들면 안 되는가?
위 그림을 보면, 소수의 labeled data 로 만든 decision boundary 보다 unlabled data 를 사용한 것이 더 세밀하다는 것을 직관적으로 알 수 있다. 즉, 더 많은 데이터들에 대한 generalization 이 잘 된다는 것이다.
semi-supervised learning 의 이점
- labled data 와 unlabled data 를 combine 하는 것은 accuracy 를 상승시킨다. (may be due to generalization)
- unlabled data 를 획득하는 것은 상대적으로 cheap 하다. -> 잘만 되면 더 비용효율적이다.
semi-supervised learning 의 가정
1) Continuity / smoothness assumption
"다차원 공간 상에서 가까운 거리에 있는 샘플들은 labeld 이 아마 같을 것이다." 라는 가정이다. 이는 지도학습에서도 마찬가지로 있는 가정이다. 다만 semi-supervised learning 에서는 가까운 거리에 있는 샘플들은 예외 없이 같은 label 이 된다. 라는 점이 다르다.
2) Cluster assumption
"데이터는 클러스터를 형성할 것이며, 같은 클러스터에 속한 샘플은 같은 label 을 공유할 가능성이 높다"라는 가정이다. (같은 label 을 가진 샘플들이 다양한 클러스터에 존재할 수는 있다.) 이는 clustering 알고리즘에서의 smoothness assumption 으로 볼 수 있다.
3) Manifold assumption
"고차원 공간의 데이터를 저차원 공간에 표현할 수 있다." 라는 가정이다. 이는 모델링에서는 당연한 가정이라고 볼 수 있다. 예를 들어, 수많은 피쳐 x 를 통해 하나의 y를 예측하는 과정이니 말이다. manifold assumption 성립하지 않으면 예측이 불가능하다고 볼 수 있다.
pseudo-labeling
labeled data 를 통해 unlabled data 를 labled data 로 변환하는 것을 말한다.
Active Learning
labeled data 를 주어진대로만 사용하지 않고, 재구성하는 전략을 말한다.
가장 성능을 높이는데 효과적인 샘플 (labeled or unlabeld) 에 대해 labeling 을 수행하는 전략이다.
- supervised learning 에서 학습이 잘되는 일부 labeling data 만 사용할 수 있다.
- semi-supervised learning 에서 pseudo-labeling 하는 것도 active learning 의 일종이다.
Margin sampling
margin sampling 은 active learning 의 예시로 decision boundary 를 효율적으로 찾는 방법중 하나로 가장 애매한 (uncertain) 샘플을 labeled data 로 변환해 나가면서 decision boundary 를 업데이트 해나가는 방법이다. 아래와 같이 random 하게 업데이트 하는 것보다 빠르게 클래스를 잘 분류할 수 있는 boundary 를 찾을 수 있다.
Weak supervision
ground truth label 이 없을 때, subject matter expert (SME) 가 휴리스틱한 방법으로 labeling 하는 것을 말한다.
만약 이 방법으로 어떤 샘플이 A 레이블에 할당되었다고 하더라도, 실제로는 A 레이블이 아닐 가능성을 갖고 있다.
이를 noisy label 이라고 한다.
Snorkel
스탠포드에서 2016년에 개발되었다. manual labeling 을 줄이는 방법으로 training data 를 구축하기위한 라이브러리이다. snokel 은 weak supervision 상황을 해결하는 것을 돕는다.
semi-supervised learning 의 분야
semi-supervised learning 의 핵심과정인 pseudo-labeling 을 어떻게 수행할 것인가?
단순히 model prediction 을 통해 pseudo-labeling 을 하는 것보다 성능이 좋은 다양한 방법론들이 존재한다.
위 분류에서는 semi-supervised learning 을 크게 transductive 와 inductive로 나눈다. [1]
ㄴ transductive 와 inductive 의 차이를 데이터 과점에서 본 포스팅 (link)
참고자료 [2] 에서는 1) graph-based 방법과 2) consistency-based 방법으로 나누기도했다. Graph-based method은 대표적으로 Label propagation 방법이 있다. consitency-based method 는 최근 각광받고 있는 방법으로 Mixmatch 를 예로 들 수 있다.
참고자료
[1] Van Engelen, Jesper E., and Holger H. Hoos. "A survey on semi-supervised learning." Machine Learning 109.2 (2020): 373-440
[2] https://www.youtube.com/watch?v=coezwQw6my0
'Data science > Machine Learning' 카테고리의 다른 글
t-SNE 의 개념 및 알고리즘 설명 (1) | 2022.09.11 |
---|---|
Positive-unlabeled learning 기초 개념 (0) | 2022.08.05 |
Scikit-learn Gradient Boosting 모델 예측값이 매번 달라지는 문제와 해결 (0) | 2020.01.30 |
구글 번역기의 놀라움 (0) | 2020.01.27 |
One shot learning, Siamese Network 이해 (1) | 2019.12.31 |