[머신러닝] 다시 공부하는 머신러닝 1일차

Andrew Kim·2023년 1월 19일
0

ML

목록 보기
1/4

목차

  1. 기본 Notation
  2. 기초수학 이론
  3. 경사하강법

1. 기본 Notation

Regression vs Classification

Regression(회귀)

  • input: 연속값(실수형), 이산값(범주형) 모두 가능
  • output: 연속값(실수형)
  • 일반적인 함수 형태(y=w1x+w0y=w_1x + w_0)

Classification(분류)

  • input: 연속값(실수형), 이산값(범주형) 모두 가능
  • output: 이산값(범주형)
  • 이진 분류엔 sigmoid 함수, 다중 분류에는 softmax 함수 등이 존재한다.

Notations for ML

  1. 데이터 구성
  • feature: data의 특징 (독립 변수) XX로 표현
    • |X| = (N, D) (N: data 갯수, D: attribute 개수)
    • feature는 attribute으로 이루어져 있음(ex: 성별, 나이, 몸무게 etc)
  • label: data에서 예측하고 싶어하는 특징 (종속 변수) yy로 표현

결국 label이 범주형이면 classification 문제가 되고, label이 실수형이면 regression 문제가 되는 것

  1. Parameter (=weight, 파라미터, 가중치)
  • 모델이 학습 가능한 변수
  • w0,w1,,wnw_0,w_1,\cdots,w_n
  • feature의 작용하는 가중치를 모델이 학습하면서 결정함
  1. Hyperparameter (하이퍼 파라미터)
  • 모델 학습에 있어, 인간이 정해야하는 변수
  • lr, batch size etc
    !! AutoML과 같은 Hyperparameter 조차 기계가 설정할 수 있는 분야도 현재 탄생중
  1. Input vs Output
  • input: data의 feature 파트 (xx 부분)
  • output: 모델로부터 출력되는 예측값 (y^\hat{y} 부분)

학습데이터 | 평가데이터

  • 현재 가진 학습데이터를 ww를 가지고 결과값을 도출
  • 인간이 가지고 있는 라벨 값과 비교하여 loss를 계산
  • loss를 머신한테 넘겨줌
  • 다시 학습함(update)
  • 이후 학습을 모두 진행 후, 평가데이터로 결과를 도출

선형 모델 vs 비선형 모델

  • Linear Regression (선형 회귀): parameter를 선형 함수로 표현 가능한 모델

  • Nonlinear Regression (비선형 회귀): 선형 결합식으로 표현 불가능한 모델

2. 기초수학 이론

기초적인 용어 및 개념

  • 함수: 두 집합 사이의 관계 및 규칙 (y=f(x)y = f(x))
  • 미분: 함수의 순간변화율
  • 함수의 최솟값: 미분값이 0

sigmoid 함수

  • 이진 분류를 위해 사용되는 함수 중 하나
  • y=11+exy = \frac{1}{1+e^{-x}}
  • 0y10 \leq y \leq 1
  • 중앙 출력값 = 0.5

softmax 함수

  • 다중 분류를 위한 함수 중 하나
  • yi=exiΣk=1Kexky_i = \frac{e^{x_i}}{\Sigma^K_{k=1} e^{x_k}}

Linear regression

여기서 linear regression의 의미는 선형 함수로 경계를 나눈다는 의미가 아님

  1. 단순 선형 회귀 (simple linear regression): feature가 하나인 data에 대한 regression model
  • y=w0+w1xy = w_0 + w_1x
  1. 다중 선형 회귀 (multiple linear regression): feature가 여러개인 data에 대한 regression model
  • y=w0+w1x1++wDxDy = w_0 +w_1x_1+ \cdots + w_Dx_D
  1. 다항 선형 회귀 (polynomial regression): feature의 차수가 다양한 regression model
  • y=w0+w1x+w2x2++wDxDy = w_0+ w_1x +w_2x^2 + \cdots + w_Dx^D

How to find optimal parameters?

-> 손실 함수값을 최소로 만드는 parameter를 찾으면 된다.

3. 경사하강법

How to find ww^{*} (optimal weight)

Advanced math for ML

  • 편미분: 원하는 변수에 대해서만 미분(나머지 변수 및 상수 모두 상수 취급!!)

    f(x,y)=x2+xy+3f(x,y) = x^2 +xy +3 \rightarrow f(x,y)x=2x+y\frac{\partial f(x,y)}{\partial x} = 2x + y

  • chain rule: dydx=dydududx\frac{dy}{dx} = \frac{dy}{du} \cdot \frac{du}{dx}

Loss function(손실함수)

문제(분류, 회귀)에 따라 어울리는 손실함수가 존재한다. 그렇기 때문에 어떤 손실함수를 사용할 지 정하는 것도 중요하다.

  1. 평균 제곱 오차 (mean squared error, MSE)
  • regression 문제에서 대표적인 손실함수
  • 오차의 제곱의 평균
  • L=1NΣi=1N(yiyi^)2L = \frac{1}{N}\Sigma^N_{i=1}(y_i - \hat{y_i})^2

Least Square method

평균 제곱 오차 손실 함수를 사용한 모델의 optimal weight를 구할 수 있는 방식

  1. 단순 선형 회귀인 경우
    y^=ax+b\hat{y} = ax +b
    L=Σi=1N(yi(axi+b))2L = \Sigma^N_{i=1}(y_i - (ax_i+b))^2
    결국 다음 편미분을 만족하는 a,ba^*,b^*를 찾으면 되는 것
  • 0=La0 = \frac{\partial L}{\partial a}
  • 0=Lb0 = \frac{\partial L}{\partial b}
  1. 행렬에 대한 편미분으로 접근
    L=YWX2L=||Y - WX||^2 행렬에 대한 편미분하기
    LW=2XT(YWX)=0\frac{\partial L}{\partial W} = -2X^T(Y-WX) = 0
    W=(XTX)1XTY\therefore W =(X^TX)^{-1}X^TY

그러나 LSM에는 문제가 존재한다.
1. 복잡한 함수의 경우, 최소제곱법으로 해결하기 어려움
2. 비용이 너무 많이 드는 문제

Gradient descent

  • 손실 함수의 값을 최소화 시키는 방향으로 parameter를 update하는 방식

방법?
1. 함수의 최솟값 = 함수의 순간변화율이 0인 부분
2. 미분값의 반대방향으로 파라미터 값 update
3. 0이 될 때까지 epoch만큼 반복하기

0개의 댓글