본문 바로가기
AI · 인공지능/알기쉬운 AI

[알기쉬운 AI - 25] 회귀 (Regression)

by 두우우부 2020. 4. 25.
반응형

 

이전에 [학습 방법, 통계, 알고리즘]의 삼각관계 중 '학습 방법과 통계학'의 관계를 알아본 적이 있습니다. 이번에는 '통계와 알고리즘'의 관계에 대해 설명합니다. 딥러닝(신경망)이 아닌, 기존의 기계 학습에 대해서도 여기서 이해해 둡시다. 

 

통계와 알고리즘

앞에서 '감독 학습과 비감독 학습, 강화 학습'이라는 3가지 학습 방법과 회귀, 분류, 클러스터링의 통계학 관계를 알아보았습니다. 이번에는 '회귀'에 사용하는 대표적인 알고리즘을 설명합니다. 

 

회귀(Regression)

회귀는 앞에서도 몇 번 등장하고 있습니다. 거기서는 회귀 분석에 대하여 "많은 데이터를 플롯 할 때 그 관계를 나타내는 선(함수)을 찾는 것"이라고 설명했습니다. 예를 들어, 그림 2A와 같은 데이터 분포가 있는 경우, X축과 Y축의 관계를 함수로 나타낼 수 있다면, 알 수 없는 데이터(x)에 대한 값(y)을 예측할 수 있습니다. 

 

데이터 분포로부터 함수를 도출하기 위해서는 일반적으로 가장 근접한 함수(기저 함수)를 선택하여 계수를 조절하는 적용 방법을 사용합니다. 예컨대, 그림 2A의 데이터 분포를 3차 함수에 적용시키면 그림 2B와 같습니다. 왠지 괜찮아 보이는군요.  

 

그림 2A : 데이터 분포

 

그림 2B : 선형 회귀 (3차 함수)

 

사실, 이렇게 간단한 함수로 해당 케이스에 들어맞는 경우는 별로 없기 때문에, 다항식 기저나 가우스 기저 같은 더 복잡한 기저 함수를 사용하여 데이터를 선으로 나타냅니다. 이때, 데이터의 노이즈(측정 오차에 의해 본래의 함수로부터 멀어져 버린 데이터)에 현혹되어 과학습이 되어 버립니다. 따라서 앞의 '[21] 과학습을 막는 방법' 편에서 노이즈 대책으로 나온 것이 Lasso 회귀와 Ridge 회귀 방법이 있었습니다. 이번에는 또 하나의 노이즈 대책 방법인 베이지안 선형 회귀를 소개합니다. 

 

[알기쉬운 AI - 21] 과학습을 ​​막는 방법

시작하기 인간에게는 ego와 업보가 있듯이, 기계 학습에게는 과학습 이라는 것이 붙어 다닙니다. 숙명이라고 할 수 있지요. 따라서 최근의 신경망 라이브러리는 과학습을 방지하기 위한 몇 가지 기능이 포함되어..

doooob.tistory.com

 

(1) 베이지안 선형 회귀 

베이지안 선형 회귀를 이해하기 위해 먼저 베이지안 확률 개념을 알아 둡시다. 

 

· 베이지안 확률 

앞의 '[22] 강화 학습과 도적 알고리즘'에서 영희와의 가위 바위 보 예제를 살펴보겠습니다. 10회 가위 바위 보를 했을 때, 영희가 보를 5번, 주먹 3번, 가위를 2번 냈다고 합시다. 그럼 영희가 '보'를 낼 확률은 몇입니까? 

 

[알기쉬운 AI - 22] 강화학습과 도적 알고리즘

강화 학습과 밴디트(도적) 알고리즘 강화 학습은 감독 학습처럼 '해답'이 주어지는 것이 아니고, 보수를 얻기 위해 스스로 배우고 영리해지는 학습법입니다. 바둑이나장기와 같은 게임에서 압도적인 힘을 보여 주..

doooob.tistory.com

 

가위 바위 보이므로 보통으로 생각하면 어느 것을 내느냐는 1/3의 확률입니다. 하지만 "어, 혹시 영희는 보를 자주 내는 버릇이 있는 것은 아닌가?"라고 느낀다면 나름대로 생각한 확률은 1/3보다 커지는 것입니다. 이처럼 개인의 주관이 들어간 확률을 베이지안 확률이라고 합니다(베이즈 씨의 이론입니다). 

 

베이지안 확률은 신뢰도가 있습니다. 예를 들어 보를 낼 확률을 40%쯤으로 생각하고 있는 것은 머릿속에서 그림 3과 같은 확률 분포로 생각하는 것입니다. 그리고 그 구상 확률은 처음에는 1/3이었던 것이 10번 하면서 2/5가 됩니다(갈색 선), 100번 하면 1/2이 됩니다(파란 선). 이런 식으로 가위 바위 보를 하면서 변화하고 있습니다.  

 

