JINWOOJUNG

[ ML & DL 1] Introduction to Supervised Learning 본문

Machine Learning

[ ML & DL 1] Introduction to Supervised Learning

Jinu_01 2024. 11. 22. 23:23
728x90
반응형

본 포스팅은 서울대학교 이준석 교수님의 M3239.005300 Machine Learning & Deep Learning 1을 수강하고

정리 및 공부를 위한 포스팅입니다.

 


 

Artificial Intelligence(AI)

Artificial Intelligence

  • intelligence of machines or software
  • 사람이 만들어낸 지능

 

Intelligence

  • ability to perceive
  • applied to adaptive behaviors
  • 세상을 인지할 수 있는 능력, 이를 바탕으로 적응적인 행동을 결정

 

(Statistical) Machine Learning

  • field of study in artificial intelligence
  • 사람의 개입(가르침, explicit instructions)을 최소화 하여 데이터로부터 배우고, 새로운 데이터에 일반화된 예측이나 결정을 내릴 수 있는 기술

 

Deep Learning

  • DNN을 이용한 Machine Learning
  • Deep Neural Network(DNN)은 Neural Network를 여러 층으로 쌓은 형태

 


Supervised Learning

Supervised Learning

  • 지도 학습
  • Data와 Label 쌍을 이용하여 학습하는 방법

 

Unsupervised Learning

  • 비지도 학습
  • Label이 없는 Data로부터 모델이 스스로 패턴을 학습하는 방법

 

Machine Learning에 대해서 조금 더 살펴보자. 

 

다음과 같이 TV, Radio, Newspaper의 광고 예산에 따른 Sales(매출)을 예측하는 Task를 생각 해 보자. Linear Regression(선형 회귀)로 TV, Radio, Newspaper와 Sales의 관계를 모델링한다고 가정하면, 다음과 같은 모델을 생각할 수 있을 것이다. 

 

Salesf(TV,Radio,Newspaper)

 

몇가지 Notation을 정의하면, Sales는 우리가 예측하고자 하는 Target(Response) Variable로, y로 표현한다. 그리고 TV, Radio, Newspaper 각각을 Input(Feature)라 하며, x1,x2,x3로 표현할 수 있다. 그러면 모든 input을 포함하는 input vector x는 다음과 같이 표현할 수 있다.  

 

 

이때, R3는 3차원 실수를 의미하며, 현재 input vector x에는 3개의 input이 포함되어 있기 때문이다.

 

최종적으로 우리의 Model f는 다음과 같이 표현할 수 있다. 

y=f(x)+ϵ,f:R3R

 

3개의 Input을 가지는 Input Vector x를 입력받아서 1차원 실수값인 y를 추정하는 Model f이며, 이때 ϵx와 독립되는 측정 에러이다. 측정 에러란, 실제 데이터를 취득하는 과정에서 얻어지는 에러값을 의미한다.

 

Regression Function f(x)가 좋은 regression function이라면, Input Vector x의 각 Input은 y를 의미있게 설명하는 즉, y를 결정하는데 중요한 Input일 것이다.

 

또한, 다음과 같이 Data가 취득되었다고 가정하자.

 

동일한 Input x = 4에 대하여 y가 다수가 존재한다면, 좋은 f(x)는 어떤 하나의 y를 반환해야 할까? x가 4일 때 가능한 y의 평균을 반환한다면 우리는 f(x)가 좋다고 할 수 있을 것이다. 이는 f(4)=E(y|x=4)로 표현할 수 있으며, 이때 E는 Expected Value(기댓값, 평균)이라고 한다. 단순히 x가 4일 때 뿐만 아니라 모든 input에 대하여 동작하는 Ideal Regression Function f(x)를 찾는것이 목적이다.

 


Machine Learning 기반의 Supervised Learning Framework

 

Step 1. Design the form of our model

 

Model은 크게 Parameteric Model과 Non-parameteric Model로 구분할 수 있다.

 

Parameteric Model은 유한한 Parameter를 가지는 Input Features x와 Output y의 관계로 정의할 수 있다. 앞서 선형 회귀 모델을 가정하였으므로, 해당 모델 fL(x)를 살펴보면 다음과 같다.

fL(x)=β0+β1x1+β2x2+βpxp

 

fL(x)는 Input values(x1,x2,,xp)가 p+1개의 Parameter를 Weight로써 가지는 선형합으로 표현된 형태이다. 여기서, β0는 Bias를 의미한다.

 

 

왼쪽은 Ground Truth f이다. 다양한 Education Level, Seniority에 따른 Income을 나타내고 있다. 우리는 이 f를 모르므로, Parametric Linear Regression Function f(x)를 선정하여야하고, 이는 오른쪽 상단처럼 설계할 수 있다. 즉, Parametric Model은 이처럼 Parameter가 명시적으로 보이는 모델이다. 

 

Non-parameteric Model은 Model의 형태를 명시적으로 가정하지 않는다. 내가 가지고 있는 Data와 비교하여 새로운 Input과 가장 가까운 Data를 찾고 해당 Label을 y로 반환한다. 

 

Parametric Model은 함수의 형태를 가정한 자체가 잘못된다면, 실제 True f를 추정하는데 매우 힘들다. 하지만, Non-parameteric Model은 형태를 가정하지 않기에 해당 위험은 없다. 하지만, 정확한 f를 추정하기 위해서는 모든 경우에 대한 Data(Observation)을 가지고 있어야 하기 때문에 매우 큰 Data가 요구된다.

 

Step 2. Define the goal of this model (yf(x) as much as possible)

 

