euphoriaO-O

[PRML] 1. 머신러닝 개괄 본문

Machine Learning/PRML

[PRML] 1. 머신러닝 개괄

euphoria0-0 2020. 7. 15. 00:07
This article is based on the book "Pattern Recognition and Machine Learning".
But I try to represent something using my own words.
And this article aims to explain by Top-Down approach.
http://users.isr.ist.utl.pt/~wurmd/Livros/school/

패턴 인식이란, 주어진 데이터에서 특정한 패턴을 찾아가는 것이다.

우리는 학습 데이터로부터 테스트 데이터 예측을 "잘"하기 위해 "일반화"를 목표로 한다.

이를 위해 학습 데이터로부터 전처리를 잘 한다든지, 특성 추출을 한다든지, 차원 축소를 한다든지 하는 방법들을 사용한다.

그리고 예측은 분류 문제와 회귀 문제가 있을 수 있으며 모델 학습 방법에는 지도학습, 비지도 학습, 강화학습 등이 있다.

 

1. 다항 곡선 적합

우리가 예측하고 싶은 다항 곡선이 있다. 즉, 우리는 주어진 데이터 x로 부터 타겟 t를 잘 예측하고 싶은데, 이는 실제로 다항 곡선이다.

다항 곡선으로 표현할 때 우리가 알고 싶은 것은 계수 w이다. 다항 곡선은 모수 w에 대해 선형이므로 이를 선형 모형이라 한다.

 

1) 모형의 적합

우리는 예측을 잘 하고 싶다. 그러나 "잘한" 것과 "못한" 것을 계량적으로 평가하기 위해 오차라는 개념을 도입한다.회귀 문제에서, 내가 예측하고 싶은 값과 멀리 떨어졌다면 그것은 예측을 잘 "못한" 것이라 할 수 있다. 이를 수학적으로 표현한 것이 오차함수이다. 즉, 이 오차를 최소화하고 싶을 것이다.이 오차는 데이터 x와 모수인 다항 계수 w, 그리고 실제 타겟 값 t에 의존할 것이다. x,t는 데이터로부터 주어져있으니 이 오차를 최소화하는 w를 찾을 것이다.즉, 다항곡선이 여러 형태가 있을 수 있는데, 데이터와 가장 가까운, 오차가 적은 w를 선택한다는 의미이다.

 

2) 모형의 선택

그런데, 다항 곡선에는 여러 형태가 있다. 위에서 오차가 가장 적은 w를 선택하는 것은 대부분 유일한 해를 가지지만차수는 p, 즉 1차 함수일 수도 있고 2차 함수일 수도 있고 100차 함수일 수도 있다.실제 100개의 데이터가 주어진다면 차수를 100으로 할 때 오차는 0으로 만들 수 있다.그러나 너무 복잡한 모형은 여러 문제점을 가지는데, 우선 직관적으로 생각해본다면, a)데이터 해석이 명확하지 않아 직관적이지 않고, b)100차수의 모수를 다 적합하는데 힘들고, c)너무 데이터에 딱 맞아 다른 데이터가 그 꾸불꾸불한 곡선 안에 딱 들어올지 의문이다.a) 직관적이지 않다 는 모형의 해석력을 의미한다. 오차가 똑같다면 100차 함수보단 1차 함수가 더 직관적이어서 x가 증가하면 t도 증가하는구나! 하는 인사이트를 쉽게 얻을 수 있다. 혹은 2차 함수가 5차 함수보다 미묘하게 오차가 더 크다면 고민해볼 것이다. 그래도 해석이 쉬운 2차 함수를 사용할까? 오차가 좀 더 작은 5차 함수를 사용할까? .. 정답은 없으나 우리는 예로부터 받아온 조상의 지식이 있다. "Simple is the best!" + 혹은 '오켬의 면도날'을 구글링해보면 좋을 것이다.b) 모형 적합이 힘들다 는 모델 학습의 비용을 의미한다. 위와 비슷하게 2차 함수와 100차 함수의 오차나 모형 해석력이 비슷하다면 모형을 더 빨리, 더 쉽게 적합할 수 있는 모형을 선택할 수 있다.c) 다른 데이터에 잘 안 맞을 것 같다 는 모형 적합의 일반화를 의미한다. 사실, 이 단원에서 가장 중요한 개념인데 너무 멀리왔다.일반화는, 모형 학습 후에 새로운 데이터를 가져와 추론/예측 수행 시 잘 맞는 모형을 의미한다. 즉, 이 데이터에만 잘 맞는게 아니라 새로운 데이터에도 잘 맞아 "일반적인" 모형을 의미한다. 지금 데이터에만 잘 맞고 설명을 잘 해봤자 예측이 중심인 머신러닝에서는 의미가 없으며 일반적으로 사용될 수 있는 이론이면 좋을 것이라 생각하겠다. 따라서, 데이터에 딱딱 맞는 100차원 혹은 그 이상의 다항 곡선을 적합하여 일반화가 잘 안되는 것을 우리는 과적합(overfitting)이라 한다. 그리고 데이터에 0차 함수 즉 상수곡선(직선)을 적합하면 학습이 전혀 안되므로 이를 과소적합(underfitting)이라 한다. 정답은 없으나 100차 함수보다 적당히 들어맞는 5차 곡선 정도가 일반화가 잘 된다다고 생각할 수 있다.

 

3) 성능 비교

자, 그럼 위에서 2차 함수와 5차 함수 중에 고민이라고 해보자.그럼 2차 함수를 적합시켰을 때의 오차와 5차 함수를 적합시켰을 때의 오차가 있을 것이다.이 중 어떤 모형을 선택할 것인지 결정하기 위해 오차를 사용하여 성능을 비교하는 지표들이 있다. 그 중에 대표적으로 RMSE가 있다.오차를 계산해 어떤 모형이 더 적절한지 비교할 수 있다.위에선 오차를 최소화하는 w를 찾는 것이라면 이젠 그 최소화하는 w를 직접 넣고 계산해 실제 오차가 얼마나 있는지 보는 것이다.여기서 오차 함수에 패널티 항을 추가하여 위에서 말한 과적합을 피하고 일반화 성능을 높일 수 있다. 이를 정규화(regularization)이라 하며 일반적으로 L1, L2 정규화 방법을 도입한다. 이로부터 Ridge Regression, LASSO 등의 회귀 방법이 생겨났다.

 

4) 모형 비교

여기서는 다항 곡선이므로 모형의 복잡도를 결정하는 것이 오직 차수(order)이지만, 다른 복잡한 모델들을 가져오면 조정할 수 있는 모수들이 많아진다. 이럴 때 우리는 일반화를 달성하기 위해 즉, 과적합을 피하기 위해 다양한 방법을 사용할 수 있다.그 중에 한 방법이 validation set을 나누는 것이다.

학습 데이터 하나로 성능을 비교한다면 ,,,

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

[PRML] ch 3-7  (0) 2021.02.20
[PRML] ch 1 Introduction  (0) 2020.09.17
[PRML] Prove (1.69) - (1.72)  (8) 2020.09.16
Comments