본문 바로가기
  • 適者生存
WorkOut/LG Aimers

LG Aimers | Supervised Learning (지도학습)

by lcrvvxln 2024. 7. 24.



📌 Supervised Learning

 

어떤 문제와 그에 대한 정답이 있을 때 문제와 정답 쌍을 다양하게 제공하는 형태로 학습 진행

Image Classification, Text Classification, Next Word Prediction, Translation, Price Prediction 등

 

 

Supervised Learning

 

Data : $x \in X$ usually a vector (대부분 다차원 벡터)

Label : $y \in Y$ (카테고리, 실숫값 등)

▶ Unsupervised Learning 과의 가장 큰 차이점

 

Dataset

$(x^{(1)}, y^{1}), (x^{2}, y^{2}), ... (x^{n}, y^{n})$

 

 

 

Image Classification

 

Input : 이미지 ▶ 32*32*3(RGB) 픽셀값으로 이루어진 벡터

Output : 이미지 클래스 中 하나로 분류 (1~10까지 정수 집합)

 

 

Text Classification

 

리뷰 Positive / Negative 판단

 

Input : 영화 리뷰 (자연어를 vector로 치환) 

Ouput : 긍정 / 부정 (+1/-1)

 

 

Next Word Prediction

 

Input : 문장의 일부분 (앞부분)

Output : 뒤에 오게될 단어 벡터들 

 

 

Translation

 

Input : 번역할 문장의 벡터 변환

Output : 대응되는 언어의 벡터 혹은 벡터들의 수열

 

 

Price Prediction

 

Input : e.g. 지난 열흘간의 주가 차트 가격 정보 ▶ 10차원 숫자 벡터

Output : 실수  y 예측값 

 

 

 

Before Machine Learning

 

 ✅ 기존 접근 방식

  • 전문가의 전문 지식, 경험에 의존하여 규칙 파악하여 알고리즘 구현
  • 예외 조항과 데이터의 다양성으로 한계 존재

 

 ✅ Machine Learning 

  •  데이터를 주고 알고리즘이 규칙을 판단하게 도와주는 학습 방식 

 

 

 

Machine Learning

 

직접적인 지시 없이 컴퓨터 혹은 알고리즘이 스스로 학습하여 규칙을 파악하도록 하는 방식

 

2가지로 분류 

  • Classification (분류) : 정답 범위는 정해져 있고 주어진 보기에서 맞히는 문제
  • Regression (회귀) : 정답이 숫자 혹은 연속적 실수 변수로 표현되는 경우

 

Q. 문장 번역 혹은 다음 단어 예측은 분류 or 회귀?

A. Classification으로 분류

 

▶정답이라고 부를 수 있는 한글 조합 혹은 문자 조합이 정해져 있기 때문 (=무한하지 않음)

 

 

 

 

 

Unsupervised Learning 

 

정답 쌍 없이 데이터 입력값만 주어지고 데이터에 대한 지도나 감독이 없는 방식

▶ 이 데이터를 가지고 무엇을 할 수 있을까? 

 

 

 

 

Supervised Learning : Setup

 

True function(정답 함수) :  $f^*$,      $f^*(x^{i}) = y^{(i)}$ 

 

▶ 모든 입력값을 보고 정답을 분류할 수 있는 함수  

▶  n개의 데이터쌍 $x^{(1)}, y^{(1)}$ ~ $x^{(1)}, y^{(1)}$ 이 있을 때, 각각의 문제와 정답을 정확하게 맵핑할 수 있는 함수

 

 

 ✅ 목표

 

$g(x) \approx f^*(x)$

 

▶ 모델 g(x)를 정답 함수에 최대한 가깝게 만드는 것

 

 

Function class : $\mathcal{G}$

 

▶ 가능한 함수 $\mathcal{G}$에서 어떤 함수가 제일 좋은지 찾아야 함

▶ 너무 많은 자유도가 주어지면 어려워지기 때문에 함수 집합을 정해 후보군 추리기

 

 

✅ Goal

 

$g_\theta (x) \approx f^*(x)$   ,   $g_\theta \in \mathcal{G}$

 

  모든 함수가 아닌 $\mathcal{G}$ 클래스 안에 속한 $g_{theta}$ 중에서 $f^*$를 가장 잘 근사하는 함수 탐색

 

 

 

Approximate well?

 

함수의 유사성

모든 입력 x에 대해 추정 함수와 정답 함수가 비슷해야 함

 

$g_{theta}(x) \approx f^*(x)$

 

 

