4 minute read

영상 한편에 9시간 예상

생성 모델

Generative model은 label이 없어도 원본 데이터를 생성(복원)할 수 있는 feature를 뽑아내는 reconstruction task를 수행한다. 즉, Unsupervised learning에 속한다. 비지도 학습은 우리가 원하는 모델 유형을 포착한다.

Generative modeling

  • 학습 세트의 샘플만 제공
  • 특정 분포의 훈련 샘플을 입력으로 받아 해당 분포를 나타내는 모델을 학습한다.
  • 우리는 모델이 보고 있는 데이터의 분포를 나타내는 모델을 학습하고자 한다. 두 가지의 일반적인 형태를 취한다.
  1. density estimation
  2. sample generation

image

density estimation

데이터 예제가 주어지고, 데이터가 어디서 왔는지에 대해 근본적인 설명하는 확률 분포를 학습하는 모델을 학습시킨다.

sample generation

아이디어는 density estimation와 비슷하지만, 조금 더 새로운 인스턴스를 생성하는데 초점이 맞추어져 있다.

  • 샘플 생성의 목표는 이 기본 확률 분포에 대한 모델을 학습한 다음, 이 모델을 사용하여 표본을 추출하고 이상적으로 동일한 실제 데이터 분포를 따라 거의 일치하는 데이터와 유사한 새로운 인스턴스를 생성하는 것이다.

밀도 추정과 표본 생성의 경우 모두에서 기본 질문은 동일하다. 우리의 학습 과제는 실제 데이터 분포에 최대한 가까운 확률 분포를 학습하는 모델을 구축하는 것이다.

image

생성 모델이 강력한 이유 중 하나는 데이터 세트의 기본 특징을 발견하고 효율적인 방식으로 인코딩할 수 있는 기능이 있기 때문이다.

예를 들어 얼굴 감지 문제를 고려할 때 이 데이터를 검사하지 않고 다양한 얼굴이 포함된 데이터 세트가 주어지면 이 데이터 세트의 얼굴 분포가 머리의 포즈, 옷, 안경, 피부 톤, 머리카락 등과 같이 우리가 관심을 가질 수 있는 특징과 관련하여 어떤지 알 수 없을 수 있다.

그리고 우리가 인지하지 못하는 사이에 학습 데이터가 특정 특징에 매우 편향되어 있을 수도 있다. 생성 모델을 사용하면 데이터에서 어떤 특징이 과대 대표되고 어떤 특징이 과소 대표되는지 이해하기 위해 라벨링 없이 완전히 자동화된 방식으로 이러한 기본 특징의 분포를 실제로 식별할 수 있다.


image

또 다른 정말 강력한 예는 드문 이벤트를 식별하는 이상값 탐지의 경우이므로 자율 주행 자동차의 예를 고려해보자. 자율 주행차가 실제 도로를 주행한다고 했을 때, 사슴이 차 앞으로 다가오는 것과 같은 돌발 상황이나 예상치 못한 희귀 이벤트 등 발생할 수 있는 모든 시나리오와 모든 경우를 처리할 수 있는지 확인해야 한다.

생성 모델을 사용하면 대부분의 시간 동안 볼 수 있는 일반적인 직선 고속도로 주행뿐만 아니라 밀도 추정이라는 아이디어를 사용하여 학습 데이터 내에서 그리고 모델이 처음 볼 때 발생하는 희귀하고 변칙적인 이벤트를 식별할 수 있다.

  • 밀도 추정은 이상치 탐지에 사용되는 기법 중 하나


Latent variable

image

7:35부터

Latent variable은 hidden variable을 의미한다. Latent variable을 뽑는 과정은





생각 정리

Latent variable

Latent variable은 input으로 넣은 data의 차원을 축소시켜 만든 벡터이다. AutoEncoder에서 Encoder는 PCA와 같은 차원축소가 목적이었고 핵심은 Encoder에서 Latent variable을 생성하는 것에 있었다. PCA와 같은 선형적인 계산이 아닌, non-linear하게 latent variable을 뽑을 수 있는 것이 AutoEncoder에서 encoder의 장점이다.

이런 Latent variable이 유효한 이유의 근본은 차원의 저주에서도 생각해볼 수 있다. 차원의 저주는 data의 개수는 별로 없는데 이를 설명하려고 하는 변수의 차원은 클 때 발생한다. 차원이 늘어갈수록 사용하는 공간대비 아는 정보에 대한 밀도가 희박해지는데, 따라서 차원이 증가할수록 데이터 분석에 필요한 데이터 수가 기하급수적으로 늘어나게 된다.

