<

Part I: Applied Math and Machine Learning Basics

 

5.           Machine Learning Basics

  Deep learning은 특정 종류의 기계 학습이다. Deep learning을 잘 이해하기 위해서는 기계 학습의 기본 원리를 확실하게 이해해야 한다. 이 장에서는 나머지 책 전체에 적용될 가장 중요한 일반 원칙에 대한 간략한 과정을 제공한다. Deep learning을 이제 막 시작하는 사람 또는 넓은 시야를 원하는 사람들은 Murphy (2012) 또는 Bishop (2006)과 같이 기초를 좀 더 포괄적으로 다루는 기계 학습 교과서를 고려해보기 바란다. 이미 기계 학습의 기본에 익숙하다면 5.11.절로 건너 뛰어도 좋다. 이 절에서는 Deep learning 알고리즘의 개발에 크게 영향을 미치는 전통적인 기계 학습 기술에 대한 몇 가지 관점을 다룬다.

  우리는 학습 알고리즘이 무엇인지에 대해 정의하고 예시를 제시한다: linear regression algorithm. 그런 다음 training data를 맞추는(fitting) 것이 새로운 데이터로 일반화되는 패턴을 찾는 문제와 어떻게 다른지 설명한다. 대부분의 기계 학습 알고리즘에는 학습 알고리즘 외부에서 결정되어야 하는 Hyperparameter라는 설정이 있다. 우리는 추가 데이터를 사용하여 이를 설정하는 방법에 대해 논의한다. 기계학습은 근본적으로 복잡한 기능을 통계적으로 추정하기 위해 컴퓨터 사용에 대한 강점을 높이고 이러한 기능에 대한 신뢰구간 입증에 대한 강조를 줄인 응용 통계의 한 형태다. 그러므로 우리는 통계에 대한 두 가지 중심 접근 방식을 제시한다: frequentist estimator(빈도 추정)와 Bayesian inference(베이지안 추론). 대부분의 기계 학습 알고리즘은 supervised learning(감독 학습)과 unsupervised learning(감독되지 않은 학습)의 범주로 나눌 수 있다. 우리는 이러한 범주를 설명하고 각 범주에서 간단한 학습 알고리즘의 몇 가지 예를 제공한다. 대부분의 Deep learning 알고리즘은 stochastic gradient descent라는 최적화 알고리즘을 기반으로 한다. 우리는 최적화 알고리즘, cost function, Model, Dataset과 같은 다양한 알고리즘 구성 요소를 결합하여 기계 학습 알고리즘을 만드(build)는 방법을 설명합니다. 마지막으로, 5.11 절에서 우리는 전통적인 기계 학습의 몇 가지 한계를 설명한다. 이러한 어려움은 이 문제를 극복하는 Deep learning 알고리즘 개발의 동기(motive)가 된다.

 

5.1 Learning Algorithms

  기계 학습 알고리즘은 데이터로부터 학습할 수 있는 알고리즘이다. 여기서 "학습하다"는 무엇을 의미할까? Mitchell(1997)은 “A computer program is said to learn from experience E with respect to some class of tasks \(T\) and performance measure \(P\) , if its performance at tasks in \(T\) , as measured by \(P\) , improves with experience \(E\)(컴퓨터 프로그램은 어떤 종류의 작업 \(T\)에서 성능 측정 \(P\)에 의한 측정이 경험 \(E\)로 향상된다면, \(T\)와 \(P\)에 관련하여 \(E\)로부터 학습한다).”라는 정의를 제시했다. 매우 다양한 경험 \(E\)들과 작업 \(T\)들과 성능 측정 \(T\)들을 상상할 수 있다. 이 책에서 이러한 각각의 entity에 대해 어떤 것이 사용되어야 하는지 공식적 정의하지 않는다. 대신 다음 절에서는 기계 학습 알고리즘을 구성하는 데 사용할 수 있는 다양한 종류의 작업, 성능 측정 및 경험에 대한 직관적 인 설명과 예제를 제공한다.

 

5.1.1 The Task, \(T\)

  사람이 작성하고 설계 한 고정된 프로그램으로 해결하기가 어려운 작업을 기계 학습을 통해 해결할 수 있다. 과학적, 철학적 관점에서 흥미로운 점은 기계 학습에 대한 우리의 이해를 발전 시키려면 지능(intelligence)의 기본 원리에 대한 이해를 발전시켜야하기 때문이다.

  "Task(작업)"이라는 단어의 비교적 공식인 정의에서, 학습 과정 자체는 task가 아니다. 학습은 작업을 수행할 수 있는 능력을 얻는 수단이다. 예를 들어, 로봇이 걷기를 원한다면 걷기가 task이고, 걷기를 학습하도록 로봇을 프로그래밍하거나 수동으로 걷는 방법을 지정하는 프로그램을 직접 작성할 수도 있다.

  기계 학습 task는 일반적으로 기계 학습 시스템이 어떻게 example(예제)를 처리하는지로 기술된다. Example은 기계 학습 시스템이 처리하기를 바라는 일부 객체(object) 또는 이벤트로부터 정량적으로 측정된 특징(feature)들의 모음이다. 우리는 전통적으로 예제를 벡터 \(\boldsymbol{x}\in \mathbb{R}^{n}\)로 나타낸다. 여기서 벡터의 각 성분 \(x_{i}\)는 또 다른 특징(feature)이다. 예를 들어, 이미지의 feature는 보통 이미지의 픽셀 값이다.

  기계 학습으로 많은 종류의 task를 해결할 수 있다. 가장 일반적인 기계 학습 task에는 다음이 포함된다.

 

\( \bullet \)   Classification(분류): 이 유형의 task에서 컴퓨터 프로그램은 입력이 속하는 \(k\) 개의 카테고리를 지정한다. 이 task를 해결하기 위해, 학습 알고리즘은 대부분 \(\mathbb{R}^{n}\rightarrow\{1,\ldots,k\}\)이다. \(y=f(\boldsymbol{x})\) 일 때, 모델은 벡터 \(\boldsymbol{x}\)로 기술된 입력을 숫자로 된 코드(numeric code) y로 식별하는 카테고리에 할당한다. 다른 classification task의 변형들이 존재한다. 예로, class에 대한 확률 분포를 출력하는 \(f\)가 있을 수 있다. classification task의 한가지 예로, 입력이 이미지이고 출력이 이미지의 개체를 식별하는 숫자 코드 인 객체 인식(Object recognition)이 있습니다. Willow Garage PR2 로봇은 여러 종류의 음료를 인식하고 명령에 따라 사람들에게 전달하는 웨이터 역할을 할 수 있다 (Goodfellow et al., 2010). 현대의 객체 인식은 Deep learning (Krizhevsky et al., 2012; Ioffe and Szegedy, 2015)으로 가장 잘 수행된다. 객체 인식은 컴퓨터가 얼굴을 인식할 수 있게 해주는 것과 동일한 기본 기술이며 (Taigman 외 2014), 사진 모음집에서 사람들을 자동으로 태그하고 컴퓨터가 더 자연스럽게 사용자와 상호 작용할 수 있게 해준다.
 

\( \bullet \)   Classification with missing inputs(누락된 입력이 있는 분류): 입력 벡터의 모든 측정이 항상 제공된다는 보장이 없으면 분류가 어려워진다. 분류 작업(classification task)을 해결(solve)하기 위해, 학습 알고리즘은 입력(벡터)에서 카테고리 출력(categorical output)으로의 단일 함수 매핑 만 정의하면 된다. 일부 입력이 누락될 수 있는 경우, 하나의 classification function을 제공하기보다는 학습 알고리즘은 function 세트를 학습해야한다. 각 fuction은 \(\boldsymbol{x}\)를 입력이 누락된 다른 subset으로 분류하는 것과 같다. 이러한 종류의 상황은 많은 경우 의료 진단에서 자주 발생하는데, 의학 검사가 비싸거나 침습적(invasive)이기 때문이다. 이와 같은 큰 function set을 효율적으로 정의하는 한 가지 방법은 관련 변수 모두에 대한 확률 분포를 학습한 다음 누락된 변수를 무시하여 분류 작업을 하는 것이다. \(n\) 개의 입력 변수를 사용하면 누락된 입력 집합에 필요한 \(2^n\) 개의 다른 분류 함수를 구할 수도 있지만, joint probability distribution을 설명하는 단일 함수만 학습해도 된다. Goodfellow et al. (2013b) 에서 이러한 방식으로 분류 작업에 적용되는 deep probabilistic model의 사례를 확인 할 수 있다. 이 절에서 설명하는 다른 많은 task는 누락된 입력과 함께 작동하도록 일반화할 수도 있다. 누락된 입력이 있는 classfication은 기계 학습이 할 수 있는 것의 한 예일뿐이다.
 

\( \bullet \)   Regression(회귀): 이 유형의 task에서 컴퓨터 프로그램은 입력이 주어진 경우 어떤 수치를 예측해야 한다. 이 task를 해결하기 위해, 학습 알고리즘은 함수 \(f\ : \ \mathbb{R}^{n} \rightarrow \mathbb{R}\) 을 출력하도록 요청 받는다. 이 유형의 task는 출력 형식이 다르다는 점을 제외하면 classification과 유사하다. Regression task의 예로는 피보험자가 기대하는 청구 금액 (보험료를 설정하는 데 사용됨)을 예측하거나 미래의 유가 증권 가격을 예측하는 것등이 있다. 이러한 종류의 예측은 거래 알고리즘에도 사용된다.
 

\( \bullet \)   Transcription(필사): 이러한 유형의 task에서 기계 학습 시스템은 주로 데이터의 상대적으로 구조화되지 않은 표현을 관측하고 이를 개별 텍스트 형식으로 변환해야 한다. 예를 들어, OCR (Optical Character Recognition)에서, 컴퓨터 프로그램은 텍스트를 포함하는 사진을 보고하고 이 문자를 일련의 문자 (ASCII 또는 유니 코드 포맷 등)의 형태로 반환해야 한다. 구글 스트리트 뷰 (Google Street View)는 이러한 방식으로 주소를 처리하는 데 deep learning을 사용한다 (Goodfellow et al., 2014d). 또 다른 예는 컴퓨터 프로그램에 오디오 파형이 주어지지면, 녹음에서 사용된 단어를 의미하는 문자 또는 단어 ID 코드를 출력하는 음성 인식이다. Deep learning은 Microsoft, IBM 및 Google을 포함한 주요 회사에서 사용되는 현대 음성 인식 시스템의 중요한 구성 요소이다 (Hinton et al., 2012b).
 

\( \bullet \)   Machine translation(기계 번역): 기계 번역 task에서 입력은 이미 일부 언어의 기호 시퀀스로 구성되어 있으며, 컴퓨터 프로그램은 이를 다른 언어로 된 기호 시퀀스로 변환해야 한다. 이것은 일반적으로 자연어에 적용된다 (예: 영어에서 프랑스어로 번역). Deep learning은 최근 이러한 종류의 task에 중요한 영향을 미치기 시작했다 (Sutskever et al., 2014; Bahdanau et al., 2015).
 

\( \bullet \)   Structured output (구조화된 출력): Structured output task는 출력이 원소 간에 중요한 관계가 있는 벡터(또는 여러 값을 포함하는 다른 데이터 구조)인 모든 task를 포함한다. 이것은 광범위한 범주이며 위에서 설명한 필사와 번역 task 뿐만 아니라 다른 많은 task를 포함한다. 한가지 예는 자연어 문장을 parsing하여 문법 구조를 기술하는 tree로 매핑하고, tree의 node에 동사, 명사, 부스당 태그를 지정하는 것이다. Parsing task에 적용되는 Deep learning의 예는 Collobert (2011)를 참조하라. 또 다른 예는 컴퓨터 프로그램이 이미지의 모든 픽셀을 특정 카테고리에 할당하는 이미지의 pixel-wise segmentation이다. 예를 들어, 항공 사진에서 도로의 위치에 주석을 달기(annotate) 위해 Deep learning을 사용할 수 있다 (Mnih and Hinton, 2010). 주석 스타일(annotate style) task처럼 출력의 모양이 입력의 구조를 반드시 반영(mirror) 해야 하는 것은 아니다. 예를 들어 이미지 캡션 작성(image captioning)에서 프로그램은 이미지를 관찰하고 이미지를 설명하는 자연어 문장을 출력한다 (Kiros 외, 2014a, b, Mao 외 2015, Vinyals 외, 2015b, Donahue et al. , 2014, Karpathy and Li, 2015, Fang et al., 2015, Xu et al., 2015). 이러한 task는 구조화된 출력 작업(structured output task)이라고 하는데, 프로그램이 모두 밀접하게(tightly) 상호 관련된(inter-related) 여러 값을 출력해야하기 때문이다. 예를 들어, 이미지 캡션 작성 프로그램에서 작성한 단어는 유효한 문장을 형성해야 한다.
 

\( \bullet \)   Anomaly detection (이상 징후 탐지): 이 유형의 task에서 컴퓨터 프로그램은 일련의 이벤트 또는 객체를 탐색하고 그 중 일부를 비정상적(unusual) 또는 이례적(atypical)으로 표시한다. 이상 징후 탐지 task의 예로는 신용 카드 사기 탐지가 있습니다. 구매 습관을 모델링하여 신용 카드 회사가 카드 오용을 감지할 수 있다. 절도범이 당신의 신용 카드 또는 신용 카드 정보를 도용한 경우, 절도범의 구매는 종종 자신의 구매 유형보다 다른 구매 확률 분포에서 나온다. 신용 카드 회사는 카드로 평소와 다른 구매(uncharacteristic purchase)를 한 즉시 계정을 정지하여 사기를 예방할 수 있다. Chandola et al. (2009)에서 이상 징후 탐지 방법에 대해 조사했다.
 

\( \bullet \)   Synthesis and sampling (합성과 샘플링): 이 유형의 task에서 기계 학습 알고리즘은 학습 데이터의 것과 유사한 새로운 예제들을 생성한다. 기계 학습을 통한 합성 및 샘플링은 아티스트가 손으로 많은 양의 콘텐츠를 생성하는 것처럼 비용이 많이 들거나 지루할 수 있는 미디어 응용프로그램에 유용할 수 있다. 예를 들어, 비디오 게임은 아티스트가 수동으로 각 픽셀에 라벨을 붙이도록 요구하지 않고 큰 물체 나 풍경에 대한 텍스처를 자동으로 생성 할 수 있는다 (Luo 외., 2013). 어떤 경우에는 샘플링이나 합성 절차에서 입력에 따라 특정 종류의 출력을 생성한다. 예를 들어 음성 합성 task에서, 프로그램에 글로 된 문장을 넣어 음성 오디오로 변환한다. 이것은 일종의 structed output task이지만, 출력을 보다 자연스럽고 사실적으로 보이게 하기 위해 각 입력에 정해진 출력이 없다는 추가 조건을 넣고, 출력이 큰 변화를 가지도록 명시한다.
 