세상의 모든 데이터에 테스트는 어렵기 때문에 주어진 데이터 $(x^{(1)}, y^{(1)}) ~ (x^{(n)},y^{(n)})$ 에 대해 일치

 

 

🔎 가정

 

1) 정해진 함수 클래스 中 선정

2) 세상의 모든 입력이 아닌 주어진 데이터 안에서 함숫값 2개 비교 

3) 주어진 데이터 쌍들에 대해 함숫값 비교 

 

$g_{\theta}(x^{(i)}) \approx f^*(x^{(i)}) = y^{(i)}$

 

4) loss function을 통해 비교 

 

 $g_{\theta} (x^{(i)})$ 를 보고 모델 예측값과 $f^*$의 정답 $y^{(i)}$의 유사도 정의

▶ Mean-Squared Error, Cross-Entropy, L1 ... 등 다양하게 적용 가능

 

Pointwise Loss : $l(g_{\theta}(x^{(i)}), y^{(i)})$

▶ 하나의 데이터 포인트 $(x^{(i)}, y^{(i)})$에 대해 어떤 손실이 발생하는지 계산

 

총 n개의 데이터 존재이므로 Pointwise Loss의 총합 or 평균값이 손실함수

 

 

Loss : $\mathcal{L}(\theta) = \sum^n_{i=1} l(g_{\theta}(x^{(i)}) y^{(i)})$

 

 

 

✔️ 정리

  • 주어진 n개의 데이터 셋
  • 데이터 셋 모사 함수는 세상의 모든 함수가 아닌 함수 클래스 $\mathbb{G}$내로 정의 
  • 함수 클래스 중 가장 훌륭한 함수 탐색 ( = 정답 함수와 유사한 함수)
  • 유사도는 Pointwise Loss 함수를 정의하고 데이터 포인트에서 모델과 실제 정답 비교 후 총합
  • 최종적으로 $\mathcal{L}(\theta)$를 가장 작게 만드는 $g_{\theta}$를 찾는 과정

 

 

Linear regression example

 

키가 주어져 있을 때, 몸무게를 맞히는 문제

 

키 : $x \in \mathcal{X} =  \mathbb{R}$ 

몸무게 : $y \in \mathcal{Y} = \mathbb{R}$ 

 

선형적인, 양의 상관관계(=positive correlation)를 가지는 데이터 셋 

x와 y는 1차원 벡터가 아닌 스칼라값

 

 

$\mathbb{G} = {g_{a,b} (x) = ax+b}$

선형함수(ax+b) 중에서 데이터의 관계를 가장 잘 설명하는 것이 무엇인지 질문

 

 

$\theta = (a, b)$

$\theta$ 파라미터로 인덱싱

 

 

∴ 모든 선형함수는 ax + b 꼴로 표현 가능, 선형 함수를 찾는 것은 계수인 (a, b)를 찾는 문제

 

선형 함수로 클래스가 좁혀짐

 

 

Loss function

 

모델과 실제 데이터 사이 오차를 분석해서 $g_{\theta}, f^*$ 유사도 분석 평가 방식

 

$l(g_{\theta}(x^{(i)})), y^{(i)})$

 

$=(g_{\theta}(x^{(i)}) - y^{(i)})^2$  =  $((ax^{(i)}+b) - y^{(i)})^2$

 

 

▶ Pointwise Loss 고려 시, x 입력에 따른 모델 예측 y값과 실제 y값 사이의 오차 제곱

▶ 모든 데이터의 Pointwise Loss 값을 더한 값이 최종 Loss 값 (=Mean-Squared Error)

 

 

 

Solve Linear Regression

 

1. 함수 클래스를 Linear 범위로 좁히기

2. 모델과 데이터 사이 Pointwise Loss 를 Mean-Squared Error로 정의

3. 문제 풀기

 

 

$\mathcal{L} (\theta) $ ▶ $\theta = (a, b)$

  • 함수 찾기 문제는 계수 a, b를 찾는 것과 동일
  • loss 함수 전개 시, a와 b에 대한 이차식으로 정리
  • a, b 각각을 미분해서 0이 되는 지점 탐색, 각각 a와 b에 대한 일차식

 

a와 b에 대한 연립방정식 문제로 치환해서 해결 가능

 

 

$\triangledown L(a,b) = ( \frac {\partial L}{\partial a}, \frac{\partial L}{\partial b})$

 

 

$\triangledown L(a,b) = (\frac{2}{3} (aS_{xx} + bS_x - S_{xy}), \frac{2}{3} (aS_x + 3b - S_y))$