머신러닝 예제 데이터 - meosinleoning yeje deiteo

1.1 데이터를 지식으로 바꾸는 지능적인 시스템 구축| 목차 | 1.3 기본 용어와 표기법 소개

이 절에서는 머신 러닝의 세 가지 종류인 지도 학습(supervised learning), 비지도 학습(unsupervised learning), 강화 학습(reinforcement learning)을 살펴보겠습니다. 이 세 가지 학습 종류의 근본적인 차이를 배웁니다. 그리고 개념을 이해할 수 있는 예제를 사용하여 실전 문제에 적용할 수 있는 직관을 길러 봅니다.

머신러닝 예제 데이터 - meosinleoning yeje deiteo

그림 1-1 머신 러닝의 세 가지 학습 종류

지도 학습의 주요 목적은 레이블(label)(주석 1)된 훈련 데이터에서 모델을 학습하여 본 적 없는 미래 데이터에 대해 예측을 만드는 것입니다. 여기서 지도(supervised)는 희망하는 출력 신호(레이블)가 있는 일련의 샘플을 의미합니다.

머신러닝 예제 데이터 - meosinleoning yeje deiteo

그림 1-2 지도 학습

스팸 이메일을 필터링하는 예를 생각해 보죠. 레이블된 이메일 데이터셋에서 지도 학습 머신 러닝 알고리즘을 사용하여 모델을 훈련할 수 있습니다. 이 데이터셋은 스팸 또는 스팸이 아닌 이메일로 정확하게 표시되어 있습니다. 훈련된 모델은 새로운 이메일이 두 개의 범주(category) 중 어디에 속하는지 예측합니다. 이메일 스팸 필터의 예처럼 개별 클래스 레이블이 있는 지도 학습을 (classification)라고 합니다. 지도 학습의 또 다른 종류는 연속적인 값을 출력하는 회귀(regression)입니다.

분류: 클래스 레이블 예측

분류는 지도 학습의 하위 카테고리입니다. 과거의 관측을 기반으로 새로운 샘플(주석 2)의 범주형 클래스 레이블을 예측하는 것이 목적입니다. 클래스 레이블은 이산적(discrete)이고 순서가 없어 샘플이 속한 그룹으로 이해할 수 있습니다. 앞서 언급한 스팸 이메일 감지는 전형적인 이진 분류(binary classification) 작업의 예입니다. 스팸과 스팸이 아닌 이메일 두 개의 클래스 사이를 구분하려고 머신 러닝 알고리즘이 일련의 규칙을 학습합니다.

두 개 이상의 클래스 레이블을 가진 경우가 많습니다. 지도 학습 알고리즘으로 학습한 예측 모델은 훈련 데이터셋에 있는 모든 클래스 레이블을 새로운 샘플에 할당할 수 있습니다. 이런 다중 분(multiclass classification)의 전형적인 예는 손으로 쓴 글자 인식입니다. 알파벳 각 글자를 손으로 쓴 이미지 샘플을 모아서 훈련 데이터셋을 구성합니다. 새로운 글자를 입력으로 제공하면 예측 모델이 일정한 정확도로 알파벳 글자를 예측할 것입니다. 0에서 9까지 숫자가 훈련 데이터셋에 없다면 이 머신 러닝 시스템은 숫자를 인식하지 못할 것입니다.

그림 1330개의 훈련 샘플이 있는 이진 분류 작업의 개념을 나타냅니다. 15개의 샘플은 성 클래스(negative class)로 레이블(뺄셈 기호)되어 있고, 다른 15개의 샘플은 양성 클래스(positive class)로 레이블(덧셈 기호)되어 있습니다. 각 샘플이 두 개의 ,  값에 연관되어 있으므로 2차원 데이터셋입니다. 지도 학습 알고리즘을 사용하여 두 클래스를 구분할 수 있는 규칙을 학습합니다. 이 규칙은 점선으로 나타난 결정 경계(decision boundary)입니다. 새로운 데이터의 ,  값이 주어지면 두 개의 범주 중 하나로 분류합니다.

머신러닝 예제 데이터 - meosinleoning yeje deiteo

그림 1-3 두 개의 클래스를 구분하는 결정 경계

회귀: 연속적인 출력 값 예측

이전 절에서 분류 작업은 범주형 순서가 없는 레이블을 샘플에 할당하는 것이라고 배웠습니다. 두 번째 지도 학습의 종류는 연속적인 출력 값을 예측하는 회귀 분석입니다. 회귀는 예측 변수(predictor variable)(또는 설명 변수(explanatory variable), 입력(input))와 연속적인 반응 변수(response variable)(또는 출력(outcome), 타깃(target))가 주어졌을 때 출력 값을 예측하는 두 변수 사이의 관계를 찾습니다.(주석 3)