\( \bullet \)   Imputation of missing values (누락 된 값의 대체): 이 유형의 task에서는 기계 학습 알고리즘에 새로운 항목 \(\boldsymbol{x} \in \mathbb{R}^{n}\)가 주어 지지만, 일부 항목 \(x_i\)가 누락되어 있다. 알고리즘은 이 누락된 항목에 대한 예측 값을 구한다.
 

\( \bullet \)   Denoising(잡음 제거): 이 유형의 task에서 기계 학습 알고리즘은 깨끗한 예제(clean example) \(\boldsymbol{x}\in \mathbb{R}^{n}\)에서 알 수 없는 손상 프로세스에 의해 얻어진 손상된 예제(corrupted example) \(\tilde{\boldsymbol{x}}\in \mathbb{R}^{n}\)을 입력으로 받는다. learner는 손상된 버전 \(\tilde{\boldsymbol{x}}\)로부터 깨끗한 예제 \(\boldsymbol{x}\)를 예측하거나, 보다 일반적으로 조건부 확률 분포 \(p(\boldsymbol{x} | \tilde{\boldsymbol{x}}\)를 예측해야 한다.
 

\( \bullet \)   Density estimation or probability mass function estimation (밀도 추정 또는 확률 질량 함수 추정): 밀도 추정 문제에서, 기계 학습 알고리즘은 함수 \(p_{\rm{model}}:\mathbb{R}^n \rightarrow \mathbb{R}\)을 학습한다. \(p_{\rm{model}}(\boldsymbol{x})\)는 example들로 부터 주어지는 공간에서의 확률 밀도 함수 (\(\mathrm{x}\)가 연속 일 경우) 또는 확률 질량 함수 (\(\mathrm{x}\)가 이산 경우)로 해석될 수 있다. 이러한 task를 잘 수행하려면 (성능 측정 \(P\)에 대해 논의할 때 의미하는 것을 정확히 지정해야 한다), 알고리즘은 관측한 데이터의 구조를 학습해야 한다. 예제 무리(example cluster)가 어디에서 많이 발생하고, 어디에서 발생 가능성이 낮은 지 알아야한다. 위에서 설명한 task의 대부분 학습 알고리즘은 적어도 암묵적으로 확률 분포의 구조를 캡처해야 한다. 밀도 추정을 통해 우리는 그 분포를 명시 적으로 포착할 수 있다. 근본적으로 우리는 다른 task를 해결하기 위해 그 분포를 사용할 수 있다. 예를 들어 확률 분포 \(p(\boldsymbol{x})\)를 얻기 위해 밀도 추정을 수행했다면, 누락 값 대체(missing value imputation) task를 위해 이 분포를 사용할 수 있다. 값 \(x_{i}\)가 누락되고 \(\boldsymbol{x}_{-i}\)로 표시된 다른 모든 값이 주어지면, 그 값의 분포가 \(p (xi\ |\ \boldsymbol{x}_{-i})\)로 주어짐을 알 수 있다. 실제로 많은 경우에 \(p(\boldsymbol{x})\)에 필요한 연산이 계산적으로 다루기 힘들기 때문에 밀도 추정이 항상 이러한 모든 관련 task을 해결할 수 있는 것은 아니다.
 

  물론 많은 다른 task와 task 유형이 가능하다. 여기에 나열된 task 유형은 task의 엄격한 분류를 정의하는 것이 아니라 기계 학습이 수행할 수 있는 task의 예를 제공하기위한 것이다.

 

5.1.2 The Performance Measure, \(P\)

  기계 학습 알고리즘의 능력을 평가하기 위해서는 성능의 정량적 측정을 설계해야 한다. 보통 이 성능 측정치 \(P\)는 시스템에 의해 수행되는 특정한(specific) 작업 \(T\)에 한 한다.

  Classification, classification with missing inputs, transcription과 같은 작업의 경우 모델의 정확도(accuracy)를 측정하는 경우가 많다. Accuracy는 모델이 올바른 결과를 내는 비율이다. 모델이 잘못된 결과를 내는 비율 인 error rate를 측정하여 동일한 정보를 얻을 수도 있다. 우리는 종종 error rate를 expected 0-1 loss라고 부릅니다. 특정 사례에 대한 0-1 loss는 올바르게 분류된 경우 0이고 그렇지 않은 경우 1이다. 밀도 추정과 같은 작업의 경우 accuracy, error rate, 0-1 loss 등을 측정하는 것은 의미가 없다. 대신, 우리는 각 사례에 대해 모델에 연속 가치 평가 점수(continuous-valued score)를 부여하는 다른 성과 지표(performance metric)를 사용해야한다. 가장 일반적인 방법은 평균 로그 확률(average log-probability)을 사용하는 것이다.

  일반적으로 우리는 기계 학습 알고리즘이 이전에 보지 못했던 데이터에 대해 얼마나 잘 수행하는지에 관심이 있다. 이것은 실제 세계에서 알고리즘이 얼마나 잘 동작할지 결정하기 때문이다. 그러므로 우리는 기계 학습 시스템 학습에서 사용된 데이터와 분리된 test set으로 성능을 평가한다.

  성능 측정 방법의 선택은 간단하고(straightforward) 객관적(objective)으로 보일 수 있지만, 시스템의 원하는 동작과 잘 일치하는 성능 측정 방법을 선택하기는 어렵다.

  어떤 경우에는 무엇을 측정해야 할지 결정하기 어렵기 때문이다. 예를 들어, 필사 작업(transcription task)을 수행할 때 전체 시퀀스의 accuracy를 측정해야 할까? 아니면 시퀀스의 부분적인 신뢰도를 제공하는 보다 세밀한 측정을 사용해야할까? Regression task 수행 시, 작은 실수를 자주 만드는 것과 큰 실수를 가끔 만드는 것 중 어떤 것에 큰 페널티를 주어야 할까? 이런 종류의 선택은 응용프로그램에 따라 다르다.

  또 다른 경우, 우리가 어떤 양을 측정하고 싶은지는 알고 있지만, 그 측정이 비현실적 일 수 있다. 예를 들어, 이것은 밀도 추정에서 자주 발생한다. 가장 좋은 확률 모델은 암시적으로 확률 분포를 나타낸다. 그런 모델에서 공간의 특정 지점에 할당된 실제 확률 값을 계산하는 것은 어렵다. 이런 경우 설계 목표에 부합하는 다른 기준을 만들거나, 원하는 기준에 적합하게 근사화 해야 한다.

 

5.1.3 The Experience, \(E\)

  기계 학습 알고리즘은 학습 과정 동안 어떤 종류의 경험을 하는지에 따라, supervisedunsupervised로 분류될 수 있다.

  이 책의 대부분의 학습 알고리즘은 dataset 전체를 경험할 수 있는 것으로 이해될 수 있다. Dataset은 5.1.1절에 정의된 많은 example들의 모음이다. 때로는 examples data points라고도 한다.

  통계학자와 기계학습 연구자가 연구한 가장 오래된 dataset 중 하나는 Iris dataset이다(Fisher, 1936). 그것은 150 Iris 식물의 다른 부분의 측정 모음이다. 각 개별 식물은 하나의 example에 해당한다. 각 example 내의 특징(feature)은 식물의 각 부분의 측정치이다: 꽃받침 길이, 꽃받침 넓이, 꽃잎 길이, 꽃잎 넓이. 또한 dataset 은 식물이 속한 종에 대한 정보를 가지고 있다. Dataset 내에는 세가지 다른 종이 있다.

  Unsupervised learning (비 지도 학습) 알고리즘많은 feature를 포함하는 dataset을 경험하고, 이 dataset의 구조에 대한 유용한 속성을 학습한다. Deep learning에서 우리는 주로 dataset을 생성하는 전체 확률 분포를 학습하려 하는데, 밀도 추정과 같이 명시적으로 하거나 합성이나 잡음 제거 같이 암시적으로 학습한다. 다른 unsupervised learning 알고리즘은 dataset을 유사한 예제의 클러스터(cluster)로 나누는 클러스터링(clustering)과 같은 다른 역할을 수행한다.

  지도 학습(Supervised learning) 알고리즘feature들을 포함하는 dataset을 경험하지만, 각 example은 연결되는 label이나 target이 있다. 예를 들어, Iris dataset은 각 Iris 식물의 종이 주석으로 표시된다. Supervised learning 알고리즘은 iris dataset을 연구하고, iris 식물의 측정 결과에 따라 세가지 다른 종으로 분류하는 방법을 배울 수 있다.

  대략적으로, unsupervised learning은 임의의 벡터 \(\mathrm{x}\)의 몇 가지 example을 관측하고, 확률 분포 \(p(\mathrm{x}\) 또는 그 분포의 일부 feature를 암시적 또는 명시적으로 학습하는 것을 포함한다. 반면, supervised learning 임의의 벡터 \(\mathrm{x}\)의 몇 가지 example과 관련된 값 또는 벡터 \(\mathrm{y}\)를 관측하고, 일반적으로 \(p (\mathrm{y}\ |\ \mathrm{x})\)를 추정함으로써 \(\mathrm{x}\)로 부터 \(\mathrm{y}\)의 예측을 학습하는 것을 포함한다. Supervised learning이라는 용어는 기계 학습 시스템에 무엇을 해야 하는지를 보여주는 강사나 교사가 제공하는 목표 \(\mathrm{y}\)의 관점에서 유래한다. unsupervised learning의 경우, 강사나 교사가 없으므로, 알고리즘은 가이드 없이 데이터를 이해하는 법을 배워야 한다.

  Unsupervised learning 과 supervised learning은 정식으로 정의된 용어가 아니다. 이들 사이의 경계선은 종종 불분명하다. 많은 기계 학습 기술들을 사용해 두 가지 task를 수행할 수 있다. 예를 들어, 확률의 체인 룰 규칙(the chain rule of probability)은 벡터 \(\mathrm{x}\in \mathbb{R}^{n}\)에 대해 joint distribution이 다음과 같이 분해 될 수 있음을 명시한다.

\[p(\displaystyle \mathrm{x})=\prod_{i=1}^{n}p(\mathrm{x}_{i}|\mathrm{x}_{1},\ \ldots,\ \mathrm{x}_{i-1})\tag{5.1}\]

이 분해는 우리가 모델링 \(p(\mathrm{x})\)를 \(n\)개의 supervised learning으로 나누어 표면상으로는 unsupervised 문제를 풀 수 있음을 의미한다. 또는, 전통적인 unsupervised learning 기술을 사용하여 \(p(y\ |\mathrm{x})\)와 joint distribution \(p(\mathrm{x},\ y)\)를 학습함으로써 추론하여 supervised learning 문제를 풀 수 있다.

\[p(y|\displaystyle \mathrm{x})=\frac{p(\mathrm{x},y)}{\sum_{y'}p(\mathrm{x},y')}\tag{5.2}\]

Unsupervised 학습과 supervised 학습은 완전히 형식적이거나 별개의 개념은 아니지만 기계 학습 알고리즘으로 수행하는 작업을 대략 범주화 하는데 도움된다. 일반적으로 사람들은 regression 학습, 분류, 구조화된 출력 문제를 supervised learning이라고 한다. 다른 작업을 지원하는 밀도 추정은 대개 unsupervised learning으로 간주된다.

  학습 패러다임의 다른 변형도 가능하다. 예를 들어, semisupervised learning 에서는 supervision target을 포함하는 사례도 있지만 그렇지 않은 사례도 있다. multi-instance learning에서 example의 전체 모음은 class의 example를 포함하거나 포함하지 않는 것으로 labeling 되지만 모음(collection)의 개별 구성원에는 label이 지정되지 않는다. Deep learning을 사용한 multi-instance learning의 최근 사례는 Kotzias et al. (2015)을 참조하라.

  일부 기계 학습 알고리즘은 고정된 dataset만 경험하지 않는다. 예를 들어, 강화 학습(reinforcement learning) 알고리즘은 환경과 상호 작용하므로 학습 시스템과 그 경험 사이에 피드백 루프가 있다. 이러한 알고리즘은이 책에서 다루지 않는다. 강화 학습에 대한 정보는 Sutton and Barto (1998) 또는 Bertsekas and Tsitsiklis (1996), Mnih et al. (2013)을 통해 강화 학습에 대한 deep learning 방법을 제시한다.

  대부분의 기계 학습 알고리즘은 단순히 dataset를 경험한다. Dataset은 여러가지 방법으로 설명할 수 있다. 모든 경우에 dataset은 feature들의 모음으로 이루어진 example들의 모음이다.

  Dataset를 설명하는 일반적인 방법 중 하나는 design 행렬이다. design 행렬은 각 행에 다른 example이 들어있는 행렬이다. 행렬의 각 열은 다른 feature이다. 예를 들어 Iris dataset에는 각 예제에 대해 네 가지 feature가 있는 150 개의 example이 포함되어 있다. 이것은 우리가 행렬 \(\boldsymbol{X} \in \mathbb{R}^{150\times 4}\)를 사용하여 dataset을 나타낼 수 있음을 의미한다. 여기서 \(X_{i,1}\)는 \(i\)번째 식물의 꽃받침 길이이고 \(X_{i,1}\)는 꽃받침 넓이 이다. 우리는 대부분의 학습 알고리즘을 design 행렬 dataset에서 어떻게 작동하는지 이 책에서 설명할 것이다.

물론 dataset을 design 행렬로 설명하려면 각 example을 벡터로 설명할 수 있어야 하며 각 벡터는 동일한 크기여야 한다. 이것이 항상 가능한 것은 아니다. 예를 들어, 너비와 높이가 다른 사진 모음이 있는 경우 다른 사진에는 다른 픽셀 수를 가지므로 모든 사진을 동일한 길이의 벡터로 기술 할 수 있는 것은 아니다. 9.7절과 10 장에서는 서로 다른 유형의 heterogeneous data(이종 데이터)를 처리하는 방법을 설명한다. 이와 같은 경우 dataset을 \(m\) 행이 있는 행렬로 설명하는 대신 \(m\)개의 원소가 포함된 세트로 설명한다. \(\{\boldsymbol{x}^{(1)},\ \boldsymbol{x}^{(2)},\ldots, \boldsymbol{x}^{(m)}\}\). 이 표기법은 두 개의 예제 벡터 \(\boldsymbol{x}^{(i)}\)와 \(\boldsymbol{x}^{(j)}\)이 같은 크기임을 의미하지 않는다.

Supervised 학습의 경우, example에는 label 또는 target은 물론 feature 모음이 포함되어 있다. 예를 들어, 학습 알고리즘을 사용하여 사진에서 물체 인식을 수행하려면, 각 사진에 어떤 물체가 있는지를 지정해야 한다. 사람을 나타내는 0, 자동차를 나타내는 1, 고양이를 나타내는 2 등과 같은 숫자 코드로 이를 수행할 수 있다. Feature observations(기능 관찰) \(X\)의 design 행렬을 포함하는 dataset로 작업할 때 종종 label의 벡터 \(\boldsymbol{y}\)를 제공한다. \(y_{i}\)는 example \(i\)의 label을 제공한다.

물론 label이 단일 숫자 이상일 수 있다 예를 들어, 만약 우리가 언어 인식 시스템을 훈련시켜 문장 전체를 베끼고 싶다면, 각 예제 문장의 label은 단어의 시퀀스이다.

Supervised와 unsupervised 학습에 대한 공식 정의가 없는 것처럼, dataset 또는 경험에 대한 엄격한 분류법도 없다. 여기에 설명된 구조는 대부분의 경우를 다루지만, 새로운 용도에 맞게 새로운 구조를 설계하는 것은 항상 가능하다.

 

5.1.4 Example: Linear Regression

  경험을 통해 컴퓨터 프로그램의 성능을 향상시킬 수 있는 알고리즘으로 기계학습 알고리즘을 정의하는 것은 다소 추상적이다. 이것을 더 구체적으로 만들기 위해, 간단한 기계 학습 알고리즘의 예를 제시하는데, linear regression이 그것이다. 우리는 이 예제를 반복적으로 사용해서 소개하는 기계 학습의 동작을 이해하는데 도움되도록 할 것이다.

  이름에서 알 수 있듯이 linear regression(선형 회귀)은 regression 문제를 해결한다. 즉, 목표는 벡터 \(\boldsymbol{x}\in \mathbb{R}^{n}\)를 입력으로 사용하고 스칼라 \(y \in \mathbb{R}\)의 값을 출력으로 예측할 수 있는 시스템을 구축하는 것이다. linear regression의 경우, 출력은 입력의 선형 함수다. \(\hat{y}\)를 모델이 예측해야 하는 \(y \) 값이라고 하자. 우리는 출력을 다음과 같이 정의한다.

\[\hat{y}=\boldsymbol{w}^{\top}\boldsymbol{x}\tag{5.3}\]

  여기서 \(\boldsymbol{w}\in \mathbb{R}^{n}\)는 매개 변수(parameter) 벡터 이다.

  매개변수는 시스템의 동작을 제어하는 값이다. 이 경우 \(w_i\)는 모든 feature의 기여도(contribution)를 더하기 전에 feature \(x_i\)에 곱하는 계수다. \(\boldsymbol{w}\)를 각 feature가 예측(prediction)에 어떻게 영향을 미치는지 결정하는 일련의 weight(가중치)로 생각 할 수 있다. feature \(x_i\)가 양의 가중치 \(w_i\)를 받는 경우, 그 feautre를 증가시키면 예측값 \( \hat{y}\)가 증가한다. feature가 음의 가중치를 받는 경우, 그 feature의 값을 증가시키면 예측값는 감소한다. feature의 가중치가 큰 경우 예측에 큰 영향을 주고, 가중치가 0인 경우 예측에 영향을 주지 않는다.

  따라서 우리는 task \(T\)를 정의할 수 있다: \(\hat{y}=\boldsymbol{w}^{\top}\boldsymbol{x}\)를 출력하여 \(\boldsymbol{x}\)로 부터 \(y\)를 예측. 다음으로 성능 측정 \(P\)를 정의할 필요가 있다.

  학습 시 사용하지 않고, 모델 성능이 얼마나 뛰어난지 평가하는 데만 사용하는 \(m\)개의 example 입력이 있고, 각각의 example에 대해 \(y\)의 정확한 값을 제공하는 regression target 벡터를 가지고 있다고 하자. 이 dataset은 평가용으로만 사용되므로 test set이라고 한다. 입력의 design 행렬을 \(\boldsymbol{X}^{(\mathrm{test})}\), regression target 벡터를 \(\boldsymbol{y}^{(\mathrm{test})}\)라고 한다.

  모델의 성능을 측정하는 한 가지 방법은 test set에서 모델의 평균 제곱 오차(mean squared error)를 계산하는 것이다. \(\boldsymbol{y}^{(\mathrm{test})}\)가 test set에서 모델의 예측을 제공하면 평균 제곱 오차는 다음과 같이 주어진다.

\[\mathrm{MSE}_{\mathrm{test}} =\frac{1}{m} \sum\limits_i {\left( { \hat{y}^{(\mathrm{test})} - y^{(\mathrm{test})} } \right)_i^2} \tag{5.4}\]

  직관적으로, \( \hat{y}^{(\mathrm{test})}=y^{(\mathrm{test})} \) 일 때이 오류 측정 값이 0으로 감소 함을 알 수 있다. 우리는 또한 다음을 알 수 있다.

\[\displaystyle \mathrm{MSE}_{\mathrm{test}}\ =\frac{1}{m}\left\|\hat{y}^{(\mathrm{test})}-y^{(\mathrm{test})}\right\|_{2}^{2}\tag{5.5}\]

  예측(predictions)과 목표(targets) 사이의 유클리드 거리(Euclidean distance)가 증가할 때마다 error가 증가한다.

  기계 학습 알고리즘을 만들기 위해서는 training set \((X^{(\mathrm{train})},\ y^{(\mathrm{train})})\)를 관측하여 \(\mathrm{MSE}_{\mathrm{train}}\)를 줄이는 방식으로 weight를 향상시키는 알고리즘을 설계해야 한다. 직관적인 방법 (5.5.1 절에서 나중에 증명할 것입니다)은 training set 인 \(\mathrm{MSE}_{\mathrm{train}}\)의 mean squared error를 최소화하는 것이다.

\(\mathrm{MSE}_{\mathrm{train}}\)을 최소화 하기 위해, gradient가 0 인 부분을 간단히 풀 수 있다.

\[\nabla_{w}\mathrm{MSE}_{\mathrm{train}} =0\tag{5.6}\]

\[\Rightarrow \displaystyle \nabla_{w}\frac{1}{m}\left\|\hat{y}^{(\mathrm{train})} - y^{(\mathrm{train})} \right\|_{2}^{2} = 0\tag{5.7}\]

\[\Rightarrow\ \frac{1}{m}\nabla_{w}\left\|X^{(\mathrm{train})}w\ -\ y^{(\mathrm{train})}\right\|_{2}^{2}\ =\ 0\tag{5.8}\]

\[\Rightarrow\ \nabla_{w}\left( { X^{(\mathrm{train})} w - y^{(\mathrm{train})} } \right)^{\top} \left( {X^{(\mathrm{train})}w\ -\ y^{(\mathrm{train})} } \right) =\ 0\tag{5.9}\]

\[\Rightarrow\ \nabla_{w}\left( w^{\top} X^{(\mathrm{train})\top} X^{(\mathrm{train})} w- 2 w^{\top} X^{(\mathrm{train})\top} y^{(\mathrm{train})} + y^{(\mathrm{train})\top} y^{(\mathrm{train})} \right) =\ 0\tag{5.10}\]

\[2 X^{(\mathrm{train})\top} X^{(\mathrm{train})} w - 2 X^{(\mathrm{train})\top} y^{(\mathrm{train})} = 0 \tag{5.11}\]

\[w=\left( { X^{(\mathrm{train})\top} X^{(\mathrm{train})} } \right)^{-1} X^{(\mathrm{train})\top} y^{(\mathrm{train})} = 0 \tag{5.12}\]

  식 5.12에 의해 구해진 방정식의 해는 normal equation이라고 한다. 식 5.12의 평가는 간단한 학습 알고리즘이다. linear regression 학습 알고리즘 동작의 예는 그림 5.1을 참조하라.

 

 

  linear regression이라는 용어는 하나의 추가 매개 변수(절편 \(b\))를 가진 약간 더 복잡한 모델을 가리키는데 자주 사용된다. 이 모델은 다음과 같다.

\[\hat{y}=w^{\top}x+b\tag{5.13}\]

  따라서 매개 변수에서 예측으로의 매핑은 여전히 선형 함수이지만 feature에서 예측으로의 매핑은 이제 affine 함수다. 이 affine 함수로의 확장은 모델의 예측 plot이 여전히 선처럼 보이지만, 원점을 통과할 필요는 없다는 것을 의미한다. bias 매개 변수 \(b\)를 추가하는 대신 weight만 있는 모델을 계속 사용할 수 있지만 항상 1로 설정된 추가 성분으로\(x\)를 늘려야한다. 추가 성분 1에 해당하는 가중치는 bias 매개 변수 역할을 한다. 우리는 이 책 전체에서 affine 함수를 참조할 때 "linear(선형)"라는 용어를 자주 사용한다.

  절편 항 \(b\)는 종종 affine 변환의 bias parameter라고 불린다. 이 용어는 어떤 입력도 없는 상태에서 이 변환의 출력이 \(b\)로 bias된다는 점에서 도출된다. 이 용어는 통계적 추정 알고리즘의 수량에 대한 예상 추정치가 실제 수량과 같지 않은 통계적 bias의 개념과 다르다.

  Linear regression는 물론 매우 단순하고 제한적인 학습 알고리즘이지만, 학습 알고리즘이 어떻게 작용하는지에 대한 예를 제공한다. 다음 절에서는 학습 알고리즘 설계의 기본 원리 중 일부를 설명하고 이러한 원칙이 보다 복잡한 학습 알고리즘을 구축하는 데 어떻게 사용될 수 있는지를 설명할 것이다.

 

5.2 Capacity, Overfitting and Underfitting

  기계 학습의 주요 과제는 우리 모델이 훈련된 것뿐만 아니라 이전에는 볼 수 없었던 새로운 입력에 대해 잘 수행해야 한다는 것이다. 이전에 관찰되지 않은 입력에서 잘 수행할 수 있는 능력을 “generalization(일반화)”라고 한다.

  일반적으로 기계 학습 모델을 학습할 때 training set에 접근할 수 있으며 training error에 대한 오류 집합을 training error에 대해 계산할 수 있으며 training error를 줄일 수 있다. 지금까지 우리가 설명한 것은 단순히 최적화 문제일 뿐이다. 기계 학습과 최적화를 구분하는 것은 test error라고도하는 generalization error를 낮춘다는 것이다. test error는 새 입력에 대한 오류의 예상 값(expected value)으로 정의된다. 여기서 expectation은 서로 다른 가능한 입력에 취하는데, 이 입력은 시스템이 실제로 가질 것으로 예상되는 입력값의 분포로부터 구한다.

  일반적으로 training set과 별도로 수집된 example test set에서 성능을 측정함으로써 기계 학습 모델의 generalization error를 추정한다.

  Linear regression 예제에서는 training error를 최소화하여 모델을 학습했다.

\[\displaystyle \frac{1}{m^{(\mathrm{train})}}\left\|\boldsymbol{X}^{(\mathrm{train})}\boldsymbol{w}-\boldsymbol{y}^{(\mathrm{train})}\right\|_{2}^{2}\tag{5.14}\]

하지만 실제로 우리는 test error에 대해 관심있다. \(\frac{1}{{{m^{{\mathrm{test}}}}}}\left\| {{\boldsymbol{X}^{({\mathrm{test}})}}\boldsymbol{w} - {\boldsymbol{y}^{({\mathrm{test}})}}} \right\|_2^2\)

  Training set 만 관찰하면 test set의 성능에 어떤 영향을 미칠까? 통계적 학습 이론(statistical learning theory)의 분야는 몇 가지 해답을 제공한다. training과 test set이 임의로 수집되면 실제로 할 수 있는 일은 거의 없다. training과 test set이 수집되는 방법에 대해 몇 가지 가정을 할 수 있다면 우리는 몇 가지 진전을 이룰 수 있다.

  Train data와 test data는 data set으로 부터 data generating process라고하는 확률 분포에 의해 생성된다. 우리는 일반적으로 i.i.d. assumption set을 만든다. 이 i.i.d. assumption은 각 dataset내 example이 서로 독립이며(independent), train set과 test이 서로 동일한 확률 분포에서 도출(identically distributed)된 동일한 분포라는 것이다. 이 가정은 단일 example에 대한 확률 분포로 data 생성 프로세스를 설명할 수 있게 한다. 그 다음 동일한 분포가 모든 train example과 모든 test example를 생성하는 데 사용된다. 공유된 기본 분포(shared underlying distribution)를 data generating distribution라고 한다: \(p_{\mathrm{data}}\)로 표시. 이 확률론적 체계와 i.i.d.(Independent and identically distributed) 가정을 통해 training error와 test error 간의 관계를 수학적으로 연구할 수 있다.

  Training error와 test error 사이에서 관찰할 수 있는 즉각적인 연결점은 무작위로 선택된 모델의 예상 training error가 해당 모델의 예상 test error와 동일하다는 것이다. 우리가 확률 분포 \(p(\boldsymbol{x},y)\)를 가지고 그것을 반복적으로 샘플링하여 train set와 test set를 생성한다고 가정하자. 일부 고정 값 \(\boldsymbol{w}\)의 경우 예상되는 training set error는 예상되는 test set error와 정확히 동일하다. 왜냐하면 두 기대치가 동일한 dataset 표본 추출 과정을 사용하여 형성되기 때문이다. 두 조건의 유일한 차이점은 우리가 샘플링하는 dataset에 지정하는 이름이다.

  물론 우리는 기계 학습 알고리즘을 사용할 때 미리 매개 변수를 수정하지 않고 두 dataset을 모두 샘플링한다. training set을 샘플링 한 다음, training set error를 줄이기 위해 매개 변수를 선택한 다음 test set을 샘플링한다. 이 프로세스에서 예상되는 test error는 예상되는 training error 값보다 크거나 같다. 기계 학습 알고리즘의 성능을 결정하는 요소는 다음과 같은 능력이다.

1.   Training error를 작게 만드는 것
 

2.   Training error와 test error의 차이를 작게 만드는 것
 

  이 두 가지 요소는 기계학습의 두 가지 핵심 과제인 underfittingoverfitting에 해당한다. 모델이 training set에서 충분히 낮은 error 값을 얻을 수 없을 때 underfitting이 발생한다. training error와 test error 사이의 간격이 너무 클 경우 overfitting이 발생한다.

  우리는 모델의 capacity를 변경하여 overfit 또는 underfit를 제어할 수 있다. 비공식적으로 모델의 capacity는 다양한 기능을 수용할 수 있는 능력이다. capacity가 낮은 모델은 training set에 맞추기 어려울 수 있다. capacity가 큰 모델은 test set에 잘 맞지 않는 training set의 특성을 암기함으로써 overfit 될 수 있다.

  학습 알고리즘의 capacity을 제어하는 한 가지 방법은 학습 알고리즘이 solution으로 선택할 수 있는 function들의 집합인 hypothesis space를 선택하는 것이다. 예를 들어, linear regression 알고리즘은 입력의 모든 linear function의 집합을 hypothesis space으로 가지고 있다. 우리는 이 linear regression의 hypothesis space에 polynomial(다항식)을 추가해 일반화할 수 있다. 그러면 모델의 capacity가 증가한다.

  1차 다항식은 이미 우리가 알고 있는 익숙한 linear regression 모형을 제공한다.

\[\hat{y}=b+wx\tag{5.15}\]

linear regression 모델에 또 다른 feature \(x^2\)를 도입함으로써 \(x\)의 2차 함수 모델을 학습할 수 있다.

\[\hat{y}=b+w_{1}x+w_{2}x^{2}\tag{5.16}\]

이 모델은 입력에 대해 2차 함수를 구현하지만 출력은 여전히 매개 변수의 선형 함수이므로 normal equation을 사용하여 모델을 closed form으로 학습할 수 있다. 예를 들어 9차 다항식등을 계속 추가할 수 있다.

\[\displaystyle \hat{y}=b+\sum_{i=1}^{9}w_{i}x^{i}\tag{5.17}\]

  기계 학습 알고리즘은 일반적으로 수행해야 할 tast의 복잡성과 함께 제공되는 training data의 양에 관하여 capacity가 적절한 경우에 가장 잘 수행된다. capacity가 부족한 모델은 복잡한 작업을 해결할 수 없다. capacity가 큰 모델은 복잡한 작업을 해결할 수 있지만, 현재의 작업을 해결하기 위해 필요한 것보다 capacity가 더 높을 경우, 그들은 overfitting 할 수 있다.

  그림 5.2는 이러한 원리를 보여준다. 우리는 실제 함수가 2차인 문제에 대해 선형, 2차, 9차 예측을 비교한다. 선형 함수는 근본적으로 곡률을 포함할 수 없으므로 부적합하다. 9차 예측함수는 정확한 기능을 나타낼 수 있지만, training example보다 매개변수가 많기 때문에 training point를 정확하게 통과하는 다른 많은 함수로 무한히 나타낼 수 있다. 우리는 매우 다양한 solution이 존재할 때 일반화되는 solution을 선택할 가능성이 매우 작아진다. 이 예제에서 2차 모델은 작업의 실제 구조와 완벽하게 일치하므로 새로운 data에 잘 일반화된다.

 

 

  지금까지 우리는 모델의 입력 feature의 수를 변경하여 (그리고 그 feature들과 관련된 새로운 매개변수들을 동시에 추가) 모델의 용량을 변경하는 것에 대해서만 설명하였다. 실제로 모델의 capacity를 변경하는 많은 방법이 있고, capacity가 모델 선택에 의해서만 결정되는 것은 아니다. 이 모델은 training objective를 줄이기 위해 매개 변수를 변경할 때 학습 알고리즘이 선택할 수 있는 함수의 family을 정한다. 이것은 모델의 representational capacity(표현 용량)라고 불린다. 대부분의 경우 이 family에서 최상의 함수를 찾는 것은 매우 어려운 최적화 문제이다. 실제로 학습 알고리즘은 실제 최상의 함수를 찾지는 못하고, 단지 training error를 현저히 감소시킨다. 최적화 알고리즘의 불완전성(imperfection)과 같은 이러한 추가 제한은 학습 알고리즘의 effective capacity(유효 용량)가 모델의 representational capacity보다 작을 수 있음을 의미한다.

  기계 학습 모델의 generalization(일반화)을 개선하기위한 우리의 현대적 생각은 적어도 Ptolemy(클라우디오스 프톨레마이오스, 고대 그리스의 수학자)의 시대 만큼이나 거슬러 올라가는 철학자들의 생각을 상세하게 한 것이다. 많은 초기 학자들은 지금 오컴의 면도날 (Occam’s razor, c. 1287-1347)로 널리 알려져 있는 절약규칙을 사용한다. (Occam’s razor: "많은 것들을 필요없이 가정해서는 안된다, 더 적은 수의 논리로 설명이 가능한 경우, 많은 수의 논리를 세우지 말라) 이 원칙은 알려진 관측을 똑같이 잘 설명하는 경쟁 가설들 중에서 가장 단순한 것을 선택해야한다는 것이다. 이 아이디어는 통계적 학습 이론(Statistical learning theory, Vapnik and Chervonenkis, 1971; Vapnik, 1982; Blumer et al., 1989; Vapnik, 1995)의 창시자들에 의해 20 세기에 공식화되고 보다 정확 해졌다.

  통계적 학습 이론은 모델의 capacity를 정량화 하는 다양한 수단을 제공한다. 이 중 가장 잘 알려진 것은 Vapnik-Chervonenkis dimension 또는 VC dimension이다. VC dimension은 이진 분류자(binary classifier)의 capacity를 측정한다. VC dimension은 Classifier가 임의로 labeling 할 수 있는 m 개의 다른 x 점들에 대한 훈련 세트가 존재하게 하는 최대 m에 의해 정의된다. 모델의 capacity를 정량화하면 통계적 학습 이론이 정량적 예측을 할 수 있다. 모델의 capacity가 커짐에 따라 증가하고, training example수의 증가에 따라 감소하는데 이 양에 의해 Training error와 generalization error간의 불일치가 위에서부터 bound된다는 것은 통계적 학습 이론의 가장 중요한 결과이다. 이러한 경계는 기계 학습 알고리즘이 동작할 수 있다는 실질적인 근거를 제공하지만 Deep learning 알고리즘에서는 거의 사용되지 않다. 이것은 종종 부분적으로 boundary가 상당히 느슨하고 Deep learning 알고리즘의 capacity를 결정하기가 어려울 수 있기 때문이다. Deep learning의 capacity를 결정하는 문제는 특히 어려운데, effective capacity가 최적화 알고리즘의 능력에 따라 제한되기 때문이다. 그리고 우리는 Deep learning에서 사용되는 매우 일반적인 non-convex 최적화 문제를 이론적으로는 거의 이해할 수 없다.

  우리는 단순한 함수가 더 잘 일반화되지만 (training error와 test error 사이에 작은 차이를 가지기 위해), 낮은 training error를 달성하기에 충분히 복잡한 hypothesis을 선택해야 한다는 것을 기억해야한다. 일반적으로 모델 capacity가 증가함에 따라 가능한 최소 error 값을 점근 적(asymptotes)으로 나타낼 때까지 (error 측정 값이 최소값을 가졌다고 가정) training error가 감소한다. 일반적으로 generalization error는 모델 capacity의 함수로서 \(\mathrm{U}\) 형 곡선을 갖는다. 이것은 그림 5.3에서 보여준다.

 

 

  임의로 capacity가 큰 가장 극단적인 경우에 도달하기 위해 non-parametric 모델의 개념을 도입했다. 지금까지 우리는 linear regression과 같은 parametric 모델만 보았다. Parametric 모델은 데이터가 관측되기 전에 크기가 유한하고 고정된 매개변수 벡터에 의해 설명되는 함수를 학습하는데, non-parametric 모델은 이런 제한이 없다

  때로 non-parametric 모델은 실제로는 구현할 수 없는 이론상의 추상적 개념(예: 가능한 모든 확률 분포를 검색하는 알고리즘)일 수 있다. 그러나 그 복잡성을 training set 크기의 함수로 만들어 실제적인 non-parametric 모델을 설계할 수 있다. 한가지 예로 nearest neighbor regression이 있다. 고정 길이 벡터를 갖는 linear regression과 달리 nearest neighbor regression 모델은 training set에서 \(X\)와 \(y\) 만 저장한다. test point \(x\)를 분류하라는 메시지가 표시되면 모델은 training set에서 가장 가까운 항목을 찾아 연관된 regression target을 반환한다. 즉, \(\hat{y} = y_{i}\)이고, \(i =\mathop {\arg \min }\limits_{i} ||X_{i,:} -x||_{2}^{2}\) 이다. 알고리즘은 learned distance metrics(Goldberger et al., 2005)과 같이 \(L^{2}\) norm 이외의 다른 distance metric로 일반화할 수도 있다. 알고리즘이 가장 가까운 것으로 연결되어 있는 모든 \(X_{i,:}\)에 대해 \(y_{i}\) 값을 평균하여 연결을 끊을 수 있는 경우, 이 알고리즘은 regression dataset에 대해 최소로 가능한 training error(두 개의 동일한 입력이 서로 다른 출력과 관련이 있는 경우 0보다 클 수 있음)를 달성할 수 있다.

  마지막으로 parametric 학습 알고리즘을 다른 알고리즘 내부에 배치하여 필요에 따라 매개 변수의 수를 늘려서 non-parametric 적 학습 알고리즘을 만들 수도 있다. 예를 들어 입력의 다항식 확장 위에 linear regression에 의해 학습된 다항식의 차수를 변화시키는 학습의 바깥 루프를 상상할 수 있다.

  이상적인 모델은 단순히 data를 생성하는 진정한 확률 분포를 알고 있는 oracle이다. 심지어 그런 모델조차도 여전히 많은 문제에 대해 약간의 error가 발생할 것이다. 왜냐하면 그 분포에는 여전히 noise가 있을 수 있기 때문이다. supervised learning의 경우, \(x\)에서 \(y\) 로의 매핑은 확률적일 수 있거나, \(y\)는 \(x\)에 포함된 변수 이외의 다른 변수를 사용하는 결정론적 함수 일 수도 있다. 실제 분배 \( p (x,\ y)\)에서 oracle이 겪는 오차를 Bayes error라고 한다.

  Training error와 generalization error는 training set의 크기가 다르기 때문에 다양하다. 예상되는 generalization error는 training example의 수가 증가함에 따라 절대로 증가할 수 없다. non-parametric 모델의 경우 가능한 최저 error가 달성될 때까지 더 많은 data가 더 나은 generalization을 산출한다. 최적의 capacity보다 작은 fixed parametric 모델은 Bayes error를 초과하는 error 값에 근접한다. 그림 5.4를 참조하십시오. 모델이 최적의 capacity 가질 수는 있지만 training과 generalization error간에 큰 격차가 있음을 유의하십시오. 이러한 상황에서 더 많은 training example을 수집함으로써 이러한 차이를 줄일 수 있다.

 

 

5.2.1 The No Free Lunch Theorem

  학습 이론은 기계 학습 알고리즘이 한정된 training set로부터 잘 일반화될 수 있다고 주장한다. 이것은 논리의 몇 가지 기본 원칙과 모순되는 것 같다. 귀납적 추론, 또는 한정된 일련의 예제에서 일반적인 규칙을 추론하는 것은 논리적으로 유효하지 않다. 집합의 모든 구성원을 설명하는 규칙을 논리적으로 추론하려면 집합의 모든 구성원에 대한 정보가 있어야한다.

  부분적으로, 기계 학습은 순전히 논리적 추론에서 사용되는 전적으로 확실한 규칙이 아닌 확률 적 규칙 만 제공함으로써 이 문제를 피한다. 기계 학습은 우려하는 세트의 대부분 구성원에 대해 올바른 규칙을 찾을 것을 약속한다.

  불행히도, 이것조차도 전체 문제를 해결하지는 못한다. 시스템 학습에 대한 “공짜 점심은 없다 이론”(Wolpert, 1996년)은 가능한 모든 데이터 생성 분포에 대해 평균을 취해, 이전에 관찰되지 않은 점들을 분류할 때 모든 분류 알고리즘이 동일한 error rate를 가지고 있다고 명시하고 있다. 즉, 어떤 의미에서는 기계 학습 알고리즘이 보편적으로 다른 어떤 알고리즘보다 우수하지 않다. 우리가 생각할 수 있는 가장 정교한 알고리즘은 모든 포인트가 같은 클래스에 속한다는 것을 예측하는 것 만큼 모든 가능한 작업에 대해 동일한 평균 성능을 가진다.

  다행히도, 이러한 결과는 우리가 가능한 모든 데이터 생성 분포에 대해 평균을 낼 때만 유효하다. 만약 우리가 실제 응용 프로그램에서 마주치는 확률 분포의 종류에 대해 가정한다면, 우리는 이러한 분포에서 잘 작동하는 학습 알고리즘을 설계할 수 있다.

  이것은 기계학습 연구의 목적이 보편적 학습 알고리즘이나 절대 최상의 학습 알고리즘을 찾는 것이 아니라는 것을 의미한다. 대신 우리의 목표는 AI 에이전트가 경험하는 "실제 세계"와 관련이 있는 분포의 종류와 우리가 관심을 갖는 분포를 생성하는 데이터의 종류에서 가져온 데이터에 대해 어떤 종류의 기계 학습 알고리즘이 잘 작동하는지 이해하는 것이다.

 

5.2.2 Regularization

“공짜 점심은 없다” 규칙은 특정한 일을 잘 수행하기 위해 기계 학습 알고리즘을 설계해야 한다는 것을 의미한다. 우리는 학습 알고리즘에 일련의 선호도(preferences)를 구축함으로써 그렇게 한다. 이러한 기본 설정이 학습 문제와 일치할 때 알고리즘이 성능이 향상된다.

  지금까지 우리가 논의한 학습 알고리즘을 수정하는 유일한 방법은 학습 알고리즘이 선택할 수 있는 솔루션의 가설 공간에서 함수를 추가하거나 제거하여 모델의 capacity를 늘리거나 줄이는 것이다. 우리는 regression 문제에 대한 다항식 차수를 증가시키거나 감소시키는 구체적인 예를 제시했다. 우리가 지금까지 설명한 관점은 지나치게 단순하다

  알고리즘의 동작은 hypothesis space에서 허용되는 function set을 얼마나 크게 만들어야 하는가에 의해서가 아니라 그 function이 특수성(specific identity)에 의해 크게 영향을 받는다. 지금까지 학습한 학습 알고리즘 인 linear regression은 입력의 선형 함수 집합으로 구성된 hypothesis space을 가지고 있다. 이러한 선형 함수는 입력과 출력 사이의 관계가 실제로 선형에 가까운 문제에 매우 유용할 수 있다. 하지만 매우 비선형 적으로 동작하는 문제에는 유용하지 않다. 예를 들어 linear regression을 \(x\)에서 \(\sin (x)\) 예측에 사용하면 잘 수행되지 않는다. 따라서 우리는 어떤 함수를 통해 해결책을 도출할 수 있는지, 그리고 이러한 기능의 양을 조절함으로써 알고리즘의 성능을 제어할 수 있다.

  또한 우리는 hypothesis space에서 한 알고리즘에 대한 선호도를 학습 알고리즘에 부여할 수 있다. 즉, 두 가지 기능이 모두 적용 가능하지만, 그 중 하나가 선호된다는 것을 의미한다. 선호되지 않은 솔루션은 선호된 솔루션보다 training data에 훨씬 잘 맞는 경우에만 선택된다.

  예를 들어 linear regression에 대한 training 기준을 수정하여 weight decay(가중치 감소)를 포함할 수 있다. weight decay와 함께 linear regression를 수행하기 위해, 우리는 training에 대한 mean squared error와 더 작은 \(L^{2}\) norm을 가지는 선호도를 나타내는 기준 \(J(w)\)의 합을 최소화한다. 구체적으로는,

\[J(w)=\mathrm{MSE}_{\mathrm{train}}+\lambda w^{\top}w\tag{5.18}\]

여기서 \(\lambda\)는 더 작은 weight에 대한 우리의 선호도를 제어하는 미리 선택된 값이다. \(\lambda=0\)에서는 선호도를 부여하지 않으며, 더 큰 \(\lambda\)는 weight를 더 작게 만든다. \(J(w)\)를 최소화하면 training data를 맞추는 것과 weight가 작은 것 사이의 균형을 잡는 weight를 선택할 수 있다. 이것은 우리에게 더 작은 기울기를 갖는 솔루션을 제공하거나 더 적은 feature에 무게를 두는 솔루션을 제공한다. 우리가 weight decay를 통해 overfit, underfit 경향을 제어하는 모델의 예로서, \(\lambda\)의 서로 다른 값으로 고차원의 다항식 regression 모델을 학습할 수 있다. 그림 5.5. 참조.

 

 

  좀 더 일반적으로 우리는 cost 함수에 regularizer라는 페널티를 추가하여 함수 \(f(x;\theta)\)를 학습하는 모델을 정규화(regularization)할 수 있다. weight decay의 경우, 정규 표현식은 \(\Omega(w)=w^{\top}w\)이다. 7 장에서 우리는 많은 다른 regularizers들이 가능한지 볼 것이다.

  한 기능에 대한 선호도를 다른 기능에 비해 표현하는 것은 hypothesis space에서 구성원을 포함 또는 제외하는 것보다 모델의 capacity를 제어하는 보다 일반적인 방법입니다. 우리는 hypothesis space에서 한 기능에 대한 무한히 반대하는 표현하는 것으로 한 기능을 배제하는 것을 생각할 수 있다.

  우리의 weight decay 예제에서 우리는 최소화하는 criterion(기준)의 추가 용어를 통해 명시 적으로 더 작은 weight로 정의된 선형 함수에 대한 선호를 표현했다. 암시 적으로나 명시 적으로 다른 솔루션에 대한 환경 설정을 표현하는 많은 방법이 있다. 이러한 다양한 접근 방식을 regularization (정규화)라고 한다. 정규화는 generalization error는 줄이지 만 training error는 줄이지 않는 학습 알고리즘을 수정하는 것이다. 정규화는 기계 학습 분야의 핵심 관심사 중 하나이며, 최적화에 의해서만 그 중요성과 비교된다.

"Regularization is any modification we make to a learning algorithm that is intended to reduce its generalization error but not its training error"

 

5.3 Hyperparameters and Validation Sets

  대부분의 기계 학습 알고리즘에는 학습 알고리즘의 동작을 제어하기 위해 사용할 수 있는 몇 가지 설정이 있다. 이러한 설정을 hyperparameters라고한다. hyperparameters의 값은 학습 알고리즘 자체에 의해 조정되지는 않다 (하나의 학습 알고리즘이 다른 학습 알고리즘을 위한 최상의 hyperparameters를 학습하는 중첩 학습 프로시저를 설계할 수는 있다).

  그림 5.2에서 본 polynomial regression 예제에서 단일 hyperparameter가 있다. 즉, 다항식의 차수로 capacity hyperparameter가 사용된다. weight decay의 강도(strength)를 제어하는 데 사용되는 \(\lambda\) 값은 hyperparameter의 또 다른 예이다

  때론 최적화가 어렵기 때문에 학습 알고리즘이 hyperparameter로 설정되는 경우가 있다. 더 자주, 우리는 hyperparameter를 배우지 않는데, training set의 hyperparameter를 배우는 것이 적절하지 않기 때문이다. 이것은 모델 capacity를 제어하는 모든 hyperparameter에 적용된다. training set에서 학습된 경우, 그 hyperparameter는 항상 최대로 가능한 capacity를 선택해 overfitting을 발생시킨다. 그림 5.3 참조. 예를 들면, 우리는 항상 낮은 차수의 다항식과 \(\lambda>0\)의 weight decay 설정보다, 높은 차수의 다항식과 \(\lambda=0\)의 weight decay 설정으로 더 잘 training set을 맞출 수 있다.

  이 문제를 해결하기 위해, 우리는 training 알고리즘이 관측하지 못하는 example의 validation set이 필요하다.

  이전에 우리는 학습 과정이 완료된 후에 training set과 동일한 분포에서 나온 example로 구성된 지속되는(hold-out) test set이 학습자의 generalization error를 추정하는 데 어떻게 사용될 수 있는지에 대해 논의하였다. Test set의 example이 hyperparameter를 포함한 모델 선택에 사용되지 않는 것이 중요하다. 이러한 이유로 validation set에서 test set의 example을 사용할 수 없다. 따라서 우리는 항상 training data로부터 validation set를 구성한다. 특히, 우리는 training data를 두 개의 분리된 subset으로 나누고, 이 subset 중 하나는 매개변수(parameter)를 학습하는 데 사용하고, 다른 하나는 validation set로서 training 중 또는 후에 generalization error를 추정하는데 사용되며, 그에 따라 hyperparameter가 업데이트 될 수 있다. 매개 변수를 학습하는 데 사용되는 data의 subset은 전체 training 과정에서 사용되는 더 큰 data 풀(pool)과 혼동될 수 있지만 일반적으로 여전히 training set이라고한다. Hyperparameter를 선택하는 데 사용되는 data의 subset을 validation set이라고 한다. 일반적으로 training 자료의 약 80 %를 training을 위해, 검증을 위해 20 %를 사용한다. validation set이 hyperparameter를 학습하는 데 사용되므로 validation set error는 일반적으로 training error보다 적은 양으로 generalization error를 낮게 추정한다. 모든 hyperparameter 최적화가 완료된 후, test set를 사용하여 generalization error를 추정할 수 있다.

  실제로 동일한 test set이 여러 해 동안 여러 알고리즘의 성능을 평가하기 위해 반복적으로 사용되었을 때, 특히 과학 커뮤니티가 test set에서 보고 된 최첨단 성능을 상회하는 모든 시도를 고려할 때 우리는 결국 test set에서 좋은 평가를 받게 된다. 따라서 벤치 마크는 부실해질 수 있으며 학습된 시스템의 실제 현장 성능을 반영하지 못한다. 고맙게도 커뮤니티는 새로운 (일반적으로 보다 야심적이고 큰) 벤치 마크 dataset으로 이동하는 경향이 있다.

 

5.3.1 Cross-Validation

  Dataset을 고정된 training set과 고정된 test set으로 나누면 test set이 적을 경우 문제가 될 수 있다. 적은 test set은 추정된 평균 test error에 대한 통계적 불확실성(statistical uncertainty)을 의미하며 주어진 작업에 대해 알고리즘 \(A\)가 알고리즘 \(B\)보다 우수하다고 주장하는 것을 어렵게 만든다.

  Dataset에 수십만 가지 이상의 예제가 있는 경우 심각한 문제는 없지만, dataset이 너무 적으면 평균 cost를 증가시켜 test error 추정에 모든 example을 사용할 수 있는 대체 절차가 있다. 이 절차는 무작위로 선택한 여러 하위 집합 또는 분할된 dataset에 대해 training과 test계산을 반복한다는 아이디어를 기반으로 한다. 가장 일반적인 방법은 k-fold cross-validation 절차이다. 알고리즘 5.1에서 dataset의 파티션을 \(k\) 개의 중복되지 않는 subset으로 분할하여 k-fold cross-validation을 수행한다. 그런 다음 \(k\)번째 시도의 test error들을 평균하여 test error를 추정할 수 있다. 시행 i에서, data의 i 번째 서브 set은 test set으로 사용되고 나머지 data는 training set으로 사용된다.(즉 전체 training dataset을 5개의 subset으로 분할 했을 때, 첫번째 시도에서는 첫번째 subset을 test set으로 사용하고, 나머지 subset들은 training set으로 사용하고, 두번째 시도에서는 두번째 subset을 test set으로 사용하고, 나머지 subset들은 training set으로 사용하고... 이것을 반복한다) 한 가지 문제점은 평균 error estimators (Bengio and Grandvalet, 2004)의 분산에 대한 unbiased estimators가 존재하지 않지만 일반적으로 근사가 사용된다는 것이다.

 

5.4 Estimators, Bias and Variance

  통계 분야는 training set뿐만 아니라 일반화 작업을 해결하는 기계 학습 목표를 달성하는 데 사용할 수 있는 많은 도구를 제공한다. 매개 변수 추정, bias, 분산과 같은 기본 개념은 일반화, underfitting과 overfitting의 개념을 공식적으로 특성화(characterize) 하는 데 유용하다.

 

5.4.1 Point Estimation

  Point estimation은 관심있는 단일 "best" prediction(예측)의 양(quantity)을 제공하려는 시도 이다. 일반적으로 관심있는 양(quantity)은 5.1.4 절의 linear regression 예제의 weight와 같은 일부 매개 변수 모델의 단일 매개 변수(single parameter) 또는 매개 변수 벡터(vector of parameter) 일 수 있지만 전체 함수(whole function) 일 수도 있다.

  매개 변수의 추정치를 실제 값과 구별하기 위해 매개 변수 \(\theta\)의 point estimation을 \(\hat{\theta}\)으로 나타낸다.

\(\{x^{(1)},\ldots,x^{(m)}\}\)가 m개의 independent and identically distributed(i.i.d.) data point라고 하자. Point estimator 또는 statistics는 어떤 data의 함수이다:

\[\hat{\theta}_{m}=g\ (x^{(1)},\ .\ .\ .\ ,\ x^{(m)})\tag{5.19}\]

  이 정의에서는 \(g\)가 실제 \(\theta\)에 가까운 값을 반환한다거나, \(g\)의 범위가 \(\theta\)의 허용 값 집합(set of allowable values)과 동일할 것을 요구하지 않는다. point estimator의 이러한 정의는 매우 일반적이며, 설계자는 큰 유연성을 가질 수 있다. 따라서 거의 모든 기능이 평가자로 인정되지만, 좋은 estimator는 output이 training data를 생성한 실제 \(\theta\)에 근접한 함수이다.

  현재로서는 통계학에서 frequentist의 관점을 취하고 있다. 즉, 실제 매개 변수 값 \(\theta\)는 고정되어 있지만 알 수 없는 반면 포인트 추정치 \(\hat{\theta}\)은 data의 함수라고 하자. Data를 랜덤 프로세스에서 가져오기 때문에 모든 데이터의 함수는 랜덤이다. 따라서 \(\hat{\theta}\)는 확률 변수다.

  Point estimation은 또한 입력 변수와 목표 변수 간의 관계를 추정할 수 있다. 이러한 유형의 point estimate를 function estimator라고 한다.

  Function Estimation위에서 언급한 바와 같이, 때로는 function estimation (또는 function approximation) 수행에 관심이 있다. 여기서는 입력 벡터 \(x\)에 주어진 변수 \(y\)를 예측하려고 한다. \(y\)와 \(x\)사이의 대략적인 관계를 설명하는 \(f(x)\)가 있다고 하자. 예를 들어, \(x\)에서 예측할 수 없는 \(y\)의 부분을 \(\epsilon\)이 나타내는 \(y =f(x)+\epsilon\)이 있다고 가정할 수 있다. 함수 추정에서, 우리는 \(f\)의 근사치 또는 \(\hat{f}\) 추정에 관심있다. Function estimation은 실제로 매개 변수 \(\theta\)의 추정과 동일하며 function estimator \(\hat{f}\)는 function space에서의 point estimator일 뿐이다. linear regression 예제(5.1.4절에서 논의)와 다항 regression 예제(5.2절에서 설명)는 모두 변수 \(w\)를 추정하거나 \(x\)에서 \(y\)로 매핑하는 함수 \(\hat{f}\)을 추정하는 것으로 해석될 수 있는 시나리오의 예이다.

  이제 point estimators의 가장 일반적으로 연구된 특성을 검토하고 우리에게 이러한 추정자에 대해 무엇을 말하는지 논의한다.

 

5.4.2 Bias

  Estimator의 bias는 다음과 같이 정의된다.

\[\mathrm{bias} (\hat{\theta}_{m})=\mathbb{E}(\hat{\theta}_{m})-\theta\tag{5.20}\]

  기대 값은 데이터 (확률 변수의 샘플)로 부터 구해지고, \(\theta\)는 데이터 생성 분포를 정의하는 데 사용되는 \(\theta\)의 실제 기본 값이다. Estimator \(\hat{\theta}_{m}\)는 \(\mathbb{E}(\hat{\theta}_{m})= \theta\)를 의미하는 \(\mathrm{bias}(\hat{\theta}_{m})= 0\) 인 경우 unbiased라고 한다. \(\displaystyle \lim_{m\rightarrow\infty}\mathrm{bias}(\theta_{m})=0\)이 \(\displaystyle \lim_{m\rightarrow\infty}\mathbb{E}(\hat{\theta}_{m}) =\theta\)를 의미하는 경우 Estimator \(\hat{\theta}_{m}\)는 asymptotically unbiased (점근적 unbiased)라고 한다.

 

Example: Bernoulli Distribution 평균 \(\theta\)의 베르누이 분포를 가지는 독립 항등(independently and identically) 샘플들의 집합 \(\{x^{(1)},\ .\ .\ .\ ,\ x^{(m)}\}\)을 생각해보자.

\[P(x^{(i)};\theta)=\theta^{x^{(i)}}(1-\theta)^{(1-x^{(i)})}\tag{5.21}\]

 

  이 분포의 \(\theta\) 매개 변수에 대한 일반적인 estimator는 training sample의 평균이다.

\[\displaystyle \hat{\theta}_{m}\ =\frac{1}{m}\sum_{i=1}^{m}x^{(i)}\tag{5.22}\]

  이 estimator가 bias되었는지 결정하기 위해 Eq. 5.22를 Eq. 5.20로 대체할 수 있다.

\[\mathrm{bias }(\hat{\theta}_{m})=\mathbb{E}[\hat{\theta}_{m}]-\theta\tag{5.23}\]

\[=\displaystyle \mathbb{E}\ [\frac{1}{m}\sum_{i=1}^{m}x^{(i)}]\ -\theta\tag{5.24}\]

\[=\displaystyle \frac{1}{m}\sum_{i=1}^{m}\mathbb{E}[x^{(i)}]\ -\theta\tag{5.25}\]

\[=\displaystyle \frac{1}{m}\sum_{i=1}^{m}\sum_{x^{(i)}=0}^{1}\ (x^{(i)}\theta^{x}(i)\ (1-\theta)^{(1-x^{(i)})})\ -\theta\tag{5.26}\]

\[=\displaystyle \frac{1}{m}\sum_{i=1}^{m}(\theta)-\theta\tag{5.27}\]

\[=\theta-\theta=0\tag{5.28}\]

  Bias \((\hat{\theta})=0\) 이기 때문에, 우리는 우리의 estimator \(\hat{\theta}\)가 biase되지 않았다고(unbiased) 한다.

 

Example: Gaussian Distribution Estimator of the Mean 이제 샘플 집합 \(\left\{x^{(1)},\ldots,x^{(m)}\right\}\)를 생각해보자. 이 샘플은 Gaussian 확률 밀도 \(p(x^{(i)})=\mathcal{N}(x^{(i)} \mu,\sigma^{2})\)를 따라 독립 항등으로 분포로 샘플링 되었고, \( i\in \left\{1,\ldots,m\right\}\)이다. Gaussian 확률분포는 다음과 같이 주어진다.

\[p(x^{(i)};\displaystyle \mu,\ \sigma^{2})=\frac{1}{\sqrt{2\pi\sigma^{2}}}\exp \left(-\displaystyle \frac{1}{2}\frac{(x^{(i)}-\mu)^{2}}{\sigma^{2}}\right)\tag{5.29}\]

  Gaussian 평균 파라미터의 일반적인 estimator는 표본 평균(sample mean)이다.

\[\displaystyle \hat{\mu}_{m}=\frac{1}{m}\sum_{i=1}^{m}x^{(i)}\tag{5.30}\]

  표본 평균의 bias를 결정하려면 다시 기대 값을 계산해야 한다.

\[\mathrm{bias} (\hat{\mu}_{m}) =\mathbb{E}[\hat{\mu}_{\mathrm{m}}]-\mu\tag{5.31}\]

\[=\displaystyle \mathbb{E}\ [\frac{1}{m}\sum_{i=1}^{m}x^{(i)}]\ -\mu\tag{5.32}\]

\[=\displaystyle \ (\frac{1}{m}\sum_{i=1}^{m}\mathbb{E}[x^{(i)}])\ -\mu\tag{5.33}\]

\[=\displaystyle \ (\frac{1}{m}\sum_{i=1}^{m}\mu)\ -\mu\tag{5.34}\]

\[=\mu-\mu=0\tag{5.35}\]

  이와 같이 우리는 표본 평균이 Gaussian mean parameter의 unbiased estimator라는 것을 알 수 있다.

 

Example: Estimators of the Variance of a Gaussian Distribution 한가지 예로써, Gaussian 분포의 분산 매개 변수(variance parameter) \(\sigma^{2}\)의 두 가지 다른 estimator를 비교한다. 우리는 estimator가 bias되어 있는지를 알아야 한다. 첫번째 \(\sigma^{2}\)는 표본 분산(sample variance)이다.

\[\displaystyle \hat{\sigma}_{m}^{2}=\frac{1}{m}\sum_{i=1}^{m} (x^{(i)} - \hat{\mu}_{m})^{2}\tag{5.36}\]

  여기서 \(\hat{\mu}_{m}\)는 위에 정의된 표본 평균이다. bias는 다음과 같이 계산된다.

 

\[\mathrm{bias}(\hat{\sigma}_{m}^{2})=\mathbb{E}[ \hat{\sigma}_{m}^{2}] -\sigma^{2}\tag{5.37}\]

  먼저 \(\mathbb{E}[\hat{\sigma}_{m}^{2}]\)를 구한다.

\[\displaystyle \mathbb{E}[\hat{\sigma}_{m}^{2}]\ =\mathbb{E}\ [\frac{1}{m}\sum_{i=1}^{m}\ (x^{(i)}-\hat{\mu}_{m})^{2}]\tag{5.38}\]

\[=\frac{{m - 1}}{m}{\sigma ^2}\tag{5.39}\]

식 5.37로 돌아가서, 우리는 \(\hat{\sigma}_{m}^{2}\)의 bias가 \(-\sigma^2/m\)라고 결론짓는다. 그러므로 표본 분산은 biased estimator이다.

  Unbiased sample variance estimator

\[\displaystyle \tilde{\sigma}_{m}^{2}=\frac{1}{m-1}\sum_{i=1}^{m}\ (x^{(i)}\ -\hat{\mu}_{m})^{2}\tag{5.40}\]

는 다른 접근법을 제공한다. 이름에서 알 수 있듯이 이 estimator는 unbiased이다. 즉, \(\mathbb{E}[\tilde{\sigma}_{m}^{2}] =\sigma^{2}\) 이다:

\[{\mathbb{E}}[\tilde \sigma _m^2] = {\mathbb{E}}\left[\frac{1}{{m - 1}}\sum\limits_{i = 1}^m {{{\left( {{x^{(i)}} - {{\hat \mu }_m}} \right)}^2}} \right]\tag{5.41}\]

\[=\displaystyle \frac{m}{m-1}\mathbb{E}\left[\hat{\sigma}_{m}^{2}\right]\tag{5.42}\]

\[=\displaystyle \frac{m}{m-1}\ (\frac{m-1}{m}\sigma^{2})\tag{5.43}\]

\[=\sigma^{2}\tag{5.44}\]

 

  우리는 두 개의 estimator를 가지고 있다 : 하나는 bias되었고, 다른 하나는 그렇지 않다. Unbiased estimator는 분명히 바람직하지만, 항상 “best”는 아니다. 우리는 종종 다른 중요한 특성을 지닌 biased estimator를 사용한다.

 

5.4.3 Variance and Standard Error

  Estimator가 고려해야할 또 다른 속성은 데이터 샘플의 함수에 따라 달라질 것으로 예상되는 차이의 크기이다. Estimator의 bias를 결정하기 위해 estimator의 기대 값을 계산하는 것처럼 분산을 계산할 수 있다. Estimator의 분산은 간단히 분산(variance)이다.

\[\mathrm{Var}(\hat{\theta})\tag{5.45}\]

  여기서 확률 변수는 training set이다. 또는 분산의 제곱근을 standard error(표준 오차)라고 하며 \(\mathrm{SE}(\hat{\theta})\)로 나타낸다.

  Estimator의 분산 또는 standard error는 데이터 생성 프로세스로 dataset을 다시 샘플링 할 때 데이터에서 estimator가 얼마나 차이가 날지에 대한 기대를 측정한다. bias가 낮은 estimator를 선호하는 것처럼 상대적으로 낮은 편차가 선호된다.

  한정된 수의 표본(sample)을 사용하여 통계를 계산할 때, 실제 분포의 매개 변수에 대한 우리의 추정치는 불확실하다(uncertain). 같은 분포에서 다른 표본을 얻을 수 있고 통계치가 달라 질 수 있다. Estimator의 예상되는 변동량은 정량화 하려는 error의 source다.

  평균에 대한 standard error는 다음과 같다.

\[{\mathrm{SE}}({\hat \mu _m}) = \sqrt {{\mathrm{Var}}\left[ {\frac{1}{m}\sum\limits_{i = 1}^m {{x^{(i)}}} } \right]} = \frac{\sigma }{{\sqrt m }}\tag{5.46}\]

  여기서 \(\sigma^{2}\)는 샘플 \(x^{i}\)의 실제 분산이다. Standard error는 \(\sigma\)의 estimator를 사용하여 추정되기도 한다. 표본 분산의 제곱근이나 분산의 unbiased estimator의 제곱근은 표준 편차에 대한 unbiased된 추정치를 제공하지 않는다. 두 방법 모두 실제 표준 편차를 작게 추정(underestimate)하는 경향이 있지만, 실제로는 여전히 사용되고 있다. 작게 추정된 분산의 제곱근은 그보다 더 적다. \(m\)이 클 경우, 이 근사값은 상당히 합리적이다.

  평균의 standard error는 기계 학습 실험에서 매우 유용한다. 우리는 종종 test set에서 error의 표본 평균을 계산함으로써 generalization error를 추정한다. test set의 example 수가 이 추정의 정확성(accuracy)을 결정한다. 평균이 normal 분산으로 근사화 된다는 central limit theorem을 이용하면 standard error를 사용하여 기대 값이 선택 범위에 속할 확률을 계산할 수 있다. 예를 들어 평균 \(\hat{\mu}_{m}\)와 분산 \(\mathrm{SE}(\hat{\mu}_{m})^{2}\)를 갖는 정규 분포에서 95 % 신뢰 구간 \(\hat{\mu}_{m}\)는 다음과 같다.

\[({\hat \mu _m} - 1.96{\rm{SE}}({\hat \mu _m}),{\hat \mu _m} + 1.96{\rm{SE}}({\hat \mu _m}))\tag{5.47}\]

  기계학습 실험에서 일반적으로, 알고리즘 A의 95% 신뢰 구간의 상한 error값이 알고리즘 B의 95% 신뢰구간의 하한 error 값보다 작으면, 알고리즘 A가 B보다 더 좋다고 한다.

 

Example: Bernoulli Distribution Bernoulli 분포로부터 독립 항등으로 추출 된 표본 집합 \(\{x^{(1)},\ .\ .\ .\ ,\ x^{(m)}\}\)를 다시 생각해보자 (\( P(x^{(i)}\ ;\theta)=\theta^{x^{(i)}}(1-\theta)^{(1-x^{(i)})}\)임을 상기하자). 이번에는 추정치 \(\theta_{m} =\displaystyle \frac{1}{m}\sum_{i=1}^{m}x^{(i)}\)의 분산을 구할 것이다.

\[\mathrm{Var}(\hat{\theta}_{m}) = \mathrm{Var}(\displaystyle \frac{1}{m}\sum_{i=1}^{m}x^{(i)})\tag{5.48}\]

\[=\displaystyle \frac{1}{m^{2}}\sum_{i=1}^{m} Var (x^{(i)})\tag{5.49}\]

\[=\displaystyle \frac{1}{m^{2}}\sum_{i=1}^{m}\theta(1-\theta)\tag{5.50}\]

\[=\displaystyle \frac{1}{m^{2}}m\theta(1-\theta)\tag{5.51}\]

\[=\displaystyle \frac{1}{m}\theta(1-\theta)\tag{5.52}\]

  Estimator의 분산은 dataset내 example 수인 \(m\)의 함수로 감소한다. 이것은 일관성을 논의 할 때 다시 봐야할 일반적인 estimator의 속성이다 (5.4.5 절 참조).

 

5.4.4 Trading off Bias and Variance to Minimize Mean Squared Error

  Bias와 분산은 estimator에서 두 가지 다른 error 원인을 측정한다. bias는 함수 또는 매개 변수의 참값으로부터 예상되는 편차를 측정한다. 반면에, 분산은 데이터의 특정 표본 추출(sampling)의 기대 값과의 편차를 나타낸다.

  더 큰 Bias와 더 큰 분산 중 하나를 선택하면 어떻게 될까? 우리는 어떻게 그것들을 선택할까? 예를 들어, 그림 5.2의 함수를 근사화 하려한다고 가정하자. 큰 bias를 가진 모델과 큰 분산을 가지는 모델 중에 선택해야 한다면 어떻게 선택해야 할까?

  이 trade-off를 성사시키는 가장 일반적인 방법은 cross-validation(교차 유효성 검사)을 사용하는 것이다. 경험적으로 cross-validation은 실제 많은 task에서 성공적이다. 또는 estimator의 mean squared error (MSE)를 비교할 수도 있다.

\[\mathrm{MSE} =\mathbb{E}[(\hat{\theta}_{m}-\theta)^{2}]\tag{5.53}\]

\[=\mathrm{Bias}(\hat{\theta}_{m})^{2}+\mathrm{Var}(\hat{\theta}_{m})\tag{5.54}\]

  MSE는 estimator와 매개 변수 \(\theta\)의 실제 값 사이의 (제곱 오차를 이용) 전반적인 예상 편차를 측정한다. 식 5.54에서 MSE를 측정하는 것은 bias와 분산이 모두 포함된다. MSE는 작은 것이 좋으며, bais와 분산을 어느 정도 체크할 수 있는 추정량이다.

  Bias와 분산의 관계는 기계 학습의 capacity, underfitting, overfitting과 관련 있다. Generalization error가 MSE에 의해 측정되는 경우 (Bias과 분산은 generalization error의 의미 있는 요소임), capacity를 증가시키면 분산이 증가하고, bias가 감소하는 경향이 있다. 이것은 그림 5.6에서 보여준다. 여기서 generalization error의 U자형 곡선을 capacity의 함수로 다시 볼 수 있다.

 

 

5.4.5 Consistency

  지금까지 우리는 고정된 크기의 training set에 대한 다양한 estimator의 특성을 논의했다. 일반적으로 우리는 training set의 양이 늘어남에 따라 estimator의 행동에 관심을 가진다. 특히 dataset의 data point \(m\)의 수가 증가하면 point estimator가 해당 매개 변수의 실제 값으로 수렴되는 것이 일반적이다. 더 공식적으로, 다음을 원한다.

\[\mathop {\lim }\limits_{m \to \infty } {\hat \theta _m}\mathop \to \limits^p \theta \tag{5.55}\]

  기호 \(\mathop \to \limits^p\)는 수렴이 확률, 즉 어떤 \(\epsilon > 0\), \(m \rightarrow \infty\)일때, \(P (|\hat{\theta}_{m}\ -\ \theta|\ >\ \epsilon) \rightarrow 0\)로 나타낸다. 식 5.55는 consistency(일관성)이라고 한다. \(\hat{\theta}\)과 \(\theta\)의 거의 확실한 수렴(almost sure convergence)을 의미하는 strong consistency와 함께 weak consistency이라고도 한다. 확률 변수 \(\mathrm{x}^{(1)}, \mathrm{x}^{(2)}\) sequence의 almost sure convergence 값 \(x\)는 \(p (\displaystyle \lim_{m\rightarrow\infty}\mathrm{x}^{(m)}\ =x) =1\)일 때 발생한다.

  Consistency는 데이터 example 수가 증가함에 따라 estimator에 의한 bias가 감소하도록 보장한다. 그러나 그 반대는 성립하지 않는다. Asymptotically unbiased는 consistency을 의미하지 않는다. \(\{x^{(1)},\ldots,x_{\wedge}^{(m)}\}\)로 구성된 dataset이 normal distribution \(\mathcal{N}(x;\mu,\ \sigma^{2})\)의 평균 매개 변수 \(\mu\)를 계산하는 것을 생각해보자. Dataset의 첫 번째 sample \(x^{(1)}\)를 unbiased estimator로 사용할 수 있다 : \(\theta=x^{(1)}\). 이 경우, \(\mathbb{E}(\hat{\theta}_{m}) =\theta\)이므로 data point 수에 관계없이 estimator는 bias되지 않는다. 이것은 물론 estimator가 asymptotically biased되어 있음을 의미한다. 그러나 \(\theta_{m} \rightarrow\theta\)가 \(m\rightarrow\infty\)와 같은 경우가 아니기 때문에 이는 consistent estimator(일관된 추정치)는 아니다.

 

5.5 Maximum Likelihood Estimation

  이전 장에서 우리는 일반적인 estimation의 정의를 보았고 그 특성을 분석했다. 하지만 이 estimator들은 어디서 왔을까? 어떤 함수가 좋은 estimator를 만든 다음 bias과 분산을 분석할 수 있다고 추측하기보다는 다른 모델에 대한 좋은 estimator인 특정 함수를 도출할 수 있는 원칙을 가지려 한다.

  그러한 원칙 중 가장 일반적인 것이 Maximum likelihood이다.

  확률 분포분포 \(p_{\mathrm{data}}(\mathrm{x})\)로부터 생성되는 unknown이지만 실제 data로부터 독립적으로 얻은 \(m\) \(\mathbb{X}= \{x^{(1)},\ .\ .\ .\ ,\ x^{(m)}\}\)를 고려하자.

\( p_{\mathrm{model}}(\mathrm{x};\theta)\)를 \(\theta\)에 의해 색인 된 동일한 공간에 대한 확률 분포의 parametric family라고 하자. 즉, \(p_{\mathrm{model}}(x;\theta)\)는 어떤 구성 \(x\)를 실제 확률\(p_{\mathrm{data}} (x)\)를 추정하는(estimate) 실수로 매핑한다.

\(\theta\)에 대한 maximum likelihood estimator는 다음과 같이 정의된다.

\[\theta_{\mathrm{ML}} = \mathop {\arg \max }\limits_\theta p_{\mathrm{model}} (\mathbb{X};\theta)\tag{5.56}\]

\[= \displaystyle \mathop {\arg \max }\limits_\theta \prod_{i=1}^{m} p_{\mathrm{model}} (x^{(i)};\theta) \tag{5.57}\]

  이 곱셈은 여러 가지 이유로 불편할 수 있다. 예를 들어, numerical underflow가 발생하기 쉽다. 보다 편리하지만 동등한 최적화 문제를 만들기 위해, likelihood에 로그를 취하면 arg를 변경하지 않고 곱셈을 더하기로 바꿀 수 있다.

\[\displaystyle \theta_{\mathrm{ML}}=\mathop {\arg \max }\limits_\theta \sum_{i=1}^{m}\log p_{\mathrm{model}} (x^{(i)};\theta)\tag{5.58}\]

  Argmx는 cost함수를 rescale해도 변하지 않기 때문에, \(m\)로 나누면 criterion(표준) 버전을 얻을 수 있다. 이것은 training data에 의해 정의된 경험적 분포(empirical distribution)에 대한 기대(expectation)으로 표현된다.

\[\theta_{\mathrm{ML}}=\mathop {\arg \max }\limits_\theta \mathbb{E}_{\mathrm{x}\sim\hat{p}_{\mathrm{data}}}\log p_{\mathrm{model}} (x^{(i)};\theta)\tag{5.59}\]

  Maximum likelihood 추정을 해석하는 한 가지 방법은 training set에 의해 정의된 경험적 분포와 모델 분포 사이의 불일치성을 최소화하고 KL divergence에 의해 측정 된 두 모델 간의 차이 정도를 최소화하는 것으로 해석하는 것이다. KL divergence는 다음과 같다.

\[D_{\mathrm{KL}}(\hat{p}_{\mathrm{data}}\Vert p_{\mathrm{model}}) =\mathbb{E}_{\mathrm{x}\sim\hat{p}_{\mathrm{data}}}[\log\hat{p}_{\mathrm{data}}(x)-\log p_{\mathrm{model}}(x)]\tag{5.60}\]

  왼쪽의 항(term)은 모델이 아닌 데이터 생성 프로세스의 함수이다. 이것은 우리가 KL divergence을 최소화하기 위해 모델을 훈련시킬 때, 우리는 단지 다음을 최소화하면 된다는 것을 의미한다.

\[-\mathbb{E}_{\mathrm{x}\sim\hat{p}_{\mathrm{data}}}[\log p_{\mathrm{model}} (x)]\tag{5.61}\]

  그것은 물론 식 5.59의 최대화와 같다.

  이 KL divergence를 최소화하는 것은 분포 간의 cross-entropy를 최소화하는 것과 정확히 일치한다. 많은 저자들은 Bernoulli 또는 softmax 분포의 the negative log-likelihood를 위해 "cross-entropy"라는 용어를 사용하지만 이는 잘못된 말입니다. the negative log-likelihood으로 구성된 어떠한 loss도 training set에 의해 정의된 경험적 분포와 모델 간의 cross-entropy다. 예를 들어 mean squared error는 경험적 분포와 Gaussian 모델 간의 cross-entropy이다.

  따라서 우리는 모델 분포를 경험적 분포 \(\hat{p}_{data}\)와 일치시키기 위해 maximum likelihood를 이용할 수 있다. 이상적으로는 실제 data 생성 분포 \(p_{data}\)와 일치시키고 싶지만, 이 분포에 직접 액세스할 수는 없다.

  Likelihood를 maximize하거나 KL divergence를 최소화하거나 와 관계없이 최적의 \(\theta\)는 동일하지만 objective function(목표 함수)의 값은 다르다. 소프트웨어에서 우리는 종종 cost function을 최소화하는 것으로 표현한다. 따라서 maximum likelihood는 negative log-likelihood(NLL)의 최소화, 또는 동등하게 cross-entropy의 최소화가 된다. Kl divergence가 최소값으로 0을 가지기 때문에 minimum KL divergence으로써 maximum likelihood는 이 경우 유용하다. \(x\)가 실수일 때, negative log-likelihood는 음수가 될 수 있다.

 

5.5.1 Conditional Log-Likelihood and Mean Squared Error

  우리의 목표가 주어진 y를 예측하기 위해 조건부 확률 \(P (\mathrm{y}\ |\mathrm{x};\theta)\)를 추정하는 것인 경우, Maximum likelihood estimator는 쉽게 일반화 될 수 있다. 이것은 대부분의 supervised learning의 기본적인 형태이기 때문에 실제로 가장 일반적인 상황이다. \(\boldsymbol{X}\)가 모든 input이고, \(\boldsymbol{Y}\)가 관측된 모든 target일 경우, conditional maximum likelihood estimation은 다음과 같다.

\[\displaystyle \theta_{\mathrm{M}\mathrm{L}}=\arg_{\theta}\max P(\mathrm{\boldsymbol{Y}}|\boldsymbol{X};\theta)\tag{5.62}\]

Example들을 i.i.d.로 가정하면, 다음과 같이 분해(decompose) 될 수 있다.

\[\displaystyle \theta_{\mathrm{ML}}=\arg_{\theta}\max\sum_{i=1}^{m}\log P\ (y^{(i)}\ |x^{(i)};\theta)\tag{5.63}\]

Example: Linear Regression as Maximum Likelihood 5.1.4 절의 초반부에 소개된 이 방법은 maximum likelihood 절차가 될 수 있다. 이전에는 입력 \(\boldsymbol{x}\)를 취하여 출력 값 \(\hat{y}\)를 만드는 알고리즘으로 linear regression을 유도했다. \(\ boldsymbol {x}\)에서 \(\hat{y}\) 로의 맵핑은 mean squared error를 최소화하기 위해 선택되었는데, 이는 우리가 다소 임의적으로 도입한 criterion이다. 이제 우리는 maximum likelihood estimation의 관점에서 linear regression를 재검토한다. 단일 예측 \(hat{y}\)를 생성하는 대신 모델을 조건부 \((y\ |\ \boldsymbol{x})\)이라고 생각한다. 무한히 큰 training set을 사용하면 같은 입력 값 \(x\)에 대해 여러 \(y\)를 가지는 example들을 볼 수 있을 것이다. 학습 알고리즘의 목표는 이제 모든 \(x\)와 호환되는 모든 다른 \(y\) 값에 \(p(y|\boldsymbol{x})\)를 맞추는 것이다. 이전에 얻은 것과 같은 linear regression 알고리즘을 유도하기 위해 \(p (y|\ \boldsymbol{x}) =\mathcal{N}(y;\hat{y}(\boldsymbol{x};\boldsymbol{w}),\ \sigma^{2})\)을 정의한다. 함수 \(\hat{y}(\boldsymbol{x};\boldsymbol{w})\)는 Gaussian 평균의 예측 값을 구한다. 이 예제에서는 분산이 사용자가 선택한 일부 상수 \(\sigma^{2}\)로 고정되어 있다고 가정한다. 우리는 \(p (y\ |\boldsymbol{x})\)의 기능적 형태 선택으로 maximum likelihood estimation가 이전에 개발한 것과 동일한 학습 알고리즘을 구하는 것을 알 수 있다. Example들이 i.i.d.로 가정되므로, conditional log-likelihood (식 5.63)는 다음과 같이 주어진다.

\[\displaystyle \sum_{i=1}^{m}\log p\ (y(i)\ |x^{(i)};\theta)\tag{5.64}\]

\[=-m\displaystyle \log\sigma-\frac{m}{2}\log(2\pi)-\sum_{i=1}^{m}\frac{||\hat{y}^{(i)}-y^{(i)}||^{2}}{2\sigma^{2}}\tag{5.65}\]

  여기서 \(\hat{y}^{(i)}\)는 \(i\)번째 입력 \(\boldsymbol{x}^{(i)}\)에 대한 linear regression 출력이고 \(m\)은 training example의 개수이다. log-likelihood를 mean squared error와 비교하면

\[\displaystyle \mathrm{MSE}_{\mathrm{train}}=\ \frac{1}{m}\sum_{i=1}^{m}||\hat{y}^{(i)}-y^{(i)}||^{2}\tag{5.66}\]

  우리는 mean squared error를 최소화하는 것과 같은 \(w\) 파라미터의 추정으로 log-likelihood를 최대화하는것을 알 수 있다. 두 criteria은 다른 값을 가지지 만 최적의 position은 동일하다. 이는 MSE를 maximum likelihood estimation 과정으로 사용하는 것을 정당화한다. 우리는 maximum likelihood estimation 가 몇 가지 가치 있는 속성들을 가지고 있음을 볼 것이다.

 

5.5.2 Properties of Maximum Likelihood

  Maximum likelihood estimator의 주된 장점은 수렴 관점에서 \(m\rightarrow\infty\)의 수로 가장 좋은 estimator가 될 수 있다는 것이다.

  적절한 조건 하에서 maximum likelihood estimation는 일관성(consistency)의 속성을 가지고 있으며 (위의 5.4.5 절 참조), 이는 training example이 무한대에 가까워짐에 따라 매개 변수의 maximum likelihood estimation이 실제 값으로 수렴한다는 것을 의미한다. 이러한 조건은 다음과 같다.

 

\( \bullet \)   실제 분포 \(p_{\mathrm{data}}\)는 \(\theta\) 모델 군(family) 내에 있어야한다. 그렇지 않으면 어떤 estimator도 복구할 수 없다.
 

\( \bullet \)   실제 \(p_{\mathrm{data}}\)는 \(\theta\)의 하나의 값과 정확히 일치해야 한다. maximum likelihood는 적절한 \(p_{\mathrm{data}}\)를 복구하지만 데이터 생성 처리에서 \(\theta\)의 어떤 값을 사용할지 결정할 수는 없다
 

 

  Maximum likelihood estimator 외에 다른 귀납적 원칙들이 있으며, 그 중 다수는 일관된 estimator라는 특성을 공유한다. 그러나 일관성은 통계적 효율성면에서 다를 수 있다. 즉, 하나의 일관된 estimator가 고정 된 수의 샘플 \(m,\)에 대해보다 낮은 generalization error를 얻거나 등가 적으로 고정 된 수준의 generalization error를 얻기 위해 더 적은 example을 요구할 수 있다.

  통계적 효율은 일반적으로 함수의 값이 아니라 매개 변수의 값을 추정(실제 매개 변수를 식별할 수 있다고 가정)하는 것이고, 매개 변수 사례(linear regression와 같은)에서 연구된다. 실제 매개 변수에 얼마나 가깝게 있는지를 측정하는 방법은 expected mean squared error 의해 추정된 값과 실제 매개 변수 값의 제곱 차이를 계산하는 것이다. 예상 값은 데이터 생성 분포의 \(m\) 훈련 샘플을 통해 구해진다. 파라메터 mean squared error는 \(m\)이 증가함에 따라 감소하고, 큰 \(m\)에 대해, Cramer-Rao lower bound (Rao, 1945; Cramér, 1946)는 일관된 estimator가 maximum likelihood estimator보다 낮은 mean squared error을 가질 수 없는 것을 보여준다.

  이러한 이유로 (일관성 및 효율성), maximum likelihood는 종종 기계 학습에 사용되는 선호 estimator로 간주된다. Example이 overfitting을 발생시킬 만큼 적은 경우, weight decay와 같은 regularization 전략을 사용하여 training data가 제한되어 있을 때 편차가 적은 maximum likelihood의 biased version을 얻을 수 있다.

 

5.6 Bayesian Statistics

  지금까지 우리는 frequentist statistics와 단일 값 \(\theta\)의 추정에 기반한 접근방식에 대해 논의했고, 그 하나의 추정치를 기반으로 모든 예측을 만들었다. 또 다른 접근법은 예측을 할 때 \(\theta\)의 모든 가능한 값을 고려하는 것이다. 후자는 Bayesian statistics 도메인이다.

  5.4.1절에서 frequentist 관점에서 실제 매개 변수 값 \(\theta\)는 고정되어 있지만 알 수 없는 반면, point estimate \(\hat{\theta}\)는 dataset의 함수 인 확률 변수 (임의의 것으로 간주됨)이다.

  통계에서 Bayesian의 관점은 상당히 다르. Bayesian은 확률을 사용하여 지식 상태의 certainty(확실한) 정도를 나타낸다. dataset은 직접 관찰되므로 무작위가 아니다. 반면, 실제 매개 변수 \(\theta\)는 알려지지 않았거나 불확실하므로 확률 변수로 나타난다.

  Data를 관측하기 전에 prior probability distribution(사전 확률 분포) \(p(\theta)\) (간단하게 “prior”로도 사용됨)를 사용하여 \(\theta\)에 대한 지식을 나타낸다. 일반적으로, 기계 학습 종사자는 높은 불확실성을 반영하기 위해 상당히 넓은 (즉 높은 엔트로피로) 사전 분포를 선택한다. 예를 들어, \(\theta\)가 일정한 범위 또는 부피에 일정한 분포로 존재한다고 가정할 수도 있다. 그 대신 모든 prior는 "단순한" 솔루션에 대한 선호를 반영한다. (예 : 계수의 크기가 작거나 함수는 상수에 가깝다).

\[p(\displaystyle \theta|x^{(1)},\ \ldots,\ x^{(m)})=\frac{p(x^{(1)},\ldots,x^{(m)}|\theta)p(\theta)}{p(x^{(1)},\ldots,x^{(m)})}\tag{5.67}\]

  Bayesian estimation이 일반적으로 사용되는 시나리오에서, prior는 상대적으로 높은 entropy를 갖는 uniform 또는 Gaussian 분포로 시작하고, 일반적으로 data의 관측은 posterior가 entropy를 잃고 매개 변수의 몇 가지 높은 값에 응집되게 한다.

  Maximum likelihood estimation과 비교하여 Bayesian estimation은 두 가지 중요한 차이점이 있다. 첫째, \(\theta\)의 point estimation을 사용하여 예측하는 maximum likelihood 접근법과 달리 Bayesian 방식은 \(\theta\)를 통해 전체 분포를 사용하여 예측하는 것이다. 예를 들어, \(m\)을 관측한 후, 다음 데이터 샘플 \(x^{(m+1)}\)에 대한 예측 분포는 다음과 같이 주어진다.

\[p (x^{(m+1)}|x^{(1)},\displaystyle \ .\ .\ .\ ,\ x^{(m)})=\int p(x^{(m+1)}\ |\theta)p(\theta\ |x^{(1)}\ ,\ .\ .\ .\ ,\ x^{(m)}) d\theta\tag{5.68}\]

  여기서 양(positive)의 확률 밀도를 갖는 \(\theta\)의 각 값은 다음 예제 예측에 기여하며, posterior 밀도 자체에 의해 weight가 부여된다. \(\{x^{(1)},\ldots,x^{(m)}\}\)를 관찰 한 후, \(\theta\)의 값에 대해 여전히 불확실하다면, 이 불확실성은 우리가 구할 예측 값에 직접적으로 반영된다.

  5.4절에서 우리는 frequentist 접근법이 주어진 \(\theta\)에 대한 point 추정치 불확실성을 어떻게 그 분산으로 평가(evaluate)하여 다루는지를 논의했다. Estimator의 분산은 관측된 데이터의 대체(alternative) sampling으로 추정치가 어떻게 변할 수 있는지에 대한 평가이다. "평가자(estimator)가 불확실성을 어떻게 다룰 것인가?"에 대한 Bayesian의 답은 "단순하게 그것을 적분하는 것"인데, 이는 overfitting을 막는 경향이 있다. 물론 이 적분은 확률 법칙을 적용한 것이므로, Bayesian 접근법은 정당(justify)하다. 반면 estimator를 구성하는 frequentist의 기계들은 단일 point estimation으로 dataset에 포함된 모든 지식을 요약하기 위한 다소 ad hoc decision(그때 그때 상황에 맞는 결정)에 기초한다

  Bayesian접근법과 maximum likelihood의 두번째 차이점은, bayesian prior distribution의 기여 때문에 생긴다. Prior는 선험적으로 선호되는 매개 변수 공간의 영역으로 확률 질량 밀도(probability mass density)를 이동시킴으로써 영향을 미친다. 실제로, prior는 종종 더 간단하거나 더 부드러운 모델에 대한 선호를 표현한다. Bayesian 접근법의 비평가들은 prior를 "예측에 영향을 미치는 주관적인 인간 판단의 원천(source)"으로 간주한다.

  제한된 training data만 사용할 수 있을 때, bayesian 방법이 일반적으로 훨씬 더 일반화(generalized)되지만, 일반적으로 training example 수가 많을 때는 높은 계산 비용으로 인해 어려움을 겪는다.

 

Example: Bayesian Linear Regression Bayesian 추정법을 사용하여 linear regression 매개 변수를 학습한다. linear regression 분석에서 \(y\in \mathbb{R}\) 값을 예측하기 위해 입력 벡터 \(x\in \mathbb{R}^{n}\)에서의 linear mapping을 학습한다. 예측은 \(w \in \mathbb{R}^{n}\)에 의해 parameterize 된다.

\[\hat{y}=w^{\top}x\tag{5.69}\]

\(m\) training sample set \(y\)가 주어지면, 우리는 전체 training set에 대해 \(y\)의 예측을 다음과 같이 나타낼 수 있다:

\[\hat{y}^{(\mathrm{train})}\ =\ X^{(\mathrm{train})}w.\tag{5.70}\]

\(y^{(\mathrm{train})}\)를 Gaussian conditional 분포로 표현하면, 다음과 같다:

\[p (y^{(\mathrm{train})} | X^{(\mathrm{train})}, w) =\mathcal{N}(y^{(\mathrm{train})}; X^{(\mathrm{train})}w, I) \tag{5.71)}\]

\[\propto \exp(-\displaystyle \frac{1}{2} (y^{(\mathrm{train})} - X^{(\mathrm{train})} w)^{\top} (y^{(\mathrm{train})} - X^{(\mathrm{train})} w))\tag{5.72}\]

  여기서 우리는 \(y\)를 Gaussian 분산으로 가정하여 표준 MSE 공식을 따른다. 이후에는 표기상의 부담을 줄이기 위해 \((X^{(\mathrm{train})},\ y^{(\mathrm{train})})\)는 \((X,\ y)\)로 한다.

  모델 매개 변수 벡터 \(w\)에 대한 posterior distribution를 결정하기 위해 먼저 prior distribution을 정해야 한다. Prior는 이런 매개 변수의 값에 대한 우리의 순수한 믿음을 반영해야 한다. 모델의 매개 변수에 대한 우리의 이전 믿음을 표현하는 것이 때때로 어렵거나 부자연스럽긴 하지만 실제로는 \(\theta\)에 대한 높은 불확실성을 표현하는 상당히 넓은 분포를 가정한다. 실수 매개 변수의 경우, prior distribution으로 Gaussian을 사용하는 것이 일반적이다.

\[p(w)=\displaystyle \mathcal{N}(w;\mu_{0},\ \Lambda_{0})\propto\exp\ (-\frac{1}{2}(w-\mu_{0})^{\top}\Lambda_{0}^{-1}(w-\mu_{0}))\tag{5.73}\]

여기서 \(\mu_{0}\)와 \(\Lambda_{0}\)는 각각 distribution mean vector 와 covariance 행렬을 나타낸다. (특별한 공분산 구조를 가정할 필요가 없다면, 일반적으로 대각 공분산 행렬 \(\Lambda_{0} =\mathrm{diag}(\lambda_{0})\)를 가정한다.)

  따라서 prior가 지정되면, 우리는 모델 매개 변수에 대한 posterior distribution을 결정할 수 있다.

\[p (w\ |\ X,\ y)\propto p(y\ |X,\ w)p(w)\tag{5.74}\]

\[\propto\exp (-\displaystyle \frac{1}{2}(y-Xw)^{\top}\ (y-Xw)) \exp(-\displaystyle \frac{1}{2}(w-\mu_{0})^{\top}\Lambda_{0}^{-1}(w-\mu_{0}))\tag{5.75}\]

\[\propto\exp (-\displaystyle \frac{1}{2}(-2y^{\top}Xw+w^{\top}X^{\top}Xw+w^{\top}\Lambda_{0}^{-1}w-2\mu_{0}^{\top}\Lambda_{0}^{-1}w)) .\tag{5.76}\]

우리는 이제 \(\Lambda_{m} = (X^{\top}X+\Lambda_{0}^{-1})^{-1}\)와 \(\mu_{m}=\Lambda_{m}(X^{\top}y+\Lambda_{0}^{-1}\mu_{0})\)을 정의한다. 이 새로운 변수를 사용하여, posterior를 Gaussian 분포로 재 작성할 수 있다.

\[p (w|\ X,\ y)\propto\exp (-\displaystyle \frac{1}{2}(w-\mu_{m})^{\top}\Lambda_{m}^{-1}(w-\mu_{m})+\frac{1}{2}\mu_{m}^{\top}\Lambda_{m}^{-1}\mu_{m})\tag{5.77}\]

\[\displaystyle \propto\exp\ (-\frac{1}{2}(w-\mu_{m})^{\top}\Lambda_{m}^{-1}(w-\mu_{m}))\tag{5.78}\]

매개 변수 벡터 \(w\)를 포함하지 않는 모든 항은 생략되었다. 그것은 분포가 정규화 되어 적분 값이 1이어야 한다는 사실에 의해 암시된다. 식 3.23는 다변수 Gaussian분포의 정규화 방법을 보여준다.

  이 posterior distribution를 조사하면 Bayesian inference(추론)의 효과에 대해 약간의 직감(intuition)을 얻을 수 있다. 대부분의 경우 \(\mu_{0}\)을 \(0\)로 설정한다. 만일 \(\Lambda_{0} = \frac{1}{\alpha}I\)를 설정 한다면, \(w\)에 대해 \(\mu_{m}\)는 frequentist linear regression와 동일한 추정치, \(\alpha w^{\top}w\)로 구해지며, weight decay penalty와 같다. 한 가지 차이점은 \(\alpha\)를 0으로 설정하면 Bayesian 추정치가 정의되지 않는다는 것이다. 우리는 무한히 넓은 \(w\)의 prior로 Bayesian 학습 과정을 시작할 수 없다. 더 중요한 차이점은 Bayesian 추정치가 추정치 \(\mu_{m}\)만 제공하지 않고, 공분산 행렬(covariance matrix)을 제공한다는 것이다. 이것은 \(w\)의 모든 다른 값이 얼마나 유사 한지 나타낸다.

 

5.6.1 Maximum A Posteriori (MAP) Estimation

  가장 근본적인 접근법(principled approach)은 매개 변수 \(\theta\)에 대한 Bayesian posterior distribution을 사용하여 예측하는 것이지만, 종종 단일 점 추정(single point estimate)하는 것이 가치 있다. point estimation이 가치 있다는 한가지 이유는, 우리가 가장 관심있는 모델의 Bayesian posterior와 관련된 연산(operation)은 대부분 다루기가 어렵고, point estimation은 다루기 쉬운 근사(approximation)를 제공한다는 것이다. 단순히 Maximum likelihood로 돌아 가기보다, prior가 point estimation에 선택에 영향을 주게 함으로써, Bayesian 방식의 이점을 얻을 수 있다. 합리적인 방법 중 하나는 maximum a posteriori (MAP) point estimation를 선택하는 것이다. MAP 추정은 maximal posterior probability point (또는 연속 \(\theta\)의 경우 maximal probability density)를 선택한다.

\[\theta_{\mathrm{M}\mathrm{A}\mathrm{P}}=\mathop {\arg \max }\limits_\theta p (\displaystyle \theta|\ x)=\arg_{\theta}\max\log p(x\ |\theta)+\log p(\theta)\tag{5.79}\]

위 식의 \( \log p(x\ |\ \theta)\)는 standard log-likelihood term이고 \(\log p(\theta)\)는 prior distribution에 해당한다.

  예를 들어, weight \(w\)에 대한 Gaussian prior의 linear regression 모델을 생각해보자. 이 prior가 \(\displaystyle \mathcal{N}(w;0,\ \frac{1}{\lambda}P)\)에 의해 주어진다면 식 5.79의 log-prior term은 "익숙한 \(\lambda w^{\top}w\) weight decay penalty 항" 더하기 "\(w\)에 의존하지 않으며 학습에 영향을 주지 않는 항"에 비례한다. 이와 같이, weight에 대해 Gaussian prior를 가지는 MAP Bayesian 추론은 weight decay에 해당한다.

  Full Bayesian 추론과 마찬가지로, MAP Bayesian 추론은 prior로부터 가져왔고 training data에서 찾을 수 없는 정보를 활용하는 이점이 있다. 이 추가 정보는 (ML estimation과 비교하여) MAP point estimation의 분산을 줄이는 데 도움이 된다. 그러나 그것은 "증가한 bias의 대가"이다.

  Weight decay로 정규화 된 maximum likelihood 학습과 같은 많은 정규화 된 평가 전략은 Bayesian 추론에 대한 MAP approximation을 만드는 것으로 해석할 수 있다. 이는 정규화가 \(\log p(\theta)\)에 해당하는 목적 함수에 새로운 항를 추가하는 것 적용된다. 하지만, 모든 regularization penalty가 MAP Bayesian 추론에 해당하는 것은 아니다. 예를 들어, 일부 regularizer term은 확률 분포의 로그(logarithm)가 아닐 수도 있다. 다른 regularization term은 데이터에 의존하며, 물론 prior probability distribution를 정규화를 위해 사용할 수 없다.

  MAP 베이시안 추론은 복잡하지만 해석 가능한 regularization term를 쉽게 설계할 수 있는 방법(straightforward way)을 제공한다. 예를 들어, 더 복잡한 penalty term은 단일 Gaussian 분포가 아니라 Gaussian 분포의 조합(mixture)을 prior로 사용하여 도출할 수 있다 (Nowlan and Hinton, 1992).

 

 

 

  출처 : http://www.deeplearningbook.org/contents/ml.html

posted by DP_Story