[커세라 강좌 소개] 자료기반 천문학(Data-Driven Astronomy)
-----------------------------------------------------------------
Week 5: Learning from data: regression
제5주차: 자료에서 정보 얻어내기(회귀/경향성 분석)
- Using machine learning tools to investigate your data
수집한 자료를 조사하기 위해 기계학습 도구(분석 소프트웨어)를 활용하기
- Calculating the red-shifts of distant galaxies
먼 은하의 적색편이 계산하기
-----------------------------------------------------------------
1강:
자료 가지고 학습하기
Lesson 1:
Learning from Data / 한글자막
-----------------------------------------------------------------
2강:
우주의 규모, 거리측정
Lesson 2:
The Cosmological Distance Scale / 한글자막
-----------------------------------------------------------------
3강:
기계 학습의 기초
Lesson 3:
What is machine learning / 한글자막
-----------------------------------------------------------------
Lesson 4:
Decision Tree Classifier / 한글자막 / 영문자막
------------------------------------------------------
{프롤로그} 분류(Classification)와 회귀(Regression)
기계 학습(Machine Learning)에서 지도학습(Supervised Learning) 부분 인용해 보자.
---[인용시작]---
지도 학습(Supervised Learning): 사람이 교사로서 각각의 입력(x)에 대해 레이블(y)을 달아놓은 데이터를 컴퓨터에 주면 컴퓨터가 그것을 학습하는 것이다. 사람이 직접 개입하므로 정확도가 높은 데이터를 사용할 수 있다는 장점이 있다. 대신에 사람이 직접 레이블을 달아야 하므로 인건비 문제가 있고, 따라서 구할 수 있는 데이터양도 적다는 문제가 있다.
- 분류(Classification): 레이블 y가 이산적(Discrete)인 경우 즉, y가 가질 수 있는 값이 [0,1,2 ..]와 같이 유한한 경우 분류, 혹은 인식 문제라고 부른다. 일상에서 가장 접하기 쉬우며, 연구가 많이 되어있고, 기업들이 가장 관심을 가지는 문제 중 하나다. 이런 문제들을 해결하기 위한 대표적인 기법들로는 로지스틱 회귀법 [5], KNN, 서포트 벡터 머신 (SVM), 의사 결정 트리 등이 있다.
- 회귀(Regression): 레이블 y가 실수인 경우 회귀문제라고 부른다. 데이터들을 쭉 뿌려놓고 이것을 가장 잘 설명하는 직선 하나 혹은 이차함수 곡선 하나를 그리고 싶을 때 회귀기능을 사용한다. 잘 생각해보면 데이터는 입력(x)와 실수 레이블(y)의 짝으로 이루어져있고, 새로운 임의의 입력(x)에 대해 y를 맞추는 것이 바로 직선 혹은 곡선이므로 기계학습 문제가 맞다. 통계학의 회귀분석 기법 중 선형회귀 기법이 이에 해당하는 대표적인 예이다.
---[인용끝]---
[강의대본]
[00:06] (이전의 강의에서) 높은 수준의 지도학습 분류(Supervised Classification) 과정에 대하여 살펴봤다. 이제 구체적인 예를 들어보기로 한다. 결정 트리(Decision Tree)는 아마 가장 이해하기 쉬운 기계학습 알고리즘 이다. 결정트리의 표현이 인간이 결정을 내릴 때 하는 논리적적인 생각과 비슷하기 때문이다. 이번 예를 위해 기계학습 교과서에도 나올만 한 고전적인 문제를 꺼내봤다.
[오늘 테니스를 칠까요?]
[00:30] 로봇 선수 '로비'가 이 질문에 결정을 내려야 하는 기로에 있다. 그 결정은 과거의 경험에서 얻은 자료로 훈련되었다. 말하자면 오늘 테니스를 칠것인가 말것인가의 결정은 다음의 네가지 요인에 달렸다.
[00:41] 맑음, 구름 또는 비로 나타내는 통상 날씨 예측, 더움, 온화함, 추움의 온도, 보통 혹은 높음의 습도, 그리고 강함 혹은 약함의 바람. 이 훈련 자료를 가지고 테니스를 쳤던 지난날의 결정을 추적해 보자.
[01:00] 예를 들어 아홉번째 날(D9)은 추웠지만 습도는 보통, 약한바람과 함께 해가 났었기에 테니스 치기 좋은 날씨였다. 반면 열네번째 날(D14)은 강한 바람과 함게 비가와서 테니스를 치지 못했다. 이런 소규모의 자료 묶음을 가지고 테니스를 칠 것인지 결정할 결정트리를 손으로 만들어 보기로 하자.
[01:19] 처음 만든 결정트리는 이렇다. 일반 날씨 전망, 그러니까 맑음, 흐림 또는 비, 이 세개의 선택지가 있다. 이 학습 자료에 근거 한다면 구름이 드리운 날에는 항상 테니스를 쳤다. 따라서 흐림에서 가지를 뻗으면 바로 최종 결론에 이른다. 바로 테니스를 치기로 분류된다.
[01:36] 만일 맑은 날이라면 결정은 습도(Humidity)에 따라 달라진다. 맑은 날 보통의 습도라면 테니스 치기 좋다. 하지만 맑은 날이라도 습도가 높으면 테니스 치기 좋지 않다.
[01:46] 끝으로 비오는날은 바람의 조건에 달렸다. 비오는 날 바람이 약하면 테니스를 쳐도 좋지만, 비오고 바람도 강하면 좋지 않다.
[01:58] 이제 앞서 본 간단한 자료를 근거로 결정트리를 직접 만들어 보자.
[02:02] 그런데 기계학습 알고리즘은 트리의 각 단계에서 어떤 속성을 주어야 하는지 알게되는 걸까? (두번째 가지치는 단계에서 'Humidity' 대신 'Temperature'를 고를 수도 있다) 트리에서 각 단계 결정을 위해 정해진 것은 없지만 학습자는 새로운 정보를 가장 우선시 하거나 오류를 최소화 하는 방향으로 선택한다. 알고리즘 마다 이런 정보의 가치(information gain)를 취급하는 저마다 기준을 가지고 있다.
[02:19] 이견의 여지가 있지만 가장 흔한 측정법을 한가지를 들어보면, 엔트로피(Entropy)는 예측 가능성(predictablity) 혹은 불확실성(uncertainty)의 정도(분포)를 계량한다. 예를 들어 만일 구름이 드리울 것이라고 예상되면 항상 테니스를 치기로 했다. 따라서 우리는 어떤 확신을 가지고 있는 셈이므로 엔트로피는 0이다(불확실 성이 매우 낮다). 만일 비올것 같은 날씨라면 테니스를 칠 확률이 60%라도 엔트로피는 1에 가깝다(불확실 성이 매우 높다). 정보의 이득(가치)은 해당 질문에 대한 답변에 따라 엔트로피가 감소하는 방향으로 측정한다. 각 속성에 대한 정보이득은 이와 같다.
[02:52] 정보이득(Information Gain)과 관련되어 먼저 어떤 의문이 드는가? 일단 알고리즘으로 트리를 구성하고 나면 이를 미지의 자료에 적용하게된다. 따라서 만일 우리 로봇 '로비'가 어느날 일어나 보니 해가 떠있고 중간정도 습도로 덥고 강한 바람이 불었다. 우리가 만든 결정모형으로는 테니스를 쳐야한다고 예측했다. 이는 바른 결정인가? 강한 바람이 부는 더운 날씨에 정말 테니스를 치고 싶은가? 제아무리 로비라 하더라도 테니스를 칠것인지 말것인지 결정을 (결정트리에) 맞겨놓지 않았던가?
[03:19] 우리가 가진 모형은 항상 학습에 사용했던 자료에 제한된다. 이 예에서 사용했던 학습자료가 너무 적었다. 하지만 이번 강좌에서 봤듯이 훈련용 자료의 부족이 현실의 기계학습의 문제다. 예측이 탄탄하려면 보통 수천개의 훈련용 사례를 활용 한다. 이번 예에서 자료들은 모두 저마다 나름의 특징을 가지고 있었다. 온도 만 해도 덥다, 온화하다, 춥다로 세가지 특징이 있다(모두 이산적, discrete 이다). 하지만 천문학에서 관측 자료는 모두 실수 값을 갖는다.(분류보다 회귀 알고리즘을 사용하는 것이 타당하지 않을까?) 이제 온도를 차갑다, 온화하다, 뜨겁다 대신 특징을 실수 값으로 매겨 보자. 온도의 범위를 섭씨 15 에서 30도로 잡고 화씨로 치면 60 에서 90 도의 범위다.
[03:57] (온도를 단순히 이산적이지 않은 연속으로 놓았더라도) 학습자는 대략 이전과 같은 과정을 따르게된다. 단, 온도를 실수값 범위에 놓고 결정을 지어야 하는 경우만 빼고 말이다. 어떤 온도와 같거나 보다 작은 조건에서 트리를 분기 할 지 감안 해야한다. 다시말해 최적 분기(optimal split) 그 결정의 정보이득(information gain)을 최대화하는 것이어야 한다.
[04:17] 지난번 강의에서 언급한 교사 학습(supervised learning)은 분류(classification)와 회귀(regression)를 모두 포함할 수 있다. 우리의 테니스 트리는 분류의 예다. 결과가 분명히 구분되는 두 가지중 하나다. 로비는 테니스를 치거나 말거나 둘중 하나를 택한다. 우리는 또한 실수값 결과 결정트리에 대해 배웠다. 그것이 우리가 다음에 해야할 일이다. 우리가 은하의 적색편이를 계산하기 위해 결정 트리 회귀를 사용한다면 지난세기 인간 컴퓨터를 놀라게 해왔던 방식이 될 것이다.