또한 신뢰도도 함께 변화해 갑니다. 이 예에서는 가위 바위 보를 할수록 점점 신뢰도가 높아지고 분포 곡선은 그림 3의 파란 선처럼 뾰족한 형태로 되어갑니다. 이처럼 탐색(가위 바위 보)할 때마다 확률과 신뢰도가 변화하는 것을 베이지안 업데이트라고 합니다. 

 

그림 3 : 베이지안 확률의 확률과 신뢰도의 변화

 

베이지안 선형 회귀 

베이지안 선형 회귀는, 데이터 분포 함수를 도출할 때 이 베이지안 확률을 사용합니다. 신뢰도가 높을 것 같은 데이터와 신뢰도가 낮을 것 같은(노이즈가 많은) 데이터를 동등하게 취급하고 가중치를 바꿔가는 것입니다. 

 

이거 왠지 '[21] 과학습을 막는 방법'에서 배웠던 '정규화'와 동일한 것 같네요. 그렇습니다, 베이지안 선형 회귀 역시 방법은 달라도 노이즈를 과소평가하여 과학습을 방지하는 정규화와 같은 결과가 되는 것입니다. 

 

L1 규범 정규화 (Lasso 회귀) : 극단적인 데이터의 가중치를 0으로 한다.

L2 규범 정규화 (Ridge 회귀) : 극단적인 데이터의 가중치를 0에 가깝게 한다.

 

(2) 서포트 벡터 회귀

비슷한 회귀 알고리즘으로 서포트 벡터 회귀가 있습니다. 딥러닝이 각광받기 전에 많이 사용된 방법이지만 지금도 많이 사용되고 있기 때문에 알아둡시다. 서포트 벡터 회귀를 이해하기 위해 먼저 서포트 벡터 머신을 설명합니다.  

 

서포트 벡터 머신(Support vector machine)   

서포트 벡터 머신(SVM)은 감독 학습에 의한 패턴인식 모델입니다. SVM은 마진 극대화를 원칙으로 분류를 수행합니다. 그림 4를 통해 알아봅시다.  

 

그림 4는 영업 부서와 관리 부서의 사람들의 성격 진단을 실시했을 때의 분포입니다. X축은 행동 스타일로 오른쪽으로 갈수록 적극적이고 그 반대는 신중한 성격입니다. Y축은 사교성입니다. 감독 학습이므로 영업이 오렌지, 관리부서가 파란색 등, 색상으로 나누면(편의 상) 훌륭하게 직무에 의해 성격의 분포가 편중됨을 알 수 있습니다.

 

 

이를 사원의 적성 진단에 이용하기 위해 파란 데이터 군과 붉은 데이터 군을 선형 식별로 나눈다고 합시다. 수직의 오렌지색 선보다는 녹색 선처럼 대각선으로 기울이는 쪽이 더 폭이 넓어지네요. 이때, 중심부에서 선까지의 거리를 마진이라고 합니다.

 

마진을 최대화한다는 것은 폭이 가장 큰 기울기를 찾는 것입니다. 즉, SVM으로 이 분포를 분류하는 경우 오렌지가 아니라 녹색선으로 분류하는 것입니다. 또한 데이터 중에서 녹색 선의 중앙에 가장 가까운 위치에 있는 것을 서포트 벡터라고 합니다.  

 

그림 4 : 서포트 벡터 머신(SVM)

 

소프트 마진 

데이터에는 노이즈(이 경우에는 개인차)가 생기기 마련입니다. 예를 들어, 그림 5의 붉은 동그라미로 표시한 점처럼 다른 집단과는 조금 다른 위치에 데이터가 있을 경우 이들도 충분히 고려하여 선을 긋는 것(하드 마진이라고 합니다)은 어려운 일입니다. 

 

그래서 어느 정도는 노이즈가 있다고 생각하여 오차를 허용하고 선을 긋는 방법이 사용되고 있으며, 이를 소프트 마진이라고 합니다. 또한, 위에서는 선형으로 식별(직선으로 구분)하였지만, 물론 비선형 식별(곡선)도 있습니다. 

 

그림 5 : 소프트 마진

 

서포트 벡터 회귀(Support vector regression)

