📌 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))$
'WorkOut > LG Aimers' 카테고리의 다른 글
LG Aimers | Linear Regression (선형 회귀) (0) | 2024.07.25 |
---|---|
LG Aimers | LLM (Large Language Models; 초거대 언어모델) (0) | 2024.07.24 |
LG Aimers | Overfitting & Underfitting (머신러닝 과대적합 & 과소적합) (2) | 2024.07.23 |
LG Aimers | Machine Learning 개론 (9) | 2024.07.22 |
LG Aimers | Convex Optimization (볼록 최적화) (6) | 2024.07.22 |