예를 들어 학생들의 수학 SAT 점수를 예측한다고 가정해 보죠. 시험 공부에 투자한 시간과 최종 점수 사이에 관계가 있다면 두 값으로 훈련 데이터를 만들고 모델을 학습할 수 있습니다. 이 모델은 시험에 응시하려는 학생들이 공부한 시간을 이용하여 시험 점수를 예측합니다.

Note 회귀는 1886년 프란시스 갈톤(Francis Galton)이 쓴 “Regression towards Mediocrity in Hereditary Stature”에서 유래되었습니다. 갈톤은 사람 키의 분산이 시대가 흘러도 증가하지 않는 생물학적 현상을 설명했습니다. 그는 부모의 키가 자녀에게 전달되지 않는 것을 관찰했습니다. 오히려 자녀 키는 인구 전체 평균으로 회귀합니다.

그림 14선형 회귀(linear regression)의 개념을 나타냅니다. 입력 x와 타깃 y가 주어지면 샘플과 직선 사이 거리가 최소가 되는 직선을 그을 수 있습니다. 일반적으로 평균 제곱 거리를 사용합니다. 이렇게 데이터에서 학습한 직선의 기울기와 절편(intercept)(주석 4)을 사용하여 새로운 데이터의 출력 값을 예측합니다.

머신러닝 예제 데이터 - meosinleoning yeje deiteo

그림 1-4 선형 회귀의 예

1.2.2 강화 학습으로 반응형 문제 해결

강화 학습은 머신 러닝의 또 다른 종류입니다. 강화 학습은 환경과 상호 작용하여 시스템((agent)) 성능을 향상하는 것이 목적입니다. 환경의 현재 상태 정보는 보상(reward) 신호를 포함하기 때문에 강화 학습을 지도 학습과 관련된 분야로 생각할 수 있습니다. 강화 학습의 피드백은 정답(ground truth) 레이블이나 값이 아닙니다. 보상 함수로 얼마나 행동이 좋은지를 측정한 값입니다. 에이전트는 환경과 상호 작용하여 보상이 최대화되는 일련의 행동을 강화 학습으로 학습합니다. 탐험적인 시행착오(trial and error) 방식이나 신중하게 세운 계획을 사용합니다.

강화 학습의 대표적인 예는 체스 게임입니다. 에이전트는 체스판의 상태(환경)에 따라 기물의 이동을 결정합니다. 보상은 게임을 종료했을 때 승리하거나 패배하는 것으로 정의할 수 있습니다.

머신러닝 예제 데이터 - meosinleoning yeje deiteo

그림 1-5 강화 학습

강화 학습에는 여러 하위 분류가 있습니다. 일반적인 구조는 강화 학습 에이전트가 환경과 상호 작용하여 보상을 최대화하는 것입니다. 각 상태는 양의 보상이나 음의 보상과 연관됩니다. 보상은 체스 게임의 승리나 패배처럼 전체 목표를 달성하는 것으로 정의할 수 있습니다. 예를 들어 체스에서 기물의 이동으로 나타난 결과는 각기 다른 환경 상태로 생각할 수 있습니다. 체스 예제를 좀 더 살펴보죠. 체스판의 특정 위치에 도달하는 것이 긍정적인 이벤트와 연관될 수 있습니다. 예를 들어 상대 체스 기물을 잡거나 퀸을 위협하는 것입니다. 반면 어떤 위치는 부정적인 이벤트와 연관됩니다. 예를 들어 다음 차례에 상대에게 기물을 잃게 되는 경우입니다. 매번 차례가 돌아올 때마다 체스 기물을 잃지는 않습니다. 강화 학습은 즉시 또는 지연된 피드백을 기초로 하여 보상을 최대화하는 일련의 단계를 학습합니다.

이 절에서 강화 학습의 개요를 살펴보았습니다. 강화 학습 애플리케이션은 책 범위를 넘어섭니다. 책은 분류, 회귀, 군집에 집중합니다.

1.2.3 비지도 학습으로 숨겨진 구조 발견

지도 학습에서는 모델을 훈련할 때 사전에 옳은 답을 알고 있습니다. 강화 학습에서는 에이전트의 특정 행동을 어떻게 보상할지 그 측정 방법을 정의합니다. 비지도 학습에서는 레이블되지 않거나 구조를 알 수 없는 데이터를 다룹니다. 비지도 학습 기법을 사용하면 알려진 출력 값이나 보상 함수의 도움을 받지 않고 의미 있는 정보를 추출하기 위해 데이터 구조를 탐색할 수 있습니다.

군집: 서브그룹 찾기

