앞으로 3주동안에는 이안 굿펠로우의 GAN 튜토리얼을 요약하면서 스터디가 진행이 됩니다.
아래 내용은 이번 스터디에서 발표된 내용입니다.
1. 컴퓨터 비전
- 인식: 이미지 내에 존재하는 정보를 찾는 기술입니다.
- 생성: 특정 정보를 담는 이미지를 생성하는 기술입니다.
학습하는 방식에는 Supervised Learning과 Un-supervised Learning이 있습니다. 나눠지는 기준은 레이블의 유무, 그리고 어떠한 목적으로 학습이 진행되는지에 따라서 나눠지게 됩니다. Supervised Learning은 매핑할 함수를 학습하는 목적을 가지고 있고 Un-Supervised Learning은 주어진 데이터 속 숨겨진 패턴을 학습하는 목적을 가집니다.
생성모델
생성 모델은 학습 데이터 하나하나를 학습하는 것이 아니라 학습 데이터의 분포를 학습해서 유사한 데이터를 만드는 모델입니다. (입력과 출력이 같음) 학습 데이터의 분포와 차이가 적을수록 실제와 같은 이미지를 생성할 수 있습니다.
# 활용
- 생성 모델에서의 Training과 sampling은 고 차원 확률 분포를 표현하고 나타내는 우리의 능력을 훌륭하게 테스트 할 수 있습니다. 고 차원 확률 분포는 다양한 응용 수학이나 엔지니어링 영역에서 중요한 객체입니다.
- 생성 모델은 여러 가지 방법으로 강화 학습에 포함 될 수 있습니다. 강화 학습 알고리즘은 두 가지 범주로 나눌 수 있는데, model-based 와 model-free 입니다. model-based 알고리즘은 생성 모델을 포함하는 알고리즘 입니다. 시계열 데이터에 생성 모델을 사용해서 시뮬레이션이 가능합니다. 이런식으로 다양하게 강화학습에 사용될 수 있습니다.
다중 모드 출력이 필요한 작업의 한 예는 비디오의 다음 프레임을 예측하는 것입니다. 왜냐하면 다음 단계에서 일어날 수 있는 여러 가지 일들이 있기 때문입니다. 현재 이미지 뒤에 순차적으로 나타날 수 있는 프레임은 매우 다양합니다. 기존의 예측 방식에서 발생할 수 있는 다양한 일들이 많기 때문에 다음 비디오 프레임은 단일 이미지를 사용하여 다음 프레임의 분포를 표현하려고 할 때 매우 흐리게 되는 경우가 많습니다. 여러 가능한 다음 프레임 이미지가 함께 평균화되어 흐릿하게 됩니다. 왼쪽은 ground truth 이미지이며 가운데는 헤드의 3D 렌더링 영상에서 다음에 예측해야 할 이미지입니다. 평균 제곱 오차를 사용하여 학습한 기존 모델을 촬영했을 때 예측되는 이미지를 보여줍니다. 이 평균 제곱 오차 모델은 여러 가능한 미래를 예측하고 그 다음 함께 평균화하여 위험을 회피하기 때문에 우리는 눈이 특별히 선명하게 정의되지 않은 흐릿한 이미지로 끝나게 됩니다. 마찬가지로 이 사람의 머리에 있는 귀도 오른쪽에서 다소 사라졌습니다. 좀 더 일반적인 모델링 유형 접근 방식을 도입할 때 어떤 일이 일어나는지 보여 드리겠습니다. 특히 오른쪽 이미지에서 모델을 훈련하기 위해 adversarial loss을 사용할 경우 모델은 해당 영역의 어두운 픽셀과 특징에 날카로운 모서리로 눈과 귀의 선명한 이미지를 성공적으로 그려냈습니다.
또 다른 작업은 초고해상도 이미지 입니다. 이 예에서는 왼쪽의 원본 이미지로 시작한 다음 이미지를 절반 정도로 다운 샘플링을 합니다. 그런 다음 고해상도 이미지를 재구성하는 여러 가지 방법을 공유합니다. 만약 우리가 쌍방 보간법을 사용한다면 픽셀이 어떻게 되어야 하는지에 대한 Mathematical formula만 설계하면 됩니다. 샘플링 이론에 근거하여 왼쪽에서 두번째로 보이는 상대적으로 흐릿한 이미지를 얻을 수 있습니다. 나머지 두 이미지는 머신러닝을 사용하여 데이터 분포처럼 보이는 고해상도 이미지를 만드는 방법을 실제로 학습하는 다른 방법을 보여줍니다. 따라서 이 모델은 다운 샘플링 과정에서 손실된 세부 정보를 제공하기 위해 고해상도 이미지가 어떤 모습인지에 대한 지식을 활용할 수 있습니다. 새로운 고해상도 이미지는 완벽하게 정확하지 않을 수도 있고 현실과 완벽히 일치하지 않을 수도 있습니다. 하지만 적어도 시각적으로는 그럴듯해 보입니다.
또 다른 작업은 초고해상도 이미지 입니다. 이 예에서는 왼쪽의 원본 이미지로 시작한 다음 이미지를 절반 정도로 다운 샘플링을 합니다. 그런 다음 고해상도 이미지를 재구성하는 여러 가지 방법을 공유합니다. 만약 우리가 쌍방 보간법을 사용한다면 픽셀이 어떻게 되어야 하는지에 대한 Mathematical formula만 설계하면 됩니다. 샘플링 이론에 근거하여 왼쪽에서 두번째로 보이는 상대적으로 흐릿한 이미지를 얻을 수 있습니다. 나머지 두 이미지는 머신러닝을 사용하여 데이터 분포처럼 보이는 고해상도 이미지를 만드는 방법을 실제로 학습하는 다른 방법을 보여줍니다. 따라서 이 모델은 다운 샘플링 과정에서 손실된 세부 정보를 제공하기 위해 고해상도 이미지가 어떤 모습인지에 대한 지식을 활용할 수 있습니다. 새로운 고해상도 이미지는 완벽하게 정확하지 않을 수도 있고 현실과 완벽히 일치하지 않을 수도 있습니다. 하지만 적어도 시각적으로는 그럴듯해 보입니다.
이것은 실제로 지난 몇 달 동안에 나온 이 주제에 관한 논문을 본 적이 있을 정도로 인기 있는 분야입니다. introspective adversarial networks (IAN)는 또한 대화형 사진 편집을 제공할 수 있는 이러한 기능을 제공하며 대부분 얼굴 편집의 맥락에서 그 결과를 입증했습니다. 인간이 사진 편집을 시작할 수 있고, 사진 디테일을 만드는 데 미세하지 않은 '마우스 제어 동작'을 하고 있음에도 불구하고 생성 모델은 사진을 사실적으로 보이게 하기 위해 사진을 자동으로 업데이트한다는 동일한 아이디어가 여기에도 적용됩니다.
다른 케이스는 image to image 라는 논문입니다. 입력이 가능한 여러 출력에 매핑될 수 있는 이러한 다중 모드 출력 분포를 구현하도록 conditional GAN을 훈련할 수 있는지를 보여줍니다. 한 가지 예로 스케치를 가져와서 사진으로 만드는 것입니다. 이 경우에는 edge 추출기를 사용하여 사진을 스케치로 변환할 수 있고 스케치에서 이미지로의 매핑을 위한 매우 큰 훈련 세트를 제공하기 때문에 모델을 훈련시키는 것이 매우 쉽습니다. 이 경우 생성 모델은 반대의 경우도 배웁니다. 또한 항공 사진을 지도로 변환할 수 있고 각 픽셀에 어떤 물체 범주가 나타나야 하는지에 대한 장면들을 묘사하고 사실적인 이미지로 바꿀 수 있습니다.
우리가 다양한 수학적 능력으로부터 다양한 생성 모델을 연구하고자 하는 몇 가지 이유들입니다. 우리가 이런 종류의 모델을 갖게 되면 수행할 수 있는 다양한 응용 프로그램들을 개발할 수 있습니다. 다음으로 우리는 생성 모델이 정확히 어떻게 작동하는지, 특히 GAN이 다른 모델과 비해서 어떻게 동작하는지 궁금할 수 있습니다.
모든 모델이 maximum likelihood를 수행한다고 설명하면 여러 모델을 비교하는 것이 가장 쉽습니다. 생성 모델링에는 maximum likelihood 외에도 다른 접근 방식이 있지만, 여러 모델을 정확하게 비교하기 위한 목적으로 저는 현재로서는 maximum likelihood을 실현하는 것으로 가정하겠습니다. maximum likelihood라는 기본 아이디어는 내가 x의 P 모델로 나타내는 density function을 모델에서 쓰는 것 입니다. X는 입력을 설명하는 벡터이고 X의 P 모델은 매개변수 데이터에 의해 제어되는 분포입니다. 데이터가 어디에 집중되고 어디에 더 얇게 퍼지는지를 정확하게 설명해줍니다. maximum likelihood는 density function이 모든 훈련 데이터 점에 할당하는 로그 확률을 측정하고 매개변수 데이터를 조정하여 확률을 높이는 데 있습니다.
다른 모델들이 만들어내는 방식에 따라 서로 다른 이유입니다. 따라서 maximum likelihood을 구현하는 것으로 설명할 수 있는 모든 다양한 모델 중 에서 a family tree(가계도)에 그리면 됩니다. a family tree(가계도)에서 먼저 이 세 개의 포크(Forks)가 있는 모델이 명시적 함수로 density가 있는 데이터를 나타내는지 여부를 묻습니다. 이전 슬라이드에서 봤던 거와 같이 명시적 density function과 동일합니다. 우리는 실제로 함수 P 모델을 작성하고 log P 모델을 평가하여 훈련 데이터에서 증가 했습니다. natural images의 분포나 음성 파형의 분포와 같은 매우 복잡한 분포를 모델링하고자 할 때 분포를 효율적으로 발견할 수 있는 매개변수 함수를 설계하는 것은 어려울 수 있습니다. 이것은 우리가 연구한 많은 분포들이 실제로 다루기 쉽지 않다는 것을 의미합니다. 그러나 신중하게 설계하면 몇 가지 다른 density functions를 설계하는 것은 불가능 해보이지만 실제로는 쉬울 수 있습니다. pixel RNN, pixel CNN 같은 belief 네트워크 와 다루기 쉬운 density를 가진 다른 주요 분포의 모델은 비선형 ICA 로 만들었습니다. 이 모델들은 gaussian 분포와 같은 간단한 분포을 사용하고 다음 샘플에서 비선형 변환을 사용해서 우리가 관심있는 공간으로 샘플을 왜곡 합니다. 만약 우리가 그 변환의 Jacobian의 행렬식을 측정할 수 있다면, 우리는 왜곡에서 오는 새로운 공간의 density를 결정할 수 있습니다. 명시적 density를 사용하는 모델 집단 내에서 다른 접근법은 실제로 다루기 쉬운 density function을 가질 수 없는 접근법입니다. 이 집단에는 두 가지 기본 접근법이 있습니다. 하나는 log likelihood에 하한을 두고 그 하한을 최대화하여 density 함수와 근사치를 구하는 모델입니다. 또 다른 접근법은 마르코프 체인을 사용하여 density function를 추정하거나 두 집단의 기울기가 모두 근사치에서 몇가지 단점이 발생합니다. 마지막으로, 우리는 완전히 포기하고 명시적 density function를 가질 수 있습니다. 이것은 확률 분포를 암시적으로 나타낼 수 있는 가장 오른쪽 가지 중 하나로 density function를 몰라도 확률 분포에서 표본을 추출할 수 있는 절차를 설계하는 것입니다. 마르코프 체인을 사용해서 단순하게 그리면, 주요 예가 GAN 또는 심층네트워크 모델입니다. 마지막으로 직접 표본을 그리려면 GAN나 deep moment matching networks와 같은 모델이 둘 다 표본을 그릴 수 있는 모델의 예입니다. 직접이지만 반드시 밀도 함수를 나타내지는 않습니다. 이제 이들에 대해 좀 더 자세히 살펴보고, 각각의 장단점이 무엇인지 설명하겠습니다.
fully visible belief networks는 수학적으로 가장 간단하며, 확률의 체인 규칙을 사용하여 벡터의 각 구성원에 대한 확률 분포를 곱으로 분해합니다. X1에 대한 분포에 대한 확률 분포를 기록한 다음 X1에 대한 분포, 그리고 X1과 x2에 대한 X3에 대한 분포를 곱하여 벡터의 주어진 벡터의 분포를 구합니다. 1996년 Brendan Fraser의 논문으로 거슬러 올라가 보겠습니다. 그 동안 이 모델 집단에서 현재 가장 인기 있는 것은 pixel CNN 입니다. 이를 이용해서 코끼리의 샘플을 들어보았습니다. 이 접근 방식의 주요한 단점은 벡터 X에서 다른 X의 샘플 생성 속도가 매우 느리다는 것입니다. 모델을 실행하는 시간이 다르더라도 다른 X 샘플링 작업은 이전의 모든 X 값에 의존합니다. 따라서 사용 가능한 대역폭에 관계없이 하나씩 스케줄을 지정할 수 밖에 없습니다. 다른 단점은 생성 프로세스에서 latent code에 의해 안내되지 않는다는 것입니다. 우리가 연구하는 많은 다른 모델들은 우리가 표본으로 삼을 수 있는 latent code를 가지고 있습니다.
웨이브넷(wavenet)이라는 fully visible belief의 가장 최근의 한 예이며 최적화 과정이 매우 간단하기 때문에 이러한 fully visible belief networks의 장점 중 일부와 단점 모두를 먼저 보여줍니다. cost function에 대한 근사치 없이 최소화하는 것입니다. 매우 효과적인 샘플을 생성하지만 샘플 생성 속도가 매우 느리다는 단점이 있습니다. 1초 분량의 오디오를 생성하는 데 약 2분이 소요되며, 이는 모델을 실행할 수 있는 방식에 큰 개선이 없다는 것을 의미합니다
웨이브넷(wavenet)이라는 fully visible belief의 가장 최근의 한 예이며 최적화 과정이 매우 간단하기 때문에 이러한 fully visible belief networks의 장점 중 일부와 단점 모두를 먼저 보여줍니다. cost function에 대한 근사치 없이 최소화하는 것입니다. 매우 효과적인 샘플을 생성하지만 샘플 생성 속도가 매우 느리다는 단점이 있습니다. 1초 분량의 오디오를 생성하는 데 약 2분이 소요되며, 이는 모델을 실행할 수 있는 방식에 큰 개선이 없다는 것을 의미합니다
또 다른 주요 모델집단은 density functions가 난해하지만 density functions에 대해 다루기 쉬운 근사치를 사용하는 모델입니다. 현재 이 집단에서 가장 인기 있는 것은 변주형 autoencoder입니다. 기본 아이디어는 랜덤 변수 z를 한계화해야 하므로 density가 난해한 X의 density function log P를 기록하는 것입니다. Z는 입력 이미지를 설명하는 숨겨진 코드를 제공하는 잠재적인 변수의 벡터이며, 이러한 변수를 복구하기 위한 과정은 x에 대한 분포를 다루기 어렵기 때문입니다.
we're forced to use instead of a variational approximation this variational approximation introduces a distribution Q over the latent variable Z and to the extent that this distribution Q is closer to the true posterior over the latest variables were able to make it bound that becomes tighter and tighter and does a better job of lower bounding the true density. 안타깝게도 이 모델은 Q 분포가 완벽할 경우에만 일관성이 있습니다. 그렇지 않을 경우 하한과 실제 density 사이에 차이가 있습니다. Optimizer가 완벽하고 무한한 훈련 데이터가 있는 경우라도요. 실제로 변동 자동 인코더variational autoencoder가 높은 likelihood을 획득하는 데 매우 우수하지만 품질이 낮은 샘플을 생성하는 경향이 있으며 특히 샘플이 상대적으로 흐릿한 경우가 종종 있는 경우도 있습니다.
또 다른 주요 모델집단은 Bolton machine입니다. 이 경우 Bolton machine는 energy function에 의해 정의되며 특정 상태의 확률은 실제 확률 분포 상태로 변환하기 위해 재정규화를 하고 에너지 값 e에 비례합니다. 우리는 Monte Carlo 방법을 사용해서 근사값에 다다를수있지만 특히 Markov chain Monte Carlo 방법을 혼합하지 못하는 등의 문제로 어려움을 겪는다. 또한 고차원 공간에서는 성능이 매우 떨어집니다. Markov chain 은 매우 큰 이미지에 대해 분해되기 때문에 imagenet 이미지 모델링과 같은 작업에 적용되는 일부 machines는 실제로 적용할 수 없습니다. 하지만 mnist와 같은 작은 데이터 집합에서는 성능이 매우 우수했습니다.
가계도의 다른 집단들에 대한 이러한 다양한 관찰은 우리를 GAN으로 이끌었고 제가 이 모델을 생각했을 때 염두에 두었던 설계 요구 사항을 설명해줍니다. 먼저, 나중에 생성되는 모든 것을 설명하는 잠재 코드를 사용합니다. 이 코드는 다양한 다른 코드 및 Boltzmann machines와 같은 다른 모델과 공통적으로 사용됩니다. 하지만 그들이 fully visible belief Networks를 가지고 있다는 것은 장점입니다. 일반적인 GAN을 정의하는 게임의 균형점을 찾을 수 있다면 실제 분포를 실제로 복구했음을 보장할 수 있습니다. 모듈로 샘플 복잡성 문제를 해결하여 무한한 훈련 데이터가 있는 경우 올바른 분포를 복구할 수 있습니다. GAN을 훈련하거나 샘플링 하는 데 필요한 Markov chain는 없습니다. 저는 Markov chain이 제한된 Boltzmann machines를 억제하는 방식에 근거하여 중요한 요구 사항이라고 생각했습니다. 오늘 우리는 Markov change을 사용하는 몇몇 모델들이 더 성공적으로 변화하는 것을 보기 시작했으며, 저는 그들에 대해 강연의 뒷부분에서 설명하겠습니다. 그게 제가 디자인을 하게 된 주된 동기 중 하나였습니다. 이러한 주요 장점은 우리가 지난 몇 달 동안 픽셀 CNN과 같은 다른 모델들이 그들과 경쟁하는 것을 보기 시작했고 지금은 어느 것이 최선인지 말하기 어렵다는 것입니다. 서로 다른 생성 모델 집단과 서로 간의 관계 및 GAN 모델이 이 생성 모델 집단에서 어떻게 위치하는지 설명해서 표본 집합이 얼마나 괜찮은지를 정확하게 수량화할 수 있는 좋은 방법은 없기 때문입니다.
'Pseudo Lab > 3기 반 고흐 전시전' 카테고리의 다른 글
[논문 리뷰] Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks (0) | 2021.10.25 |
---|---|
[5주차] NIPS 2016 Tutorial: Generative Adversarial Networks: Ian Goodfellow part 2 (0) | 2021.09.12 |
[3주차] TensorFlow Tutorial(Neural Style Transfer) (0) | 2021.08.29 |
[2주차] Image Style Transfer Using Convolutional Neural Networks 리뷰 (0) | 2021.08.21 |
[1주차] TensorFlow Tutorial (0) | 2021.08.18 |