그리고 우리가 알고 있는 깨끗한 이미지들은 Normal하게 분포하지 않고, Dense한 어떤 특정한 지역에 분포한다. 즉, MNIST 숫자 이미지를 생각해볼 때 이미지 크기가 28*28 이므로 그것을 설명하는 파라미터는 784개로 임의의 분포로 각 픽셀에 데이터를 뿌리면 경우의 수는 굉장히 많을테지만 한번쯤은 Mnist 데이터와 비슷한 숫자 이미지가 나오지 않을까? 라고 생각할 수 있다. 하지만, 꽤 많이 실행해봐도 Noise 가득한 형체 없는 이미지만이 나올뿐이다. 그래서 우리가 알고 있는 이미지들은 normal하게 분포하는 것이 아니라, Dense한 어떤 특정한 지역에 분포한다는 것.

위의 두 설명을 결합하면 Manifold 가정을 이끌어 낼 수 있다. 고차원의 데이터 밀도는 낮지만 이들의 집합을 포함하는 저차원의 subspace가 있다는 것이다. 그리고 이 저차원의 manifold를 벗어나는 순간부터 급격히 밀도가 낮아져 이미지를 잘 설명하지 못하게 된다. Manifold는 고차원의 데이터를 저차원으로 옮길 때 데이터를 잘 설명하는 집합의 모형이다. 또한 높은 차원에서 낮은 차원으로 변환하는 것을 Embedding이라고 하며 그것에 대한 학습 과정을 Manifold Learning이라고 한다.

Encoder에서는 Manifold가정을 통해 Input data의 고차원 데이터는 희박한 밀도를 가지고 있으므로 저차원의 데이터로 만들어서 원래의 데이터를 잘 설명하는 Manifold를 찾는 것이 목적이다. 그렇다면 Decoder는 왜 존재하는가? 그 이유는 Decoder로 Latent Variable을 원래의 Data로 만들어 주게 되면 Label로 다시 input data를 사용할 수 있으므로 지도 학습이 가능해지기 때문이다.

Auto Encoder의 핵심

  • Nonlinear Dimensionality reduction
    • Representation learning = Efficient coding learning = Feature extraction = Manifold learning

probability space

확률 공간이란 랜덤 프로세스 또는 실험의 공식적인 모델을 제공하는 수학적 구조이다. 예를 들어 주사위 던지기를 모델링하는 확률 공간을 정의할 수 있다.

확률 공간은 세 개의 요소로 구성된다.

  1. 가능한 모든 결과의 집합인 sample space \(\omega \).
  2. 사건 공간은 사건 F의 집합이며, 사건은 샘플 공간의 결과 집합이다.
  3. 사건 공간에서 각 사건에 대해 0과 1사이로 확률을 할당하는 확률 함수 P

표준 주사위 던지기의 예시

  • 샘플 공간(표본 공간): {1,2,3,4,5,6}
  • 사건 공간: 표본 공간의 부분집합. 주사위가 짝수인 경우{2,4,6}처럼 복잡한 이벤트도 포함할 수 있음.
  • 확률 함수 P: 각 사건을 해당 이벤트의 결과 수로 나눈 값을 매핑한다. 예를 들어 주사위가 5가 나온 사건은 1/6에 매핑되고, {2,4,6}은 3/6 = 1/2으로 매핑된다.

pixel space

pixel에서의 probability space

  • 즉, 28x28x1 (mnist) 이미지라면 엄청나게 많은 예시 공간이 있을 것
  • 28x28x256 = 200,704의 가능한 이미지가 생긴다.

Latent space

우리가 찾고자 하는 데이터가 있는 잠재공간. 확률 공간은 너무 크기 때문에 이미지를 효율적으로 설명할 수 있는 latent space에서 생각해보자.

이미지의 각 픽셀과 같은 디테일이 아니라 전체에 속성을 신경쓴다. 사람의 잠재 공간에서 각 축은 픽셀이 아니라 속성을 뜻하게 된다. 픽셀 공간에서보다 더 적은 축을 활용하여 이미지를 설명할 수 있게 된다.

Manifold

어떤 공간에 존재하는 다형체. 확률 공간을 닮은 공간을 의미한다. 다형체의 말에서 알 수 있듯이 몇 차원이든 가능하다. 기하학적으로는 latent space와 다른 의미이나, 딥러닝에서는 비슷하게 사용되는 경향이 있다. MNIST에서 20만개의 이미지의 경우가 가능했는데, 이 경우에는 숫자의 manifold를 학습해야 한다.





출처

https://www.youtube.com/watch?v=3G5hWM6jqPk&ab_channel=AlexanderAmini
https://sanghyu.tistory.com/177

https://en.wikipedia.org/wiki/Probability_space

<> <> <>

Updated: