본문 바로가기
Note/Machine learning

모델 선택

by sooyeoon 2021. 8. 1.

기계학습은 일반 컴퓨터 프로그램과 가장 큰 차이점이 '모델'이 있다는 것이다.

 

기계가 어떻게 모델을 형성하는가?

4개의 좌표가 있는 데이터를 가지고 가장 잘 나타낼 수 있는 모델 (직선)을 만드려면?

 

y =wx+ b

직선의 기울기인 w와 절편인 b 매개변수 집합을 찾아내서 적절한 수식을 (최적의 모델)을 완성하면 가장 적합하다고 생각되는 모델을 선별한다.

 

그렇다면 많은 모델 중에서 어떤 모델이 제일 좋은 모델인가를 알 수 있는가?

 

목적함수 objective function (또는 비용 함수cost function)

모델에 따라서 모델함수는 여러가지가 있음

수치를 예측하는 모델일 경우 , 특히 선형회귀 ((직선식)) 으로 나타낼 수 있다면 목적 함수로 평균제곱오차 MSE (Mean Squared Error)를 많이 쓴다

※ 오차의 제곱으로 구하는 이유는 실제 값과 예측 값의 차이가 마이너스 - 일 경우 값이 상쇄될 수 있으므로 제곱을 해서 합한다.

 

직선 회귀식에서는 MSE를 많이 사용하는데 , 처음에는 최적의 매개변수 값을 알 수 없으므로 난수 Random 를 생성해서 예측값과 실제값을 비교하고 , 반복적으로 학습하면서 모델을 개선해나간다.

목적함수는 MSE를 사용할 수도 있지만 , 어떤 목적함수를 쓸 것인지가 중요함

 


기계학습 알고리즘

기계학습 공식화 : 목적함수 J가 argmin (가장 최소)가 되는 값을 찾는 것

기계학습은 작은 개선을 반복하여 최적의 해를 찾아가는 수치적 방법으로 식을 품

 

입력값 : training data 훈련집합

  • x = feature
  • y= 해당 정답 값

출력값 : 최적의 매개변수

  • w 와 b를 찾아내는 작업

목적함수를 매개변수로 미분 → 미분을 했을때 목적함수의 값이 가장 작은 곳을 찾을 수 있고, 미분의 기울기를 통해 예측 방향을 설정하여 구함

 

모델의 종류

선형모델

직선으로 해결되는 모델 [단순한 상황]

 

비선형 모델

히든레이어를 쌓는 딥러닝에서 지원하는 모델

딥러닝은 실질적으로 예측력이 좋지만 데이터의 형태에 따라서

feature(고려할 변수들)도 적고, data size도 적은 경우 굳이 비선형 모델을 사용할 필요가 없음

오히려 성능이 더 나빠질 수 있으며 선형 모델중에서도 직선식으로도 더 예측력이 좋은 경우도 있기 때문에

모델을 선정할 때는 자신이 다루게 될 데이터의 특성을 잘 파악하는 것이 중요하다.

 

 

과소적합과 과대적합

 

과소적합 Underfitting

모델의 용량이 작아 오차가 클 수밖에 없는 현상

1차 모델(선형) : 아직 학습을 덜 해서 예측력이 떨어짐

 

과대적합 Overfitting

train data만 깊게 학습하여 모델의 일반화가 되지 못하고 새로운 데이터가 들어왔을때 잘 예측하지 못하는 현상

12차 모델 : 훈련데이터를 완벽하게 맞추고 있는 상황

 

실제로 데이터를 다루다보면 과소적합보다 과잉적합을 해결하는 것이 핵심이 된다.

training 데이터를 너무 과하게 학습한 경우도 무조건 좋다고 할 수 없음.

훈련데이터는 모델을 만들기 위해서만 사용하며 만들어진 모델은 학습에 사용되지 않은 어떤 데이터를 입력하더라도 잘 예측하는 모델이어야함.

그렇기 때문에, 학습데이터에만 완벽한 모델을 만들면, 실제로 새로은 데이터를 입력했을때 오히려 예측값이 하락하는 현상이 발생함

 

→ 이상적으로, 1~ 12차 학습 모델 사이에서 가장 일반화된 현상을 예측할 수 있는 모델을 선정하는 것이 목적이다.


학습차수가 낮을수록 간단한 모델이 생성되는데, 훈련집합(training data)이 달라짐에 따라서 오차가 굉장히 크게 나오며 이것을 바이어스가 크다고 한다.

12차는 훈련집합을 바꾸어도 예측력이 좋다. → 바이어스가 작음

바이어스와 분산은 트레이드오프 관계

일반적으로 용량이 작은 모델은 바이어스는 크고 분산은 작으며

복잡한 모델은 바이어스가 작고 분산이 크다.

결국 모델의 일반화가 목적이지만 분산이 낮으면서 바이어스가 작은 조건을 만족하기 어려움

 

 

 

  • 기계학습의 목표

낮은 바이어스와 낮은 분산을 가진 예측 모델을 찾는 것

  • 방법

최대한 잘 맞추는 모델로 학습시킨 다음(바이어스를 최대한 줄이는 방법), 분산을 최대로 낮추는 전략이 필요.

 

 

검증집합과 교차검증

교차 검증 Cross Validation

  • 비용 문제로 별도의 검증 집합이 없는 상황에 유용한 모델 선택 기법
  • 훈련 집합을 등분하여, 학습과 평가 과정을 여러 번 반복한 후 평균 사용

훈련집합을 가져와서 (테스트집합과 다른 별도의) '검증집합'을 이용한다.

실제 예측할때의 능력을 평가할때 사용하는 데이터는 테스트데이터이며

모델을 뽑아낼때 필요한 데이터는 훈련데이터와 훈련데이터에서 뽑은 검증집합이다.

 

절차

모델을 테스트 데이터로 학습 → 검증 집합으로 모델의 성능을 측정 → 가장 높은 성능을 보인 모델을 선정 → 테스트 집합으로 모델의 성능을 측정

 

테스트 데이터를 구할 데이터의 크기가 적을 경우 '교차 검증' cross validation을 사용한다

실세계의 imbalance data에 대한 문제가 발생하는 상황에서 교차검증을 많이 사용

*imbalance data* 일상생활에서 어쩌다 발생하는 상황 → 신용사기, 특정 희귀병 환자의 data 등...

 

부트스트랩 boot strap

  • 랜덤 샘플을 이용한 반복학습
  • 모델 피팅에 자주 사용되는 것은 아님

 

기계학습 분야에서는 똑같은 데이터와 한정된 알고리즘을 주고,

어떤 방법으로 제일 일반화된 잘 예측하는 모델을 뽑아내느냐가 중요함

결국 오버피팅이 일어나더라도, 최대한 잘 학습된 모델을 만든 후,

"규제"를 적용해서 오버피팅을 방지하는 방법으로 모델을 선정하도록 한다.

'Note > Machine learning' 카테고리의 다른 글

의사 결정 트리  (0) 2021.08.08
데이터 변환  (0) 2021.08.08
데이터 정제  (0) 2021.08.01
기계학습 개요(2)  (2) 2021.07.18
기계학습 개요  (1) 2021.07.18