본문 바로가기
머신러닝딥러닝/딥러닝

Supervised Learning, Unsupervised Learning, Semi-supervised Learning 지도학습 , 비지도학습, 반지도학습 개념과 예시 알아보기

by orangecode 2023. 12. 5.
728x90
지도학습
Supervised Learning

 

Supervised Learning 지도학습이란 라벨이 지정된 데이터셋을 준비하여 학습시키는 걸 말한다.

 

데이터셋의 class마다 정확한 라벨이 지정되어 있어, 정답지가 있는 상태에서 학습을 진행하며

각 class별 데이터의 특성이나 패턴을 분석하여 분류나 회귀 문제를 해결한다.

 

Supervised Learning에서는 input data를 학습시켜 출력함수에서 올바른 출력(정답)을 낼 수 있도록 하는 출력값을 학습하는 것이다.

 

대표적인 지도학습 예시로는 스펨 메일 예측(분류)하기, 부동산 가격을 토대로 주택가격 예측(회귀) 등이 있다.

 

 

지도학습을 그림으로 표현한 것이다.

 

지도학습에서는 input data로 apple image를 학습하고, annotation으로 'apple'이라고 알려준다.

 

model이 이를 학습하고 apple로 test를 했을 때, apple이라고 정답을 예측하는 것이 지도학습이다.

 

Unsupervised Learning

 

Unsupervised Learning 비지도학습이란 지도학습과 달리 정확하게 라벨이 지정되거나 정의되지 않아 출력 값을 제공하지 않는 데이터를 학습하는 것이다.

 

정답 값이 없기때문에, 출력값을 찾을 수 없어 주어진 데이터 내에서 패턴, 관계, 특성을 추출하여 클러스터링(군집)화 하여 정답이나 구조를 찾으려 하는 학습을 말한다.

 

대표적인 비지도학습의 예시로는 군집 분석, 차원축소 등이 비지도 학습 작업의 예시로 들 수 있다.

 

군집 분석은 유사한 데이터들의 포인트를 찾아 그룹화하는 작업이며,

차원 축소는 중복되거나 부족한 특징을 제거하고 데이터가 분류되는 필수 정보만 남기는 걸 말한다.

 

차원축소를 통해 모델 단순화, 성능 향상,  PCA / T-SNE 등을 이용한 차원 시각화도 가능하다.

 

비지도 학습은 위 그림처럼 input data만 존재하고, annotation은 없는 데이터세셋을 학습하여

데이터 그룹화 또는 군집으로 데이터 구조를 식별하는 학습법입니다.

 

예를 들어, 사과, 오렌지, 바나나를 구분해야하는 데이터를 input data로 주었을 때 모델은 과일의 모양, 크기, 색상 등을 기준으로 사과, 오렌지, 바나나를 클러스터링 합니다.

 

새로운 오렌지를 가져와 입력했을 때, 기존 오렌지 데이터와 유사성을 찾아 오렌지 클러스터에 속하면 오렌지라고 인식합니다.

Semi-Supervised Learning

 

Semi-Supervised Learning 반지도학습이란 지도학습과 비지도학습을 조합한 학습법이다.

 

데이터에 라벨이지정된 데이터와 지정되지 않은 데이터가 모두 포함되어 있는 데이터를 사용한다.

 

모델을 학습할 때 라벨이 지정된 데이터부터 학습하며, 라벨링되지 않은 데이터를 추가적으로 활용하여 성능을 향상하는 것을 목표로 향상한다.

 

Semi-Supervised Learning은 데이터를 얻는데 비용과 시간이 많이 드는 학습에 이용된다.

 

대표적인 반지도학습의 예시로는 제한된 라벨을 이용한 문서 분류, 부분 음성인식 데이터 분류 등에 이용할 수 있다.

 

 

 

Semi-Supervised Learning 반지도학습은 사과, 오렌지, 바나나가 있는 데이터에 오렌지와 바나나만 label 작업을 수행하고 사과는 라벨링 작업을 수행하지 않은 상황을 가정해보자.

 

모델은 새로운 사과를 바나나와 사과 모두 아닌 'unknown'으로 분류하게 되는데, 'unknown'을 사과 라벨을 사용해 모델을 재학습시키면 사과, 오렌지, 바나나를 학습한 분류 모델을 완성시킬 수 있다.

 

 

Semi-supervised Learning 작업 원리 및 순서

 

1. 적은 양의 라벨링된 데이터를 이용해 모델을 훈련한다. 

모델이 정확한 결과를 제공할 때까지 train을 진행한다.

 

2. 라벨링이 되어있지 않은 데이터셋을 훈련한다.

라벨링이 되어있지 않으므로 결과가 부정확하게 학습될 수 있다.

 

3. 라벨링 데이터와 비 라벨링 데이터를 연결한다.

 

4. 라벨링 데이터와 비 라벨링 데이터를 합한 데이터를 입력으로 모델을 다시 train한다.

해당 train으로 오류율을 줄이고 모델 정확도를 향상시킬 수 있다.

반응형

댓글