좋은 Regression Function 즉, Regression Function의 목표를  f(x)=E(y|x)로 정의하였다. 즉, Input Vector x가 가질 수 있는 모든 y의 평균을 나타내는 Regression Function인 f(x)를 추정하는 것이 목표이다. 그렇다면 모든 x에 대하여 E[(yf(x))2|x]를 최소로 하는 즉, Mean-squared Prediction Error를 최소로 한다면, 우리는 f(x)=E(y|x)를 달성할 수 있을 것이다. 

 

수식을 조금 정리 해 보자. 우리가 추정하는 Regression Function을 ^f(x)라고 표현한다면, 

 

다음과 같이 전개할 수 있다. 여기서 ϵ은 측정 오차로 줄일 수 없는 값이다. 따라서 우리의 목적은 [f(x)^f(x)]2를 최소로 하는 것이다. 여기서 f(x)는 True y를 의미한다. 

 

Step 3. Find the a(parameters) that best achieves the goal with training data

 

우리는 n개의 서로 다른 데이터를 가지고 있는데, 이를 Training Data라고 한다. 우리는 Training Data를 활용해서 우리가 모르는 ^f(x)를 추정하는데 사용되며, 어떠한 (x,y)에 대해서도 y^f(x)의 성능을 보이는 ^f(x)를 추정하기 위한 Learning Method를 적용하는 것이 목표이다. 이를 Optimization(최적화)라 한다. ^f(x)를 추정한다는 것은, 우리가 설계한 ^f(x)의 Parameter를 추정한다는 것과 동일한 의미이다.

 

Step 4. Given an unseen x, you will be able to estimate its label ˆy, by computing ˆy=ax

 

모델을 학습시킨다. 즉, ^f(x)f를 Traing Dataset에 Fitting 시켰으면, 해당 모델의 동작 성능을 확인해야 한다. 

 

이때, MSE(Mean-Squared Error)를 계산하는데, 만약 Training Dataset인 Tr=xi,yi에 대해서 이를 계산한다고 하면, 당연히 잘 나올 것이다. 우리가 Fitting 시킨 기반도 Training Dataset 이고, 검증도 Training Dataset을 기반으로 진행하기 때문이다. 이렇게 검증하게 되면, Overfitting 된 Model을 얻을 것이다. 즉, Training Dataset에 Model이 너무 Fitting 되어 있어 처음보는 데이터에 대하여 좋은 성능을 내지 못하는 일반화되지 않은 Model임을 의미한다.

 

 

따라서 우리는 학습 과정에서 보지못한 Test Dataset Te=xi,yi를 이용하여 모델의 성능을 검증하기 위한 MSE를 계산해야 한다. 

 

 

각 Model에 따른 MSE 정보이다. 검은색이 Ground Truth일 때, 만약 ^f(x)를 선형 모델로 추정했다면, MSETr,MSETe 모두 높은 것을 확인할 수 있다. 만약 초록색과 같이 너무 Flexible Nonlinear Model로 추정한다고 하면, MSETr는 매우 낮지만, MSETe는 너무 Overfitting 된 결과를 확인할 수 있다. 따라서 가장 이상적인 것은 적당히 Nonlinear한 Model인 파란색과 같은 Model을 추정하는 것이다. 

따라서 Model에는 Trade-offs가 있는데, Prediction Accuracy가 높아지면 반대로 Interpretability가 떨어지는 것이다. 이때, Interpretability는 해석가능성으로, 어떠한 Parameter가 Model의 Output을 결정하는지 확인할 수 있는 기능적 요소를 의미한다. Linear Model의 경우 각 Input의 Parameter(Weight)로 판단할 수 있지만, Nonlinear의 경우 판단하기 어렵다.

 

이는 Interpretability와 Flexibility의 관계에서도 살펴볼 수 있는데, Flexibility가 낮아질수록 즉 단순한 모델일수록 Interpretability가 커지지만, 반대로 딥러닝과 같이 복잡해질수록 성능은 좋아지지만 Interpretability가 낮아짐을 확인할 수 있다.

 


Classification Problems

Regression

  • y는 실수값으로, 오차를 최대한 줄이는 것을 목적

Classification

  • y가 qualitative / categorical Value를 가짐
  • Descrete한 Class

Classification Problem은 Descrete한 Class를 가지는 y를 추정하는 문제로, Input Vecter x가 후보가 되는 클래스 C 중 하나의 클래스 y를 할당하는 문제이다. 

 

따라서 Regression에서의 MSE와는 달리, ^f(x)의 성능을 측정하기 위한 Misclassification Error Rate를 다음과 같이 정의한다.

 

ERRTe는 Class를 맞춘 비율로 해석하면 이해하기 쉽다. 이때 Iyi=f(xi)이면 1 아니면 0이다.

 

K-Nearest Neighbors(KNN)

 

Classifier의 한 예로 Non-parametric Model인 KNN을 들 수 있다. 

 

Input x0에 대하여 Training Data에서 x0와 가장 가까운 K개의 Data를 N0라고 할 때, KNN에 의한 y는 다음과 같이 정의된다. 

이때, ˆP(Y=j|X=x0)는 다음과 같이 정의된다.

 

따라서 x0와 가장 가까운 K개의 Training Dataset이 가지는 Class 중 가장 많은 Class를 y( = j)로 함을 의미한다.

728x90
반응형

'Machine Learning' 카테고리의 다른 글

Long Short Term Memory(LSTM)  (1) 2024.01.13
Recurrent Neural Network(RNN)  (2) 2024.01.13
Linear Regression  (0) 2024.01.02