mojo's Blog

Steps of Supervised Learning 본문

머신러닝

Steps of Supervised Learning

_mojo_ 2023. 3. 14. 23:02

※ Three steps in Supervised Learning

 

 

1. 데이터를 수집하는 단계(Labelled Data)

     x와 y의 쌍 (x, y) 으로 구성된 데이터를 구축 

     x에 대응되는 y라는 레이블을 수집하는 labeling 작업을 거친다.

 

2. 모델 선택 단계(Model with tuneable parameters)

     모델은 학습하고자 하는 parameter가 존재한다.

     parameter를 학습하는 방법은 주어진 x, y의 숨겨진 관계를 찾는 최적의 parameter를 찾는 과정이다.

 

3. 알고리즘 최적화(Optimization algorithm)

     x와 y 관계를 잘 표현하는 cost function 또는 error function 를 최적화하는 방향으로

     우리가 원하는 parameter를 결정한다.

 

4. 훈련된 모델(Trained Model)

     새로운 데이터에서 inference 를 수행하는 과정이 이뤄진다.

 

 

Step 1: Collecting Data & Extracting Features

 

- Crowdsourcing has been widely used for labeling data.

 

Supervised Learning 에서 반드시 필요한 작업이다.

비용이 많이 들 수 있지만, X와 Y의 관계에서 Y가 존재하지 않는 이상 학습을 수행할 수 없다.

따라서 Y라는 레이블을 얻는 과정이 필수적이므로 데이터를 수집하는 것은 필수이다.

 

- Feature vectors are extracted from data.

 

주어진 X라는 데이터를 어떻게 잘 표현할지가 매우 중요한 작업이다.

 

 

Step 2: Choosing a ML Model

 

- Logistic regression, Support vector machine (SVM)

- Decision Tree, Random forest

- Nearest neighbor

- Neural network, Multilayer perceptron (MLP), ...

 

주어진 데이터에 대해 어떤 모델이 항상 좋다고는 할 수 없다.

각각의 주어진 데이터 특성에 따라 다르다.

많은 데이터 분석의 경험을 통해서 상대적으로 데이터가 많다면 parameter가 많은 모델이 더 효과적이다.

 

 

※ Step 3: Optimizing Parameters

 

- Finding the optimal parameter that describes a given data

 

 

예를 들어 위와 같이 x와 이에 대응되는 y라는 continuous value의 형태인 y라는 레이블을 예측하는

임의의 regression 모델을 학습한다고 해보자.

처음에는 임의의 w 값 \((w_{1}, w_{2}, w_{3})\) 을 (1.0, 1.0, 1.0) 와 같이 입력할 수 있다.

w 값을 넣으면 위와 같이 임의의 빨간색 모델이 결정될 수 있다고 볼 수 있다.

 

 

따라서 w 값을 조정하여 주어진 데이터를 위 처럼 좀 더 잘 표현하는 모델을 결정할 수 있게 된다.

w에 따라서 주어진 모델의 모양이 다른데 여러 개의 모델 중 과연 어떤 w가 주어진 데이터를 가장 잘 표현하는지

결정할 수 있는 지표가 필요하다.

 

- Minimize the error between f(x) and y.

 

f(x)와 주어진 y간에 error를 최소화하는 임의의 함수를 결정하는 문제가 된다.

regression 문제에서는 다음과 같이 cost function 또는 error function 을 정의한다.

\( Error(w) = \sum_{(x, y)\in Data}^{} (y - f(x; w))^{2} \)

 

위 식은 주어진 어떤 x라는 입력 값을 넣었을 때, x를 통해 실제 예측된 값과 실제 값의

차이의 제곱이라고 볼 수 있다.

이러한 차이의 제곱이 모든 데이터에 대해서 다 더한 결과라고 볼 수 있다.

따라서 최고의 모델을 찾는 것은 error function을 최소화하는 w를 결정하는 문제를 해결하는 것이다.

이러한 문제를 optimization problem 이라고 부른다.

 

 - How to solve this problem?

 

크게 2가지 솔루션이 존재한다.

첫 번째는 analytic solution 으로 주어진 방정식을 수학적으로 풀어서 최적의 해를 찾는 방법이다.

두 번째는 numerical solution 으로 주어진 함수에 대해 최적화를 찾지 못할 때 수치적인 방법으로

근사해를 찾는 방법이다.

 

- Inferring y from x using the learned model

 

 

w를 위와 같이 결정하여서 최적의 해를 찾았다고 하면 위에 그려진 선이 학습된 모델이라 볼 수 있다.

기존에 학습되어졌던 트레이닝 데이터를 다 무시해도 된다.

이 함수를 통해 새로운 데이터가 들어왔을 때, 그 데이터에 대응되는 y값을 예측할 수 있게 된다.

이와 같은 예측 과정을 prediction 또는 inference 라고 얘기한다.

 

Simple Optimization Examples

 

