머신 러닝은 input data를 output data로 대응시키는 블랙박스 형태입니다. 이 블랙박스는 input data의 함수이며 선형 또는 비선형의 형태를 가질 수 있습니다. 우리는 train data를 사용해서 이 함수를 학습하지만 항상 잘 되는 것은 아닙니다.
ex) 한 카페의 매출 가격을 입력으로 해서 가장 잘 팔리는 음료가 무엇인지 알려고 합니다. 매출 가격만으로 가장 잘 팔리는 음료가 무엇인지 정확하게 예측하는 것이 가능할까요? 아마도 매출 가격 정보만으로는 결과를 도출하기에는 충분하지 않을 것입니다.
위 예제를 통해 머신 러닝의 성능은 데이터의 양과 질에 굉장히 의존적이라는 것을 알 수 있습니다. 가장 이상적인 입력 데이터는 부족하지도, 과하지도 않은 적확한 데이터만 갖는 것입니다.
적확한 데이터를 모으기 위해서는 먼저 충분한 데이터를 모으고, 모은 데이터들 가운데 어떤 feature가 유용한지 아닌지 확인하는 과정을 거칩니다. Feature의 유용성을 확인하는 과정을 특징 선택(teature selection), 또는 특징 추출(feaure extraction)이라고 합니다. 이 과정은 보통 learning 과정 전에 실행됩니다. 이 과정은 머신러닝 구조에서 가장 핵심적인 전처리 과정에 속합니다.
차원 축소란?
우리가 훈련에 필요한 충분한 고차원의 입력 값을 가지고 있다고 가정해 봅시다. 모든 개수의 fearture가 필요하지 않을 수도 있고, 가지고 있는 feature들 중 몇몇 개는 다른 특징들의 조합으로 표현 가능하므로 불필요할 수도 있습니다. 따라서 관찰 대상들을 잘 설명할 수 있는 잠재 공간(latent space)은 실제 관찰 공간(observation space) 보다 작을 수 있습니다. 이렇게 관찰 공간 위의 샘플 기반으로 잠재 공간을 파악하는 것을 차원 축소(dimensionality reduction technique)라고 합니다.
차원 축소는 데이터의 압축, 잡음 제거 효과가 있지만,
가장 중요한 의의는 관측 데이터를 잘 설명할 수 있는 잠재 공간(latent space)를 찾는 것입니다.
GAN을 학습시키다 보면 어느 순간 제대로 학습이 되지 않을 때가 있습니다. 이것을 바로 모드 붕괴, Mode Collapse현상이라고 하는데요.이는 생성자가 다양한 이미지를 만들어내지 못하고 비슷한 이미지만 계속해서 생성하는 경우를 뜻합니다. GAN을 학습시킬 때는 생성자와 구분자가 비슷한 수준으로 학습을 반복하고 있는지 잘 확인해야 합니다.
간단 정리
생성자(G)가 입력 값을 하나의 mode에 치우쳐 변환시키는 현상
특정 값에 대해G <-> D 를 반복해 올바르지 못한 학습이 진행
일부 값에만 치우쳐 전체 분포에 대해 학습하지 못하는 현상
MNIST의 경우:
G가 하나의 숫자만 생성하다 판별기(D)의 값이 진동해 다른 숫자의 분포로 이동하여 G가 다른 숫자만 생성하는 현상