본문 바로가기

머신러닝 디자인 패터

3.1 디자인 패턴 5 : 리프레이밍

머신러닝 문제의 출력 표현을 바꾸는 방식, 

회귀를 분류, 분류를 회귀 문제로 간주

3.1.1 문제

머신러닝 솔루션을 만드는 첫 번째 단계는 문제에 대한 프레임을 세우는 일, 

지도, 비지도 학습

문제의 특징

지도학습의 경우 라벨은 무엇,

허용 오차는 어느 정도

 

예로, 미래의 강우량을 예측하는 모델을 만든다고 가정, 시계열 기상 문제로 취급하는 것이 이치에 맞다. 그런데 강우량은 수치에 해당하므로 회귀 모델로 만들 수도 있다. 

예측 결과를 향상시키려면 어떻게 해야 할까?

 

3.1.2 솔루션

핵심은 강우량이 확률적이라는 것이다. 회귀 모델은 여러 가지 강우량이 가능하다고 할지라도 한 가지 수치만으로 강우량을 예측해야 한다. 

회귀 작업으로 강우량을 예측하는 대신, 분류 문제로 리프레이밍 할 수 있으며 확률 분포를 모델링하는것

강우량이 특정 범위 내에 있을 확률을 제공하는 멀티클래스 분류로 예측 강우량을 모델링한다.

회귀 문제와 분류 문제로 리프레이밍 된 접근법 두 가지 모두가 향후 15분 동안의 강우량을 예측한다. 

그러나 분류 문제로 접근하면 분포의 평균값을 선택하는 대신, 서로 다른 양의 강우량 확률 분포 모델을 허용한다. 이러한 방식으로 분포를 모델링하면 강우량이 일반적인 종 모양이 아닌 트위디 분포를 따른다.

또한, 다른 종류의 모델이 더 좋은 목표를 가질 때에도 리프레이밍이 도움이 된다. 동영상 추천 시스템을 구축한다고 할 때, 사용자가 특정 비디오를 볼 가능성을 예측하는 분류 문제, 시청할 비디오의 비율을 예측하는 회귀 문제로 리프레이밍 가능

 

3.1.3 작동 원리

예측 대상을 하나의 수치가 아닌 이산 확률 분포로 만들면, 버킷화로 인해 정밀도는 약간 떨어지더라도 완전한 확률 밀도 함수 Probability Density Function라는 유연성을 얻게 된다. 

분류 모델에서 제공하는 이산화된 예측은 유연성이 부족한 회귀 모델에 비해 복잡한 대상을 학습하는 데 더 적합하다.

예측값에 대해 보다 세부적인 정보를 제공하는 사후 확률 분포 Posterior Probability Distribution 을 얻을 수 있다는 점이다. 

 

불확실성을 포착하기

출생률 데이터셋과 신생아 체중 예측 과제의 예로 돌아가본다. 신생아 체중은 양의 실수이므로 직관적으로 회귀 문제에 해당한다. 

한편 주어진 입력 세트셋의 라벨은 다양한 값을 가질 수 있는데 특정 입력치의 분포는 정규분포를 따른다. 

이 분포에서의 너비는 신생아 체중 예측 문제에 내재된 오차를 나타낸다. 얻을 수 있는 가장 좋은 RMS 오차는 분포의 표준편차다.

회귀 문제로 접근하면 예측결과를 7.5 +- 1.0(표준편차) 로 명시해야 한다. 그러나 분포의 너비는 입력의 조합에 따라 달라지므로 너비를 학습하는 것은 그 자체로 또 다른 머신러닝의 문제, 

리프레이밍 하면 이산 확률 분포를 학습하는 멀티클래스 분류 모델을 학습시킬 수 있다. 이러한 이산화된 예측은 불확실성은 더 유연하게 포착하는 동시에, 회귀 모델에 비해 복잡한 목표를 더 잘 근사한다. 

추론 시간 동안에 모델은 이러한 잠재적 출력에 상응하는 확률 모음을 예측한다. 즉, 특정 가중치의 상대적 가능성을 제공하는 개별 PDF 를 얻게 된다. 주의를 기울여야 할 점은, 분류 모델의 경우 모델의 신뢰 수준이 너무 크거나 잘못되는 등의 보정이 크게 틀어질 수 있다는 점

 

목표 변경

분류 작업을 회귀로 리프레이밍 하는 것이 도움이 되는 시나리오, 사용자가 영화를 보고 1~5 등급 내에서 평가를 남긴 데이터베이스가 있고 이를 바탕으로 사용자에게 추천 순위를 제공하는 데 사용할 머신러닝 모델을 만든다고 가정,

이를 분류 과제로 접근하면, 데이터 베이스 상의 영화를 예측하는 모델을 만들 수 있다. 이 과제를 회귀 작업으로 리프레이밍 

주어진 영화에 대한 사용자 공간 표현을 예측한 후 사용자의 알려진 특성에 가장 가까운 영화 세트를 선택한다. 

이러한 모델 접근 방식은 수치 표현을 통해 직관적인 해석을 하 ㄹ때도 유용하다. 

 

3.1.4 트레이드 오프와 대안

회귀의 출력값을 버킷화하는 것은 분류 작업으로 리프레이밍 하는 접근 방식, 또한 다중 예측 헤드를 사용하여 분류 및 회귀 두 작업을 단일 모델로 결합하는 멀티태스크 학습이 있다. 

리프레이밍 기법을 사용하는 경우 데이터의 한계 또는 라벨의 편향에 따른 위험이 존재한다는 점을 인식해야 한다.

 

버킷화된 출력

회귀 작업을 분류 작업으로 리프레이밍하는 대표적인 방식은 출력값을 버킷화하는 것이다. 

n 개의 개별적인 카테고리에서 하나를 예측하는 것이 실수의 연속체에서 하나의 값을 예측하는 것보다 쉽다. 적당한 오차를 허용하게 된다.

 

멀티태스크 학습

멀티태스크 학습은 리프레이밍의 대안이라고도 볼 수 있다. 회귀, 분류 둘 중 하나를 선택하는 것이 아닌 둘 다 선택하는 것, 둘 이상의 손실 함수가 최적화된 모든 머신러닝 모델을 지칭한다. 

신경망에서 가장 일반적인 두 가지 형태의 멀티 태스크 학습은 하드 파라미터 공유와 소프트 파라미터 공유

 

파라미터 공유는 서로 다른 출력 작업에서 신경망의 파라미터를 공유하는 것, 

하드 파라미터 공유는 모든 출력 작업이 모델의 숨겨진 계층을 공유하는 것, 

소프트 파라미터 공유는 유사하게 유도되는 구조