군집(clustering)은 사전 정보 없이 쌓여 있는 그룹 정보를 의미 있는 서브그룹(subgroup) 또는 클러스터(cluster)로 조직하는 탐색적 데이터 분석 기법입니다. 분석 과정에서 만든 각 클러스터는 어느 정도 유사성을 공유하고 다른 클러스터와는 비슷하지 않은 샘플 그룹을 형성합니다. 이따금 군집을 비지도 분류(unsupervised classification)라고 하는 이유가 여기 있습니다. 클러스터링은 정보를 조직화하고 데이터에서 의미 있는 관계를 유도하는 훌륭한 도구입니다. 예를 들어 마케터가 관심사를 기반으로 고객을 그룹으로 나누어 각각에 맞는 마케팅 프로그램을 개발할 수 있습니다.

그림 16은 군집이 어떻게 레이블되지 않는 데이터를 특성 과 의 유사도를 기반으로 세 개의 개별적인 그룹으로 조직화하는지 보여 줍니다.

머신러닝 예제 데이터 - meosinleoning yeje deiteo

그림 1- 6 군집의 예

차원 축소: 데이터 압축

비지도 학습의 또 다른 하위 분야는 차원 축소(dimensionality reduction)입니다. 고차원의 데이터를 다루어야 하는 경우는 흔합니다. 즉, 하나의 관측 샘플에 많은 측정 지표가 있습니다. 이로 인해 머신 러닝 알고리즘의 계산 성능과 저장 공간의 한계에 맞닥뜨릴 수 있습니다. 비지도 차원 축소는 잡음(noise) 데이터를 제거하기 위해 특성 전처리 단계에서 종종 적용하는 방법입니다. 이런 잡음 데이터는 특정 알고리즘의 예측 성능을 감소시킬 수 있습니다. 차원 축소는 관련 있는 정보를 대부분 유지하면서 더 작은 차원의 부분 공간(subspace)(주석 5)으로 데이터를 압축합니다.

이따금 차원 축소는 데이터 시각화에도 유용합니다. 예를 들어 고차원 특성을 1차원 또는 2차원, 3차원 특성 공간으로 투영하여 3D2D 산점도(scatterplot)나 히스토그램(histogram)으로 시각화합니다. 그림 17은 비선형(nonlinear) 차원 축소를 적용하여 3D 스위스롤(Swiss Roll) 모양의 데이터를 새로운 2D 특성의 부분 공간으로 압축하는 예를 보여 줍니다.(주석 6)

머신러닝 예제 데이터 - meosinleoning yeje deiteo

그림 1-7 차원 축소의 예


  1. 역주 머신 러닝에서 특정 샘플에 할당된 클래스(class)를 레이블이라고 합니다. 즉, 레이블의 범주(category)가 클래스입니다. 책에서는 혼동을 피하기 위해 category가 레이블 범주를 의미하지 않을 때는 ‘카테고리’로 번역합니다. 또 프로그래밍 언어의 클래스는 ‘파이썬 클래스’, ‘SGDClassifier 클래스’처럼 명확하게 구분하여 사용합니다.

  2. 역주 원서에서는 ‘instance’를 여러 의미로 사용합니다. 혼동을 피하기 위해 ‘example’을 의미할 때는 ‘샘플’로, ‘instance-based’는 ‘사례 기반’으로, 파이썬 객체를 나타낼 때는 ‘인스턴스’로 번역합니다.
  3. 역주 예측 변수를 독립 변수(independent variable)라고도 합니다. 반응 변수는 종속 변수(dependent variable) 또는 설명된 변수(explained variable)라고도 합니다. 이런 용어는 통계 분야에서 유래되었습니다. 책에서는 분류와 회귀를 구분하지 않고 간단하게 입력과 출력(또는 타깃)이라고 부르겠습니다.

  4. 역주 원서에서는 방정식의 상수 항을 가리킬 때 절편(intercept)과 편향(bias)을 혼용하여 사용합니다. 번역서에서는 혼동을 피하기 위해 절편으로 통일합니다. 편향은 과대적합과 과소적합, 분산- 편향 트레이드오프를 설명할 때 사용하겠습니다.

  5. 역주 머신 러닝에서는 입력 데이터의 특성을 하나의 축으로 생각하여 벡터 공간이란 표현이 자주 등장합니다. 특성을 줄여 차원이 낮아진 데이터는 부분 공간이라고 표현합니다

  6. 역주 스위스롤은 크림이나 잼을 넣어 돌돌 말은 형태의 케이크로 롤케이크라고도 합니다. 이 예는 지역 선형 임베딩(Locally Linear Embedding, LLE)을 사용하여 스위스롤 데이터셋의 2D 매니폴드(manifold)를 펼친 것입니다. 매니폴드 학습이나 LLE에 대한 자세한 내용은 <핸즈온 머신러닝>(한빛미디어, 2018)의 8장을 참고하세요.

1.1 데이터를 지식으로 바꾸는 지능적인 시스템 구축| 목차 | 1.3 기본 용어와 표기법 소개