이상이 SVM을 분류에 사용했을 경우의 설명입니다. 그리고 SVM을 회귀에도 사용할 수 있는데, 그것이 서포트 벡터 회귀(SVR)입니다. 이는 그림 6과 같이, 이번에는 선 안쪽에 데이터가 있습니다. 리지 회귀나 로쏘 회귀와 마찬가지로 오차(노이즈) 대책을 실시하여 과학습을 방지하는 것입니다만, SVR은 마진의 개념을 도입하여 오차에 반응하지 않는 영역(위아래 선의 폭)을 마련함으로써 노이즈의 영향을 받지 않도록 하는 방법을 취하고 있습니다.  

 

그림 6 : 서포트 벡터 회귀(SVR) 

 

(3) 랜덤 포레스트 

랜덤 포레스트를 이해하기 위해 먼저 결정 트리(의사 결정 트리)를 설명합니다. 

 

· 결정 트리(Decision Tree)  

의사 결정 트리는 원래는 말 그대로 의사 결정을 지원하는 방법입니다. 예를 들어, '[18] 계층 신경망'에서의 보았던 '회식에 초대되었을 때 참석 여부'를 결정 트리로 그리면 아래의 그림 7A와 같이 됩니다.

 

 

[알기쉬운 AI - 18] 계층 신경망

인간의 뇌는 뉴런(neuron)이라는 신경 세포의 네트워크 구조로 되어 있습니다. 뉴런에서 다른 뉴런에 신호를 전달하는 연결 부위를 시냅스라고 하고 뉴런은 시냅스에서 전기 및 화학 반응의 신호를 발신하여 정보..

doooob.tistory.com

 

그림 7A : 의사 결정 트리

 

그림 7B : 분석 · 분류 결정 트리

 

기계 학습에서 의사 결정 트리는 의사를 결정하는 것보다는 데이터를 분류하는 방법으로 사용됩니다. 예를 들어, 그림 7B는 불고기 파티에 20명 초대할 때 조건에 따라 참석 여부를 분석하는 의사 결정 트리입니다. 나에게 적용해 보면, 영희의 참석여부가 전부라고 생각합니다만, 이와 동일하게 생각하는 라이벌은 3명에 지나지 않고, 가격에 민감한 사람이 더 많다는 것을 알 수 있습니다. 

 

이 같은 결정 트리는 마케팅에도 자주 사용됩니다. 예를 들어, 이벤트의 고객을 모집할 때 과거 데이터를 의사 결정 트리로 분석하여, 연예인을 부를지, 티켓 가격을 낮출지, 행사장을 어디로 할지 등의 요소에 따라 고객을 얼마나 유치할 수 있을지 예측이 가능할 것입니다. 

 

분류 및 회귀의 동시 사용

SVM과 같이 분류에 사용하는 알고리즘은 회귀에도 사용할 수 있습니다. 그리고 의사 결정 트리도 분류 트리와 회귀 트리가 있습니다(그림 8). 뭐, 대단한 차이라는 것이 아니라, 데이터 마이닝에서 분류하는 것이 분류 트리, 과거 데이터를 분석하여 예측에 사용하는 것이 회귀 트리입니다. 그 정의에서 보면 방금 전의 이벤트 모객의 예측 예는 회귀 트리가 되겠네요.

 

그림 8 : 분류 트리와 회귀 트리

 

랜덤 포레스트(random forest)  

마침내 랜덤 포레스트의 설명에 들어갑니다. 랜덤 포레스트는 앞에서 배웠던 앙상블 학습입니다. 앙상블 학습은 개인 학습한 여러 학습기를 융합시켜 일반화 능력을 향상하는 머신러닝 기술이었지요. 랜덤 포레스트는 다음의 세 단계에 따라 출력을 얻을 수 있습니다(그림 9). 

 

① 데이터에서 무작위 추출법(배깅이라고 합니다)으로 n쌍의 데이터를 만든다.

② 각각의 의사 결정 트리를 생성한다. 

③ 각각의 결정 트리의 결과를 통합한다.

 

그림 9 : 랜덤 포레스트 

 

그야말로 앙상블 학습이네요. 하나의 데이터를 하나의 결정 트리로 분석하기보다는 무작위로 샘플링한 데이터의 의사 결정 트리 결과를 통합하는 것이 더 정확한 결과를 얻을 수 있을 것입니다. 또한, 평가의 통합 시 분류 문제에서는 다수결, 회귀 문제에서는 평균값이 주로 사용됩니다. 

 

정리

이번에는 '회귀'를 사용하는 알고리즘 중 베이지안 선형 회귀, 서포트 벡터 회귀, 랜덤 포레스트의 3가지를 설명했습니다. 앞에서 이미 선형 회귀, Ridge 회귀, Lasso 회귀를 소개했기 때문에, 이로써 6개를 알게 된 거네요.

반응형