Learning Deep Architecture for AI (3)
[cite]10.1561/2200000006[/cite]
한번 두번 다듬으면서 다시 보니 오역이 엄청나다는 것을 뼈저리게 체험합니다. 틀린 부분은 지적을 부탁드립니다.
3. Local vs Non-Local Generalization
3.1 The Limits of Matching Local Templates
어떻게 학습 알고리즘이 입력 데이터의 복잡한 함수를 간단하게 표현할 수 있는 것일까요? 다시 말하면, 트레이닝 데이터의 수보다 많은 수의 variation을 학습할 수 있을까요? 이러한 물음은 깊이 말고도 local estimator와 연관이 있습니다.
Local estimator는 highly varying 함수를 표현하기에 부적절하다고 주장하고 싶습니다. 깊은 구조를 사용하여 효과적으로 표현될 가능성이 있다고 해도 말입니다.
Local estimator는 새로운 입력 x가 주어졌을 때, 입력 공간 내에서 그와 비슷한 트레이닝 샘플들이 x 주변에 많이 존재할 때 좋은 일반화를 얻을 수 있습니다. 따라서 샘플을 고려한다면, 함수를 표현하기 위해서는 입력 공간을 여러 영역으로 나누고 각 영역에 해당하는 함수의 모양에 따라 서로 다른 파라미터나 자유도를 다르게 할당하고 사용되어야 합니다. 이러한 부분은 함수가 highly barying하여 영역을 잘게 나눠야 할 경우 필요한 파라미터 또한 많아지게 되는 단점으로 작용합니다. 좋은 일반화를 위해 필요한 트레이닝 샘플의 수 또한 더욱 많이 필요하게 되는 것입니다.
이러한 지역 일반화(local generalization) 이슈는 차원의 저주 문제와 직접적으로 연결되어있습니다. 하지만 실제로는 차원 자체가 문제가 되는 것이 아니라, 우리가 알고자 하는 함수의 variation이 문제가 되는 것입니다. 결정 트리와 같이 함수를 piecewise-constant 모델로 풀고자 하였을 때, 복잡하게 변하는 함수를 올바르게 추정하기 위해서 중요한 것은 필요한 piece의 수일 것입니다. 그리고 이 variation의 수준은 입력의 차원과도 관련이 있습니다.
Local templates의 매칭에 기반한 구조를 생각하여봅시다. 이러한 알고리즘들은 두 개의 단계로 이루어집니다. 첫번째 단계는 입력에 적용할 템플릿들의 집합을 생성하는 단계입니다. 각 템플릿 계산 요소들은 매칭의 정도를 출력으로 내놓게 됩니다. 다음으로 이들의 출력 값을 통합하는 단계가 수행됩니다. 보통 간단한 linear combination을 사용하는데, 이러한 local template 매칭의 예로 다음과 같은 커널 머신(kernel machine)을 생각할 수 있습니다.
$$f(x) = b + \sum_i \alpha_i K(x, x_i)$$
첫번째 레벨은 커널에 해당하는 계산인 $K(x, x_i)$에 해당하고, 두번째 레벨은 b와 $\alpha_i$의 계산에 해당합니다. 이 함수 $f(x)$는 분류기의 결정 함수로 사용되거나 regression predictor로 사용됩니다.
커널에 의한 계산은 주어진 입력 x에 대해서 $K(x, x_i) \gt \rho $인 영역을 local 영역으로 사용합니다. 따라서 영역의 크기는 커널 함수에 사용되는 하이퍼 파라미터로 조절할 수 있습니다. 예를 들면 가우시안 커널 $K(x, x_i) = \exp(-||x - x_i||^2) / \sigma^2 $에서의 $\sigma$가 이에 해당하는 하이퍼 파라미터로써 사용됩니다.
잘 알려진 커널 머신은 Support Vector Machines (SVMs)와 Gaussian processes, k-nearest neighbor, Nadaraya-Watson Parzen windows density, Isomap, LLE 등이 있습니다.
Local 커널을 이용한 커널 머신은 smoothness prior를 이용하여 일반화를 이루어 냅니다. Smoothness priors란 대상 함수가 smooth하거나 smooth한 함수로 잘 근사하여 표현할 수 있다는 가정입니다. 예를 들어, 지도 학습을 이용하여 트레이닝 데이터 $(x_i, y_i)$가 주어졌을 때, 이를 이용하여 함수 $f(x)$의 예측기를 만드는 경우를 생각할 수 있습니다. 학습된 예측 함수에 트레이닝 데이터 $x_i$에 가까운 새로운 입력 데이터 x를 이 함수에 넣었을 경우, 그 출력 또한 트레이닝 데이터 $y_i$에 가까울 것이라는 가정이 바로 smoothness priors입니다. 하지만 함수가 입력 공간에 대하여 highly varying 할 경우, 일반화를 이루어 내기에는 이러한 가정만으로는 충분하지 않습니다.
고정된 형태의 커널이 가지는 단점을 극복하기 위해, 문제가 가지는 사전 지식을 이용하여 커널을 디자인하려는 연구도 이습니다. 하지만 이러한 사전 지식조차 활용하기 힘든 경우에는 어떻게 해야할까요? 깊은 구조는 이러한 목적으로 사용될 수도 있습니다. 실제로 Deep Belief Networks를 이용하여 특징 공간을 학습한 뒤, Gaussian Process 커널 머신을 이용하여 성능을 향상 시킨 연구가 있습니다. 여기서는 DBNs을 통하여 먼저 학습을 시킨 다음, 학습된 DNBs을 이용하여 입력 패턴을 특징 벡터로 변환하였습니다. 그리고 Gaussian process의 error를 최소화 하도록 DNBs의 이 변환 과정을 다시 조절하였습니다. 이렇게 만들어진 특징 공간으로의 변환은 트레이닝 데이터로부터 학습되어진 표현 방법이라고 볼 수 있습니다. Gaussian Process를 사용하였기에 비슷한 추상을 갖는 샘플들과 가깝도록 생성이 될 것입니다.
높은 차원에서 Local 커널을 이용한 방법을 사용하면 차원에 따라 복잡해진 결정 곡면이 의미없는 학습 결과를 내놓을 수도 있습니다. 만약 결정 곡면이 많은 변화를 가지면서도 그 변화가 어떠한 규칙성이 없이 제멋대로 이루어지고 있다면, 학습에 있어 local estimator보다 더 나은 대안은 없을 것입니다. 그럼에도 불구하고 이러한 변화를 좀 더 간단히 표현하는 방법을 찾을 수 있는지 시도해보는 것이 나을 수 있습니다. 트레이닝 데이터 자체에서는 보이지 않더라도 만약 그러한 방법이 존재한다면, 그것이 좀 더 좋은 일반화를 이끌어낼 것이기 때문입니다.
Local estimator는 지도 학습 뿐만 아니라 비 지도 학습이나 준 지도 학습에서도 사용됩니다. Locally Linear Embedding, Isomap, kernel Principal Component Analysis, Laplacian Egienmaps, Manifold Charting, spectral clustering algorithms, kernel-based non-parametric semi-supervised algorithms 등의 알고리즘을 예로 들 수 있습니다. 이들 비/준 지도 학습 알고리즘들은 이웃 그래프에 의존하고 있습니다. 이러한 알고리즘을 이용하면, 이들이 geometry상에서 어떠한 일을 하고 local estimator가 어떤 식으로 방해가 될 수 있는지 살펴볼 수 있습니다.
Neighborhood graph를 기반으로 하는 준 지도 학습 알고리즘을 생각해봅시다. 이러한 알고리즘은 graph를 정해진 수의 각 label에 해당하는 영역으로 구역을 나눕니다. 이 label들 수는 트레이닝 데이터의 label의 수보다 커지지 않기 때문에 분류할 클래스의 variation이 클 수록 많은 트레이닝 데이터가 필요합니다. 따라서 variation이 매우 크다면 이를 트레이닝하는게 현실적으로 불가능하게 되어버립니다.
결정 트리는 오랫동안 연구되어온 학습 알고리즘입니다. 언듯보기에 첫번째 단계에서 입력 데이터의 특정 부분 집합에만 집중하기 때문에 non-local로 생각될 수 있지만, 실은 각 잎에 해당하는 나눠진 영역이 존재하고, 이 영역마다 별도의 파라미터와 입력 공간을 갖는 local estimator입니다. 따라서 앞에서 언급한 non-parametric 학습 알고리즘에서와 같이 각 영역별로 많은 트레이닝 데이터가 필요하다는 단점이 존재합니다. 또한 트레이닝 데이터가 커버하지 못하는 새로운 변화에 대해서는 일반화가 불가능합니다.
앙상블 방법은 단일 트리보다 강력한 방법입니다. 사용된 파라미터에 비해 지수적으로 많은 영역을 구분할 수 있도록 3번째 레벨을 추가하였습니다. 이로써 모든 트리에 대해서 distributed representation의 형태를 띕니다. 앙상블 내의 각 트리는 그 트리로 할당된 입력에 대하여 어느 영역에 속하는지를 판단하는 개별 심볼과 연관지을 수 있습니다. 각 잎 노드에서 할당된 것들은 튜플을 형성하게 되어 rich한 description을 만들어내게 됩니다.
3.2 Learnig Distributed Representation
앞에서 깊은 구조는 각 레벨과 레벨 사이에서 어떠한 표현을 이끌어내도록 한다고 이야기하였습니다. 그리고 지역 표현(local representation)에 대한 개념도 이야기 하였습니다. Distributed representation은 기계학습이나 신경망에서는 오래된 개념으로 차원의 저주나 지역 일반화의 문제로 인한 한계를 극복할 수 있도록 도와줄 수 있습니다.
1에서 N까지의 정수를 표현하는 아주 간단한 지역 표현을 생각해볼 수 있습니다. N개의 이진 값을 갖는 벡터 $ r(i) $인데, 벡터의 j번째 요소는 $r_j(i) = 1_{i=j} $으로 단 하나의 요소만 1이고 나머지는 0이게 됩니다. 이러한 벡터를 one-hot representation이라고 합니다. 이를 distributed representation으로 나타내면 같은 정수를 $\log_2N $개의 비트로 나타낼 수 있습니다. 즉, 이를 이용하면 매우 local한 것보다 좀더 간단한 표현으로 나타낼 수 있는 것입니다.
표현에 있어 sparsity는 fully local과 non-sprase distributed representation 사이에서 어느 정도 수준에 있는가 하는 것입니다. 앞에서 이야기한 것처럼, 신경망의 뉴런들은 1~4%만 한번에 활성화 되므로 sparse representation이라고 볼 수 있습니다.
만약 표현이 연속된 값을 갖는다면 표현력을 증가시키는 장점을 갖습니다. Distributed representation에서의 입력 패턴은 특징의 집합으로 표현되는데, 이들은 서로 상호 배제(mutually exclusive)하지도 않고 통계적으로 독립적이지도 않습니다. 예를 들어 클러스터링 알고리즘은 단 하나의 클러스터에만 속할 수 있기에 distributed representation에 속하지 않지만 Independent Component Analysis나 Principal Component Analysis의 경우에는 distributed representation에 속한다고 할 수 있습니다.
만약 입력 패턴 x에 대해 Discrete distributed representation $r(x)$가 있다고 생각해봅시다. 이 표현은 $r_i(x) \in \{1, dots, M\}, i \in \{1, \dots, N \} $ 으로 $r_i(x)$는 x가 M개의 클래스 중 어디에 속하는지를 나타낸다고 볼 수 있습니다. 따라서 각 $r_i(x)$는 입력 패턴 공간을 M개의 영역으로 나누게 됩니다. 하지만 $r(x)$의 구성하는 방법에 따라 다른 영역들이 조합되어 M에 비해 지수적으로 표현할 수 있는 영역이 늘어나게 됩니다.
이러한 결과를 여러 영역에 걸쳐 있거나 일부 영역에만 속하는 멀티 클러스터링(multi-clustering)의 개념으로 생각할 수 있습니다. 한 영역에만 속할 수 있는 싱글 클러스터링의 경우 입력 패턴의 정보 중 잃게 되는 많아질 수밖에 없습니다. 하지만 멀티 클러스터링의 경우 입력 패턴은 개개의 영역에 대하여 어느정도로 속해있는 지를 표현하게 되므로 정보의 손실 없이 풍부한 표현을 갖게 됩니다. 입력 패턴은 새로운 공간으로 변환되게 되므로 데이터의 통계적인 구조와 factors of variation가 서로 분리되는 효과를 갖습니다. 이러한 특징이 바로 우리가 깊은 구조에서 얻고자 하는 바입니다.
지도 학습에서의 multi-layer neural networks나, 비지도 학습의 Boltzmann 머신에서의 hidden layer는 distributed internal representations을 사용합니다. 이러한 학습 알고리즘은 distributed representation으로 구성된 피쳐를 찾도록 유도합니다. 1개 이상의 은닉 층을 갖는 Multi-layer neural network의 경우 각 층마다 표현을 갖기에 여러 표현이 존재합니다. 이러한 각각의 표현들을 학습하는 것은 풀기에 쉬운 문제는 아닙니다.