It is a little difficult to solve.

 -> Finding \(w_{1}, w_{2}, ..., w_{m}\) which minimize the error function:

     \(E(w_{1}, w_{2}, ..., w_{m}) = \sum_{(x, y)\in Data}^{} (y - f(x; w_{1}, w_{2}, ..., w_{m}))^{2}\)  

 

주어진 y와 x에 의해 임의의 모델이 결정이 된다.

이 모델에서의 parameter가 \(w_{1}\) 에서 \(w_{m}\) 까지 총 m개의 parameter가 존재하는 모델이라 가정하고

이 f(x)에서 w 값을 잘 조정하면서 error function을 최소화하는 문제를 해결하는 것이 최적화 문제이다.

 

Instead, we first solve an easy problem.

 -> Finding w which minimizes the following error function:

      \(E(w) = w^{2} + 2w - 3\)

 

위 error function은 2차 함수이다.

중학교때 2차 방정식의 최소값을 찾는 문제로 볼 수 있다.

 

We can easily find the minimum.

 - The minimum exists where the slope of curve is 0.

 - First derivative of function = the slope of curve

 - Set the first derivative to 0, solve for w.

 

결국 2차 함수의 경사면이 0인 지점이라 볼 수 있다.

주어진 함수를 1차 미분하였을 때 미분 값이 0 이 되는 지점이다.

\(df(w)/dw = 2w + 2\) 이므로 \(w = -1\) 이 된다.

\(w = -1\) 일 때 error function 을 최소화하는 것으로 볼 수 있다.

 

Quadratic function with two variables

\(f(w_{1}, w_{2}) = w_{1}^{2} + w_{1}w_{2} - 2w_{1} - w_{2}^{2}\)

 

f(w) is the minimum, where the derivative of f(w) is zero in all directions.

It is still simple enough that we can find minimum directly.

 

마찬가지로 주어진 함수에 대해 \(w_{1}\) 에 대해서 편미분을 하고 \(w_{2}\) 에 대해서 편미분을 한 뒤

각각의 편미분한 값이 0이 되는 \(w_{1}\) 와 \(w_{2}\) 을 찾으면 된다.

\(f(w_{1}, w_{2}) = w_{1}^{2} + w_{1}w_{2} - 2w_{1} - w_{2}^{2}\)
\(\bigtriangledown f(w_{1}, w_{2}) = [2w_{1}+w_{2}-2, w_{1}-2w_{2}]\)

 

Set both elements of the derivate to 0.

Give two linear equations in two variables. (중학교때 배웠던 연립방정식)

Solve for \(w_{1}, w_{2}\)

\(2w_{1} + w_{2} = 2, w_{1} - 2w_{2} = 0\)
\(w_{1} = 4/5, w_{2} = 2/5\)

 

위와 같이 연립방정식을 해결하면 구할 수 있다.

 

Simple Linear Regression

 

Finding a linear model that fits a given data

 

 

위 모델은 세 개의 데이터가 주어진 상태에서 세 개의 주어진 점들을 잘 지나는 \(w_{1}x + w_{0}\) 라는

선형회귀모델에서 \(w_{1}\) 과 \(w_{0}\) 을 찾는 문제를 살펴본다.

Error function 을 통해 가장 최적의 선을 찾는 문제를 최적화 문제를 통해 해결하는 것이 목적이다.

 

 

Error function 은 모든 데이터의 주어진 y와 예측한 y의 차이의 제곱의 합이다.

보통 주어진 y와 예측한 y의 차이를 residual 이라고 표현한다.

또는 sum 이나 minimum least square 라고도 표현된다.

 

 

결국 세 점을 넣으면 두 개의 변수로 표현된 error function 은 위와 같이 나오게 된다.

 

Finding \(w = (w_{0}, w_{1})\) that minimize \(E(w_{0}, w_{1})\)

 

\(E(w_{0}, w_{1}) = 2w_{1}^{2} + 3w_{0}^{2} - 6w_{1} - 6w_{0} + 4w_{1}w_{0} + 5\)
\(\bigtriangledown E(w_{0}, w_{1}) = [4w_{1} + 4w_{0} - 6, 4w_{1} + 6w_{0} - 6]\)
\(w_{0} = 0.0, w_{1} = 1.5\)

 

위에서 구한 \(w_{0}, w_{1}\) 의 값은 error function과 실제 y의 차이 부분을 최소화하는 값이다.

 

 

기본적으로 \((1.0, 1.0), (1.0, 2.0)\) 에 대해서는 오차가 존재하기는 하지만,

각각의 오차를 최소화하는 방향의 임의의 직선을 찾은것이라 볼 수 있다.

 

'머신러닝' 카테고리의 다른 글

Classification Problem  (0) 2023.03.19
Linear Regression Models  (0) 2023.03.19
Gradient Descent Method  (0) 2023.03.16
Deep Learning Basic  (0) 2023.03.14
Basics of Machine Learning  (0) 2023.03.12
Comments