카테고리 없음

[머신러닝]사례 기반 학습과 모델 기반 학습

내일을 따라잡다 2023. 3. 30. 16:46
728x90

머신러닝 시스템을 어떻게 일반화(generalization) 되는가에 따라 분류할 수도 있다. 대부분의 머신러닝 작업은 예측을 하는 것이다. 즉, 주어진 traning data로 학습하지만 training data에서는 본적 없는 새로운 data로 일반화되어야 한다는 것이다. 머신 러닝의 궁극적인 목표라고 볼 수 있는 이 일반화(gerneralization)은 training data에 대한 높은 성능을 갖추는 것을 의미한다.

 

일반화를 위한 두 가지 접근법은 사례 기반 학습과 모델 기반 학습이다.

 

사례 기반 학습(case-based learning)

가장 심플한 형태의 학습으로서 시스템에 단순히 여러 사례(case/instance)를 메모리에 저장하면서 학습을 하기때문에 메모리 기반 학습이라고도 불리운다. 이때, 저장된 각각의 training data은 그 자체로의 지식이되며 training data들은 새롭게 입력된 data와 가장 비슷한 data를 찾기 위해 사용된다.

 

스팸 필터를 예로 들어 보자. 스팸 메일과 동일한 메일을 스펨이라고 지정하는 대신 스팸 메일과 매우 유사한 메일을 구분하도록 스팸 필터를 프로그램할 수 있다. 이렇게 하기 위해선 두 메일 사이의 유사도(similarity) 측정을 해야한다. 두 메일 사이의 매우 간단한 유사도(similarity) 측정 방법은 공통으로 포함한 단어의 수를 세아리는 것이다. 스팸 메일과 공통으로 가지고 있는 단어가 많으면 스팸으로 분류한다.

이를 사례 기반 학습(instance/case-based learning; CBL)이라 한다. 시스템이 사례를 기억함으로써 학습하고 유사도(similarity) 측정을 사용하여 새로운 data에 일반화(gerneralization)한다.

 

사례 기반 학습의 방법의 종류는 다음과 같다.

  • Rote Learning
  • k Nearest-Neighbor Classification
  • IBL and Rule Learning

 

 

모델 기반 학습(model-based learning)

샘플로부터 일반화 시키는 다른 방법은 이 샘플들의 모델을 만들어 예측에 사용하는 것이다. 이를 모델 기반 학습(model-based learning; NBL)이라 한다. 

 

이때, 모델이란 

데이터 분석을 하거나 머신러닝으로부터 문제를 해결하기 위해 우리는 데이터의 패턴을 먼저 찾아야한다. 하지만 분석을 하기 전에는 패턴이 존재하는지 존재하지 않는지 알수 없다. 그래서 패턴이 존재할 것이라고 가정을 하고 이런 가정들을 다 모은 것을 머신러닝에서 모델이라 부른다. 

 

모델 기반 학습의 과정을 살펴보면 다음과 같다. 

l  주어진 데이터가 어떻게 생겼을지 가정한다(= 모델)

 

l  모델을 학습 목표로 하여 수식화하기

l  실제 데이터로 모델 훈련시키기(최적화 작업; 비용 함수를 최소화 하는 모델 파라미터를 찾는다.)

l  새로운 data에 모델을 적용해 예측(추론; inferencr)하고 잘 일반화 되길 기대한다

 

모델 기반 학습은 적은 양의 데이터로 효율적인 학습을 할 수 있다는 장점이 있지나, 보상 함수와 상태 전이 확률 행렬에 대한 모든 정보를 알아야 학습이 가능하다는 단점이 있다.

 

모델 기반 학습을 더 잘 이해할 수 있도록 예를 들어보자.

먼저 , 돈이 사람을 행복하게 만드는지 알아본다고 가정을 하자. OECD 웹사이트에서 더 나은 삶의 지표(Better Life Index) 데이터와 IMF 웹사이트에서 1인당 GDP 통계를 다운받는다. 그 다음 두 데이터 테이블을 합치고 1인당 GDP로 정렬한다.

 

국가 1인당 GDP(USD dallors) 삶의 만족도
헝가리 12,240 4.9
대한민국 27,195 5.8
프랑스 37,675 6.5
미국 55,805 7.2

위의 표를 그래프로 그려보면 삶의 만족도는 국가의 1인당 GDP가 증가할수록 거의 선형으로 같이 올라가는것을 알 수 있게 된다. 그러므로 우리는 1인당 GDP의 선형 함수로 삶의 만족도를 모델링 할것이다. 이 단계를 모델 선택(model selectioin)이라고 한다. 

 

간단한 선형 모델

모델을 사용하기 전에 파라미터를 정의해야한다. 모델이 최상의 성능을 내도록 하는 값을 알기 위해 측정지표를 정해야한다. 모델이 얼마나 좋은지 측정하는 효용 함수(utility function)/적합도 함수(fitness function)을 정의하거나 얼마나 나쁜지 측정하는 비용 함수(cost functioin) 정의 할수 있다. 선형 회귀에서는 보통 선형 모델의 예측과 training data 사이의 거리를 재는 비용 함수를 사용한다. 이 거리를 최소화하는 것이 목표이다.

 

여기에서 선형 회귀(Linear Regression) 알고리즘이 등장한다. 알고리즘에 훈련 데이터를 공급하면 데이터에 가장 잘 맞는 선형 모델의 차라미터를 찾는다. 이를 모델을 훈련(training)시킨다고 한다. 그 다음 이 모델을 사용해 예측을 한다. 모든 게 다 잘되면 모델은 좋은 예측을 내놓지만, 그렇지 않으면 좋은 training data를 더 많이 모으거나, 더 강력한 모델을 선택해야한다.