Y Tech Blog search

2019 ICML Papers(ICML 2019 논문 설명)

|

이 글에서는 2019년 ICML(International Conference on Machine Learning)에서 어떤 논문들이 accept되어 발표되었는지를 알아볼 것이다. 3424개의 논문이 접수되어 774개의 논문만이 구두 및 포스터 발표로 진행되었다.

논문 리스트는 목차와 같다. 774개를 다 살펴볼 수는 없으므로 몇 개만 추려서 최근 동향을 살펴보도록 하자.


Training Neural Networks with Local Error Signals

      개요       내용
저자 Francesco Locatello et al. Google Research
논문 링크 https://arxiv.org/abs/1811.12359
블로그 https://ai.googleblog.com/2019/04/evaluating-unsupervised-learning-of.html
제출일 Submitted on 29 Nov 2018 (v1), last revised 18 Jun 2019 (this version, v4)

이 논문은 표현(representation)에 대한 것인데, 논문에 쓰인 표현들이 참 어렵다.

초록을 대략 번역하자면,

풀린 표현(disentangled representation)의 무감독 학습(unsupervised learning)의 핵심 아이디어는 ‘실제 세계의 데이터는 무감독 학습 알고리즘에 의해 복구될 수 있는 몇 가지 설명요인에 의해 생성된다’는 것이다.

이 논문에서, 풀린 표현의 무감독 학습은 모델과 데이터 모두에 대해 귀납적 편향(inductive biases) 없이는 본질적으로 불가능하다는 것을 이론적으로 보일 것이다. 또한 6개의 최신 무감독 풀림 학습(unsupervised disentangled learning) 방법과 풀림 측정방식(disentangled measures)을 구현하여 이를 여러 데이터셋에 대해 12000개 이상의 모델을 학습시킬 것이다.

이로써

  • 여러 방법들이 ‘대응되는 loss에 의한’ 성질들을 강제함에도 불구하고 감독 없이는 잘 풀린(well-disentangled) 모델은 식별될 수 없다는 사실과(역자 주: 모델이 식별될 수 없다는 것은 이를테면 두 가지 모델이 생성한 각각의 결과가 있을 때, 그 결과만 보고 원래 모델이 무엇이었을지를 알 수 없다는 뜻이다),
  • ‘풀린 정도가 증가한(increased disentanglement)’ 것도 downstream task의 학습의 샘플 복잡도의 감소로 이어지지는 않는다는 것

을 알아내었다.

이같은 결과는 앞으로 풀린 학습에 대한 연구는

  • 명백히 귀납적 편향과 감독에 의해야 하며,
  • 학습된 표현의 풀림을 강제하는 것의 구체적인 이점을 조사하며,
  • 여러 데이터셋을 다룰 수 있는 재현 가능한 실험 설정을 고려해보아야 한다

는 것을 말해준다.

실제 논문 서론에서 주장하는 contribution은,

  • 풀린 표현의 무감독 학습은 ‘학습방법과 데이터셋 모두에 대한 귀납적 편향’ 없이는 본질적으로 불가능함을 이론적으로 보인 것
  • 현재의 여러 무감독 풀림 학습 방법들을 조사 및 구현하여 이를 여러 데이터셋과 모델을 학습시킨 것
  • 풀린 표현을 학습하고 평가하는 disentanglement_lib라는 새로운 라이브러리를 공개한 것
  • 상당한 계산량을 필요로 하는 1만 개 이상의 사전 학습된(pre-trained) 모델을 공개한 것
  • 무감독 풀림 학습에 대한 여러 생각들을 검증해보았다:
    • 고려된 모든 방법들이 샘플링된 posterior들의 차원(dimensions)의 독립성을 보장한다고 해도, 표현의 차원을 상관관계가 있다.
    • random seed와 hyperparameter이라는 무감독 조건 하에서 고려된 모델들이 풀린 표현을 더 잘 학습한다는 증거가 없다.
    • (데이터셋을 통한 훌륭한(학습이 잘 되는) hyperparameter들을 주는 것을 허용한다 할지라도) ‘ground-truth 레이블에 접근할 수 없는’ 잘 학습된 모델은 식별될 수 없다.
    • 고려된 모델과 데이터셋에 대해, 학습의 샘플 복잡도의 감소와 같은 downstream task에 풀림이 유용하지 않다.
  • 실험 결과에 의해, 향후 연구에 대한 세 가지 중요한 부분을 제안하였다: 이는 초록 부분과 같다.

Rates of Convergence for Sparse Variational Gaussian Process Regression

      개요       내용
저자 David R. Burt, et al. University of Cambridge and PROWLER. io
논문 링크 https://arxiv.org/abs/1903.03571
제출일 Submitted on 8 Mar 2019 (v1), last revised 3 Jul 2019 (this version, v2)

초록

Gaussian process posteriors에 대한 훌륭한 변분 근사법(variational approximations)은 데이터셋 크기 $N$에 대해 $O(N^3)$의 시간이 걸리는 것을 막기 위해 개발되었다. 이 방법은 시간복잡도를 $O(N^3)$에서 $O(NM^2), M \ll N $의 시간으로 줄여 주었다.
$M$은 이 preocess를 요약하는 유도변수(inducing variables)인데, 수행시간은 $N$에 선형 비례함에도 불구하고 실제로는 근사의 품질을 결정하는 $M$이 얼마나 큰지에 실질적인 영향을 더 받는다.
이 논문에서, $N$에 비해 훨씬 느리게 증가하는 어떤 $M$에 대해 높은 확률로 KL divergence를 임의로 작게 만들 수 있음을 보인다. 특히 Square Exponential kernel을 쓰는 D차원의 정규분포 입력에 대한 회귀의 경우 $M = O(log^D N)$이면 충분하다.
이 논문의 결과는 데이터셋이 커질수록 Gaussian process posteriors는 적은 비용으로 근사될 수 있으며, 연속학습 시나리오(continual learning scenarios)에서 $M$을 증가시키는 구체적인 방법을 보이는 것이다.

서론

Gaussian processes(GPs)는 베이지안 모델에서 convenient priors인 함수에 대한 분포이다. 이는 좋은 불확실성 측정을 해내기 때문에 특히 회귀 모델에서 자주 사용되며, 사후확률(posterior)과 주변확률(marginal likelihood)에 대한 닫힌 표현(closed-form expressions)를 가진다. 이것의 가장 큰 단점은 학습 데이터 수 $N$에 대해 $O(N^3)$의 계산량과 $O(N^2)$의 메모리를 쓴다는 것이다. Low-rank approximations(Quiñonero Candela & Rasmussen, 2005)는 전체 사후확률을 요약하는 $M$개의 유도변수를 사용하여 계산량을 $O(NM^2 + M^3)$, 메모리 사용량을 $O(NM + M^2)$로 줄였다.

유도변수를 추가함으로써 계산량이 줄어드는 것은 알려져 있지만, 얼마나($M$) 필요한지에 대한 정보는 별로 없다. 데이터셋이 커질수록 우리는 품질저하 없이 근사상수의 수용력이 얼마나 될지 기대할 수 없다. 단지 $N$이 커질수록 $M$이 커져야 한다는 것만 알 뿔이다.

근사 GPs는 종종 근사사후확률에서 전체사후확률과정으로의 KL divergence를 최소화하는 변분추론(variational inference)을 써서 학습된다(Titsias, 2009, Matthews et al, 2016). 이 논문에서는 근사사후확률의 품질을 위한 측정방법으로 KL divergence를 사용한다.
직관적인 가정 하에 유도변수의 수는 선형보다 느리게 증가하는 정도면 된다(예: 로그함수). 이는 많은 편향(bias)의 필요 없이 정확도와 불확실성에 대한 정확도를 보유한 근사사후확률만으로 큰 데이터셋에 대해 아주 희박한 근사만 있어도 된다는 것을 보여준다.

이 논문에서 나오는 증명의 핵심 아이디어는 데이터의 공분산행렬에 대한 Nyström 근사의 품질에 의존하는 KL divergence의 상한(상계)를 사용하는 것이다. 이 error는 무한차원의 필수연산자라는 개념으로 이해될 수 있다. Stationery kernel에 대해 메인 결과는 사전확률(priors)는 샘플함수보다 더 매끈하며(smoother) 더 집중되어 있는(more concentrated) 데이터셋은 더 희박한(sparse) 근사만으로도 충분하다는 것이다.

메인 결과

학습 입력은 고정된 독립항등분포로부터 나온 것이라는 가정 하에, 적어도 $1-\delta$의 확률로

[KL(Q \Vert \hat{P}) \le \mathcal{O} \Bigg( \frac{g(M, N)}{\sigma^2_n \delta}\Big(1 + \frac{c\Vert y \Vert^2_2}{\sigma^2_n}\Big) + N \epsilon \Bigg)]

$\hat{P}$은 posterior Gaussian process, $Q$는 변분근사, $y$는 학습 목표(training targets)이다.
함수 $g(M, N)$은 kernel과 입력의 분포에 의존하며, $N$에 따라 선형적으로 증가하며 $M$에 따라 빠르게 감소한다.
$\epsilon$은 초기품질을 결정짓는 인자로서 약간의 계산을 추가하여 임의로 작게 만들 수 있다($N$의 역승).

참고: Gaussian process regression

학습 데이터

[\mathcal{D}= { x_i, y_i }^N_{i=1}, x_i \in \chi, y_i \in \mathbb{R}]

가 관측되었을 때 Gaussian process regression을 고려해본다. 이 때 목표는 학습데이터의 제한된 수로 인해 $f(\cdot)$에 대한 불확실성을 갖고 있을 때 새로운 입력 $x^\ast$에 대해 출력값 $y^\ast$를 예측하는 것이다. $f$에 대한 사전확률을 두는 베이지안 접근법과 약간의 noise를 가진 곽츤 데이터에 대한 $f$의 우도를 고려할 때, 모델은

[f \sim \mathcal{GP}(\nu(\cdot), k(\cdot, \cdot)), \ y_i = f(x_i) + \epsilon_i, \ \epsilon_i \sim \mathcal{N}(0, \sigma^2_n)]

$\nu : \chi \rightarrow \mathbb{R}$은 평균함수이고 $k : \chi \times \chi \rightarrow \mathbb{R}$은 공분산함수이다. 로그주변우도(log marginal likelihood)는 근사의 품질과 사후확률근사가 연관되어 있다는 점에서 흥미로우며, 이는

[\mathcal{L} = -\frac{1}{2} y^T K_n^{-1} y - \frac{1}{2} log \vert K_n \vert - \frac{N}{2} log(2\pi), \quad K_n = K_{ff} + \sigma^2n I, \ [K{ff}]_{i, j} = k(x_i, x_j)]

으로 표현된다.


Training Neural Networks with Local Error Signals

      개요       내용
저자 Arild Nøkland, Lars Hiller Eidnes
논문 링크 https://arxiv.org/abs/1901.06656
소스코드 https://github.com/anokland/local-loss
제출일 Submitted on 20 Jan 2019 (v1), last revised 7 May 2019 (this version, v2)

최근 분류(classification)를 위한 신경망의 감독학습(supervised learning)은 보통 global loss function을 사용하여 이루어졌다. 즉, 모델을 학습시키는 데 있어서 하나의 loss function만을 설정해 두고, prediction 단계에서 계산한 loss로 backward pass 동안 gradient를 계산하며 weights를 업데이트하는 역전파(back-propagation) 과정을 거쳐왔다.

그러나 이 논문에서는 하나의 loss function을 모델의 모든 레이어에 걸쳐 global하게 사용하는 대신 각 레이어별로 loss function을 설정하여 실험하였고, 이 방법은 생물학적으로 그럴듯하고(biologically plausible) 그러면서도 여전히 state-of-the-art 결과를 얻을 수 있음을 보여주었다.

Global loss function의 사용은 다음과 같은 문제를 갖는다.

  1. Backward locking problem: hidden layer의 weights들은 forward & backward pass가 끝날 때까지 업데이트되지 않는다. 따라서 weights update의 병렬화가 어렵다.
  2. Preventing reuse of the memory: hidden layer의 activation들을 backward pass가 끝날 때까지 메모리에 상주시켜야 하기 때문에 메모리 사용량이 늘어난다.
  3. Biologically implausible: global loss의 역전파는 신경망이라는 관점에서 생물학적으로 별로 타당하지 않다.

이 논문에서, backward locking problem은 지역적으로(각 레이어별로) 측정된 error에 의해 각각 학습시킴으로써 해결될 수 있음을 보인다. Local loss function은 global error에 의존하지 않고, gradient는 해당 레이어를 제외한 그 이전 레이어에 전파되지 않으며, hidden layer는 forward pass 중간에도 업데이트될 수 있다.
추론(inference) 단계에서 네트워크는 global 역전파를 쓰는 것과 같이 움직인다. 그러나 hidden layer가 업데이트될 때, gradient와 activation은 더 이상 메모리에 남아 있을 필요가 없다.
따라서 모든 레이어를 동시에 학습시킴에도, 지역적으로 측정된 error는 각 레이어를 학습시키며 이것을 메모리 사용량과 학습 시간을 줄여줄 수 있게 된다.

관련 연구는 Local Loss Functions, Similarity Measures in Neuroscience/Machine Learning 등이 있다(논문 참조).

표준 convolutional & fully connected 네트워크 구조를 사용하여, global loss 대신 각 레이어별로 (이전 레이어로 전파되지 않는) local learning signal을 설정했다. 이 signal은 2개의 single-layer sub-networks로 분리되어, 각각은 서로 다른 loss function을 갖는다. 하나는 표준 cross-entropy loss이고, 다른 하나는 similarity matching loss이다.

activation and gradient flow

논문에서는 여러 loss를 정의하는데,

  • sim loss: mini-batch의 example들 간 pair-wise 유사도를 담고 있는 두 행렬간 L2 거리를 측정하는 similarity matching loss이다.
  • pred loss: target과 local classifier의 prediction 간 cosss-entropy loss를 측정한다.
  • sim-bpf loss & pred-bpf loss: Backprop free version을 만들기 위해, global target이 각 hidden layer로 전파되는 것을 막는다. sim loss에서는 one-hot encoded target vector 대신 random transformation target vector를, pred loss에서는 binarized random transformation target vector를 사용한다.
  • predsim & predsim-bpf loss: sim과 pred를 조합해서 전체 loss를 만들었다.

[L_{predsim} = (1-\beta)L_{pred} + \beta L_{sim}]

[L_{predsim-bpf} = (1-\beta)L_{pred-bpf} + \beta L_{sim-bpf}]

실험은 MNIST, Fashion-MNIST, Kuzushiji-MNIST, CIFAR-10, CIFAR-100, STL_10, SVHN에 대해서 각각 진행하였다.

결과를 요약하자면 단지 local pred loss만으로도 global 역전파를 사용한 것과 거의 같은 성능을 보였고, predsim이나 predsim-bpf를 사용한 경우 state-of-the-art 결과를 얻을 수 있었다고 한다.

따라서 이 논문의 contribution은 loss function을 굳이 global하게 만들지 말고 각 레이어별로 local loss function을 만들어서 backward locking problem과 parallelization을 해결하는 것이 학습속도, 생물학적 타당성, 분류 성능을 다 잡을 수 있다는 가능성을 보여준 것이 되겠다.



Comment  Read more

MovieQA(Movie Question Answering, MovieQA 논문 설명)

|

이 글에서는 MovieQA: Understanding Stories in Movies through Question-Answering에 대해 알아보고자 한다.

VQA task는 이미지(Visual, 영상으로도 확장 가능)와 그 이미지에 대한 질문(Question)이 주어졌을 때, 해당 질문에 맞는 올바른 답변(Answer)을 만들어내는 task이다.

MovieQA는 Vision QA의 확장판과 비슷한 것이라고 보면 된다. 그러나 크게 다른 점은 사진 한 장과 QA셋이 아닌 Movie Clip과 QA셋으로 학습 및 테스트를 진행한다는 것이다. 사진이 영상으로 바뀐 만큼 당연히 난이도 역시 증가하였다.

MovieQA 홈페이지는 http://movieqa.cs.toronto.edu/home/ 이다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


MovieQA: Understanding Stories in Movies through Question-Answering

논문 링크: MovieQA: Understanding Stories in Movies through Question-Answering

초록(Abstract)

우리는 video와 text 모두를 통해 자동적 스토리 이해를 평하가는 MovieQA 데이터셋을 소개할 것이다. 이 데이터셋은 408개의 영화(movie)에 대한 아주 다양한 의미의 14,944개의 질문으로 이루어져 있다. 이 질문들은 ‘누가’ ‘누구에게’ ‘무엇을’ ‘어떻게’ ‘왜’ 했는지까지의 범위를 포함한다. 각 질문에는 5개의 답이 있는데 1개만 맞는 답이며 4개는 사람이 직접 만든 가짜 답이다. 우리의 데이터셋은 영상클립, 줄거리, 제목, 자막, DVS 등 많은 소스들을 포함한다는 점에서 유일하다. 우리는 이 데이터셋을 다양한 통계적 방법으로 분석했으며 존재하는 QA 기술들을 확장하여 열린 의미의 QA로 하는 것은 어렵다는 것을 보일 것이다. 우리는 이 데이터셋을 평가방법과 함께 일반에 공개하여 도전을 장려할 것이다.

ovieQA Dataset

서론(Introduction)

이미지 태깅, 물체인식 및 분할, 액션 인식, 이미지/비디오 캡셔닝 등 많은 시각적 task에서 레이블링된 많은 양의 데이터가 사용 가능해진 것과 함께 딥러닝에서 빠른 발전이 있었다. 우리는 시각장애가 있는 사람들을 위한 보조적인 해결책이나, 일반적인 framework에서 이런 모든 task들을 추론에 의해 실제 세계를 전체적으로 인식하는 인지로봇과 같은 application에 한 걸음 더 다가갔다. 그러나 정말 ‘지능적인’ 기계는 동기, 의도, 감정, 의사소통 등 높은 수준의 것을 포함한다. 이러한 주제들은 문학에서나 겨우 탐험이 시작되었다.

(눈에 보이는) 장면을 이해하는 것을 보여주는 훌륭한 방법은 그것에 대한 질문-답변을 하는 것이다. 이러한 생각은 각 이미지에 대해 여러 질문들과 다지선다형 답변을 포함한 질문-답변 데이터셋을 만드는 것으로 이어졌다.
이러한 데이터셋은 RGB-D 이미지 또는 Microsoft COCO와 같은 정지 이미지의 거대한 모음집에 기반한다. 전형적인 질문으로는 ‘무엇이(what)’ 거기에 있고 ‘어디에(where)’ 그것이 있는지와 같은 것, 물체가 어떤 성질을 갖는지, 얼마나 많은 ‘특정 종류의 물건’이 있는지 등이 있다.
이러한 질문들은 전체적인 자연에 대한 우리의 시각적 알고리즘을 확인시켜주기는 하지만, 정지 이미지에 대해 물어볼 수 있는 태생적인 한계가 존재한다. 행동과 그 의도에 대한 높은 수준의 의미 이해는 오직 순간적, 또는 일생에 걸친 시각적 관찰에 의한 추론에 의해서만 가능하다.

MovieQA Dataset

영화(Movies)는 사람들의 삶과 이야기, 성격에 대한 높은 수준의 이해, 행동과 그 이면에 숨겨진 동기와 같은 것들을 이해할 수 있도록 하는 짤막한 정보를 우리에게 제공한다. 우리의 목표는 ‘복잡한 영상과 그에 맞는 텍스트(자막) 모두를 포함한 것을 이해하는 기계’를 측정하는 질문-답변 데이터셋을 만드는 것이다. 우리는 이 데이터셋이 다음 수준의 자동적인 ‘정말로’ 이해를 하는 기계를 만드는 것을 촉진하는 것이 되었으면 한다.

이 논문은 영화에 대한 거대한 질문-답변 데이터셋, MovieQA를 소개한다. 이는 408개의 영화와 14,944개의 5지선다형 질문을 포함한다. 이 중 140개의 영화(6,462개의 질답)에는 영화의 질문-답변 부분에 해당하는 time stamp가 붙어 있다.
이 질문들은 ‘누가’ ‘무엇을’ ‘누구에게’ 같이 시각적으로만 풀 수 있는 것과 ‘왜’ ‘어떻게’ 무슨 일이 일어났냐는 시각정보와 대사(텍스트)를 모두 사용해야만 답을 추론할 수 있는 질문들을 포함한다.
우리의 데이터셋은 영상클립, 제목, 자막, 줄거리, DVS를 포함하는 다양한 출처의 정보를 포함하는 유일한 데이터셋이다. 우리는 이를 통계적으로 분석할 것이며 또한 존재하는 질답 기술을 우리의 데이터에 적용하고 이러한 open-ended 질답이 어려운 것을 보일 것이다.
우리는 leaderboard를 포함한 온라인 벤치마크 사이트를 만들어 두었다.


관련 연구(Related Works)

  • Video understanding via language: 영상 범위에서 시각 및 언어정보를 통합시킨 연구는 더 적은 연구만이 존재한다. LSTM을 사용한 영상클립에 캡션을 다는 것 등이 있었다.
  • Question-answering: 자연언어처리에서 인기 있는 task이다. Memory network나 deep LSTM, Bayesian approach 등이 사용되고 있다.
  • QA Datasets: NYUv2 RGB-D와 같은 데이터셋이나, 100만 단위의 MS-COCO 데이터셋 등이 있다.

MovieQA 데이터셋(MovieQA Dataset)

앞서 언급했듯이 408개의 영화와, 위키피디아에서 가져온 줄거리(시놉시스)를 포함한다. 또한 영상, 제목, DVS, 대사 스크립트를 포함한다.

이 부분의 주된 내용은 영화, 질문, 답변에는 어떤 종류가 있고, 어느 비율만큼 어떤 것이 있는지에 대한 통계 자료들이다. 자세한 내용은 궁금하면 논문을 직접 읽어보는 것이 빠르다.

MovieQA Dataset Statistics
MovieQA Dataset Statistics
MovieQA Dataset Statistics
MovieQA Dataset Statistics

다지선다형 질문-답변(Multi-choice Question-Answering)

여기서는 질답을 위한 여러 지능적인 기준선(intelligent baselines)를 조사하려 한다.

  • $S$를 이야기(줄거리, 제목, 비디오 샷을 포함한 어떤 정보든 포함)라 한다.
  • $q^S$는 하나의 질문이다.
  • ${a^S_j}^M_{j=1}$은 질문 $q^S$에 대한 여러 답변이다. 여기서 $M=5$이다(5지선다형이므로).
  • 그러면 다지선다형 질답의 일반적인 문제느 3방향 득점 점수 $f(S, q^S, a^S)$로 나타낼 수 있다.
    • 이 함수는 이야기와 질문이 주어졌을 때 답변의 “Quality”를 평가한다.
  • 우리의 목표는 이제 $f$를 최대화하는 질문 $q^S$에 대한 답변 $a^S$를 선택하는 것이다:

[j^\ast = \text{argmax}_{j=1 … M} \ f(S, q^S, a^S_j)]

아래는 모델의 한 예시이다.

MovieQA Dataset Statistics

모델은 ‘The Hasty Student’, ‘Searching Student’, ‘Memory Network’, ‘Video baselines’ 등을 포함한다.

결론(Conclusion)

이 논문에서는 영상과 텍스트 모두를 아우르는 자동적 이야기 이해 평가를 목표로 하는 MovieQA 데이터셋을 소개하였다. 우리의 데이터셋은 영상클립, 제목, 대사 스크립트, 줄거리, DVS 등 다양한 출처의 정보를 포함한다는 점에서 유일하다. 우리는 여러 지능적인 기준선과 우리의 task의 난이도를 분석하는 원래 존재하던 질답 기술을 연장시키기도 했다. 평가 서버를 포함한 우리의 벤치마크는 온라인에서 확인할 수 있다.


참고문헌(References)

논문 참조!


모델들에 대한 자세한 설명들은 생략하였다. Student 모델같은 경우에는 이름부터 꽤 흥미롭기 때문에 한번쯤 찾아보는 것을 추천한다.


Comment  Read more

VQA(Visual Question Answering, VQA 논문 설명)

|

이 글에서는 VQA: Visual Question Answering에 대해 알아보고자 한다.

VQA task는 이미지(Visual, 영상으로도 확장 가능)와 그 이미지에 대한 질문(Question)이 주어졌을 때, 해당 질문에 맞는 올바른 답변(Answer)을 만들어내는 task이다.

아래는 서울대학교 공대뉴스광장을 인용하였다.

VQA Challenge는 2016년 CVPR을 시작으로 매년 개최되며, 1년마다 발전된 기술을 평가하고 시상하고 있다. 2017년부터는 같은 질문에 비슷한 이미지를 보여주고 다른 답변을 하는 데이터를 VQA 2.0 데이터셋 통해 수집한 후 인공지능의 유효성을 엄밀히 평가한다.
예를 들어 ‘누가 안경을 쓰고 있나?’라는 질문에 비슷한 이미지가 주어지면 ‘남자’ 또는 ‘여자’의 답을 가질 수 있도록 데이터의 분포를 고려하는 것. VQA 2.0 데이터셋은 20만 개의 이미지에 대해 110만 개의 질문과 1100만 이상의 답을 가지며, VQA 1.0보다 1.8배의 데이터를 가지고 있다.

VQA Challenge는 컴퓨터비전패턴인식학회(IEEE Computer Vision and Pattern Recognition, CVPR) 워크샵 중 하나이며, VQA Homepage에서 매년 열린다. 관심 있으면 클릭해 보자.

국내 연구팀의 대표적인 성과로는 2016년 네이버랩스 2위, 2018년 서울대 장병탁교수팀 2위가 있겠다.

VQA Challenge라고 하는 것은 Aishwarya Agrawal, Jiasen Lu, Stanislaw Antol, Margaret Mitchell, C. Lawrence Zitnick, Dhruv Batra, Devi Parikh 등의 연구자가 일종의 Challenge로서 제안한 것이기 때문에, 이를 중심으로 설명한다. 그렇기 때문에 논문이기도 하면서 동시에 새로운 task를 제안하겠다는 느낌이 강하다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


VQA: Visual Question Answering

논문 링크: VQA: Visual Question Answering)

초록(Abstract)

이 논문에서는 VQA task를 제안한다. VQA task는 이미지(Visual, 영상으로도 확장 가능)와 그 이미지에 대한 질문(Question)이 주어졌을 때, 해당 질문에 맞는 올바른 답변(Answer)을 만들어내는 task이다.
VQA를 성공적으로 수행하기 위한 시스템은 이미지 captioning을 하는 시스템보다 더 높은 수준의 이미지 이해도와 복잡한 추론능력을 가져야 한다. 또한 (간단한 수준의 답변만 하는 것은 좋지 않기 때문에 이를) 자동으로 평가하는 것도 가능해야 한다. 우리는 25만 장의 이미지와, 76만 개의 질문, 1000만 개의 답과 그에 대한 정보를 제공한다. 많은 기준과 방법들은 사람의 수행능력과 비교한다. VQA Demo는 CloudCV에서 볼 수 있다.

참고) 2019.04.17 현재 논문에 링크된 CloudCV Demo는 404 error가 뜨는 중이다.


서론(Introduction)

Computer Vision(CV), Natural Language Processing (NLP), Knowledge Representation & Reasoning (KR)를 결합한 이미지 캡셔닝(captioning)은 지난 몇 년간 급격히 발전해 왔다. 그러나 이 task는 별로 “AI-complete”하지 못하다(그다지 인공”지능”스럽지 않다).
그러면 “AI-complete”하지 못하다는 것은 무엇인가? 이 논문에서는 좀 더 자유로운 형식에 열린 형태인 VQA(Visual Question Answering)을 제안하고자 한다. 이러한 답변을 제대로 하기 위해서는 다양한 AI 능력들이 필요하다:

  • 세밀한 인식(“이 피자엔 어떤 종류의 치즈가 있는가?”)
  • 물체 감지(“얼마나 많은 자전거가 있는가?”)
  • 행동인식(“남자는 울고 있는가?”)
  • 지식기반 추론(“이것은 채식주의자를 위한 피자인가?”)
  • 상식 추론(“이 사람은 20/20 시력을 갖고 있는가?”, “이 사람은 회사를 원하는가?” 참고: 20/20은 1.0/1.0과 같음)

또한 VQA 시스템은 자동으로 평가가 가능해야 한다. 이 논문에서는 열린 문제(open-ended, 답변의 가능성이 다양함)와 다지선다형(multiple-choice) task를 둘 다 본다. 다지선다형 문제는 열린 문제와는 다르게 단지 정해진 답변 중 옳은 것을 고르기만 하면 된다.

데이터셋은 COCO 데이터셋에 5만 개를 더 추가했다. 데이터 수는 초록에도 나와 있다. 또한 이미지 캡셔닝이랑 무엇이 다른지에 대한 설명도 나와 있다.


관련 연구(Related Works)

  • VQA Efforts: Visual Question Answering은 이전에도 다뤄진 적이 있긴 한데, 여기서 제안하는 것보다 훨씬 제한된 환경과 제한된 데이터셋 안에서 다룬다. 물체의 종류도 적고, 답변의 단어 등도 제한적이다. 이 VQA task는 그렇지 않다. free-form, open-ended이다.
  • Text-based Q&A: 이 문제는 NLP와 텍스트 처리 분야에서 잘 연구되었다. VQA 기술에 도움이 될 몇 가지 접근법이 있다. 이 경우 질문은 텍스트를 기반으로 이루어진다. VQA는 text와 vision 모두에 의존한다.
  • Describing Visual Content: 이미지 태깅, 이미지 캡셔닝, 비디오 캡셔닝 등이 VQA와 관련이 있다. 그러나 그 캡션은 vision에 특화된 것이 아닌 지나치게 일반적인(많은 이미지에 대해 동일한 캡션을 써도 말이 됨) 경우가 있다.
  • Other Vision+Language Tasks: 이미지 캡셔닝보다 평가가 쉬운 coreference resolution, generating referring expressions 등의 task가 있다.

VQA 데이터셋(VQA Dataset Collection)

사실 이미지 한장이면 충분할 듯 하다.

잘 안 보이니까 일부만 확대하겠다.

  • 약 20만 장의 현실 이미지와 약 5만 장의 추상적인 이미지가 있다.
  • Training / Validation / Test 셋이 나누어져 있다. 그 나누는 비율도 정해져 있다(추상 이미지의 경우 20K/10K/20K). subsplit은 없다.
  • 이미 MS COCO 데이터셋은 이미지당 5개의 한 문장짜리 캡션이 있으므로, 추상 이미지에도 그만큼 붙여서 만들었다.
  • 흥미롭고, 다양하고, 잘 만들어진 질문을 모으는 것은 매우 중요한 문제이다.
    • “저 고양이의 색깔은 무엇인가?”, “지금 몇 개의 의자가 이미지에 있는가?” 같은 질문은 너무 단순하다.
    • 그러나 우리는 “상식”을 필요로 하는 질문을 원한다. 또, 상식”만”으로 대답할 수 있는 질문은 안 된다.
      • 예를 들면 “사진의 저 동물은 어떤 소리를 낼 것 같은가?” 같은 질문이다.
      • “콧수염은 무엇으로 만들어지는가?” 같은 질문은 의미 없다.
    • 그래서 총 76만 개 정도의 질문을 확보하였다.
  • 많은 질문들에 대해서는 yes/no만 해도 충분하다. 그러나 그렇지 않은 것들도 있다.
  • 열린 형태(open-ended) 질문들은 다음 metric에 의해 평가된다.
    • $ \text{accuracy} = min({\text{그 답변을 한 사람의 수} \over 3}, 1) $
  • 다지선다형(객관식) 문제는 18개의 선택지가 있다.
    • 이외에도 다양한 형태의 문제가 존재한다.

VQA 데이터셋 분석(VQA Dataset Analysis)

데이터의 정확한 수, 질문의 종류 및 수, 답변의 종류 및 수, 질답의 길이 등에 대한 분포 등이 수록되어 있다.

  • 질문에는 “What is…”, “Is there…”, “How many…”, “Does the…” 같은 질문들이 있다. 질문의 길이는 4~8단어가 대부분이다.
  • 답변에는 yes/no, 색깔, left/right 등의 답변이 많다. 1 / 2 / 3단어인 경우가 대략 90%, 6%, 2.5% 정도씩 있다.
  • 상식을 필요로 하는 질문은 위에서 설명한 대로 당연이 이미지에서도 정보를 얻어야 답변이 가능하다.

task를 제안하는 것인만큼 데이터에 대한 정보가 매우 자세하다. 아래 그림 같은 정보도 있다. 여러 종류의 질문에 대해 답변이 어떤 단어가 어떤 비율로 있는지 등을 나타낸다.


VQA 기준선과 방법(VQA Baselines and Methods)

Baselines

  • random: 무작위로 답변을 선택한다.
  • prior(“yes”): “yes” 답변이 가장 많기 때문에 항상 yes를 답으로 내놓는다.
  • per Q-type prior: 각 질문 종류별로 답변 중 최빈값을 답으로 내놓는다.
  • nearest neighbor: 가장 유사한 K개의 질문을 뽑아 그 답변들 중 최빈값을 답으로 내놓는다.

Methods

  • Image Channel: 이미지를 위한 embedding을 제공한다.
    • I: VGGNet의 마지막 hidden 레이어가 4096차원의 embedding으로 사용된다.
    • norm I: 위와 비슷하나 $l_2$ 정규화된 활성함수를 사용
  • Question Channel: 질문을 위한 embedding을 제공한다.
    • Bag-of-Words Question(BoW Q): 질문의 최빈 1000개의 단어와 30차원의 BoW를 사용하여 1030차원의 질문 embedding을 만든다.
    • LSTM Q: 1024차원이다.
    • deeper LSTM Q: 2048차원이다.
  • Multi-Layer Perceptron(MLP):
    • BoW Q + I에 대해서는 단지 concatenate한다.
    • LSTM Q + I, deeper LSTM Q + norm I에 대해서는 이미지 embedding은 차원을 맞추기 위해 1024차원으로 변환된 후 LSTM embedding과 element-wise하게 곱해진다.

Results

방법에 따라서는 28.13%/30.53%(각각 open-ended와 multiple-choice)를 나타낸 것부터 58.16%/63.09%를 나타낸 모델(deeper LSTM Q + norm I)까지 결과는 다양하다.
따라서 적어도 60%는 넘어야 의미 있는 VQA 시스템이라고 할 수 있을 것이다.


VQA Challenge and Workshop

CVPR 2016에서부터 1년 간격으로 열린다. 테스트 서버도 준비되어 있다.


결론 및 토의(Conclusion and Discussion)

이 논문에서는 VQA task를 제안하였고, 그에 맞는 데이터를 제공하였다.
우리는 VQA가 자동평가가 가능한 “AI-complete” 문제를 풀기 위한 한계를 끌어올리기에 적합하다고 생각한다. 이를 위한 노력에 드는 시간도 가치가 있다고 여겨진다.


참고문헌(References)

논문 참조!


결론 이후에도 많은 정보가 있으니 참조하면 좋다. 매우 흥미로운 것들이 많다.
대부분은 데이터의 분포에 관한 설명 및 시각화한 그림들이다.


Comment  Read more

DANs(Dual Attention Networks for Multimodal Reasoning and Matching, DANs 논문 설명)

|

이 글에서는 네이버랩스(Naver Corp.)에서 2017년 발표한 논문인 Dual Attention Networks for Multimodal Reasoning and Matching에 대해 알아보고자 한다.
네이버랩스는 인공지능 국제대회 ‘CVPR 2016: VQA Challenge’에서 2위를 차지하였고, 해당 챌린지에서 DAN(Dual Attention Networks)라는 알고리즘을 개발하였다. 이어 이 알고리즘을 조금 더 일반화하여 2017년 발표한 논문이 이 논문이다.

VQA가 무엇인지는 여기를 참조하면 된다.

간단히, DANs은 따로 존재하던 Visual 모델과 Textual 모델을 잘 합쳐 하나의 framework로 만든 모델이라고 할 수 있겠다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


DANs(Dual Attention Networks for Multimodal Reasoning and Matching)

논문 링크: DANs(Dual Attention Networks for Multimodal Reasoning and Matching)

초록(Abstract)

vision과 language 사이의 세밀한 상호작용을 포착하기 위해 우리는 visual 및 textual attention을 잘 조정한 Dual Attention Networks(DANs)를 제안하고자 한다. DANs는 이미지와 텍스트 모두로부터 각각의 중요한 부분에 여러 단계에 걸쳐 집중(attend / attention)하고 중요한 정보를 모아 이미지/텍스트의 특정 부분에만 집중하고자 한다. 이 framework에 기반해서, 우리는 multimodal reasoning(추론)과 matching(매칭)을 위한 두 종류의 DANs를 소개한다. 각각의 모델은 VQA(Visual Question Answering), 이미지-텍스트 매칭에 특화된 것이고 state-of-the-art 성능을 얻을 수 있었다.


서론(Introduction)

Vision과 language는 실제 세계를 이해하기 위한 인간 지능의 중요한 두 부분이다. 이는 AI에도 마찬가지이며, 최근 딥러닝의 발전으로 인해 이 두 분야의 경계조차 허물어지고 있다. VQA, Image Captioning, image-text matching, visual grounding 등등.

최근 기술 발전 중 하나는 attention mechanism인데, 이는 이미지 등 전체 데이터 중에서 중요한 부분에만 ‘집중’한다는 것을 구현한 것으로 많은 신경망의 성능을 향상시키는 데 기여했다.
시각 데이터와 텍스트 데이터 각각에서는 attention이 많은 발전을 가져다 주었지만, 이 두 모델을 결합시키는 것은 연구가 별로 진행되지 못했다.

VQA같은 경우 “(이미지 속) 저 우산의 색깔은 무엇인가?” 와 같은 질문에 대한 답은 ‘우산’과 ‘색깔’에 집중함으로써 얻을 수 있고, 이미지와 텍스트를 매칭하는 task에서는 이미지 속 ‘girl’과 ‘pool’에 집중함으로써 해답을 얻을 수 있다.

이 논문에서 우리는 vision과 language의 fine-grained 상호작용을 위한 visual 모델과 textual 모델 두 가지를 잘 결합한 Dual Attention Networks(DANs)를 소개한다. DANs의 두 가지 변형 버전이 있는데, reasoning-DAN(r-DAN, 추론용 모델)과 matching-DAN(m-DAN, 매칭용 모델)이다.

r-DAN은 이전 attention 결과와 다음 attention을 모은 결합 메모리를 사용하여 시각적 그리고 언어적 attention을 협동 수행한다. 이는 VQA같은 multimodal 추론에 적합하다.
m-DAN은 시각 집중 모델과 언어 집중 모델을 분리하여 각각 다른 메모리에 넣지만 이미지와 문장 사이의 의미를 찾기 위해 학습은 동시에 진행하는 모델이다. 이 접근법은 최종적으로 효율적인 cross-modal 매칭을 용이하게 해 준다.
두 알고리즘 모두 시각적 그리고 언어적(문자적, textual) 집중 mechanism을 하나의 framework 안에 긴밀히 연결한 것이다.

이제 우리가 기여한 바는 다음과 같다:

  • 시각적 그리고 언어적 attention을 위한 통합된 framework를 제안하였다. 이미지 내 중요한 부분과 단어들은 여러 단계에서 합쳐진 곳에 위치한다.
  • 이 framework의 변형 버전 두 가지는 실제로 추론 및 매칭을 위한 모델로 구현되어 VQA와 image-text 매칭에 적용되었다.
  • attention 결과의 상세한 시각화는 우리의 모델이 task에 핵심적인 이미지 및 문장 부분에 잘 집중하고 있음을 보여주는 것을 가능하게 한다.
  • 이 framework는 VQA와 Flickr30K 데이터셋에서 SOTA(state-of-the-art) 결과를 보여주었다.

관련 연구(Related Works)

  • Attention Mechanisms: 간단히 말해 시각적 또는 언어적 입력에서 task를 해결하는 데 중요한 일부분에만 집중하도록 해 문제를 잘 풀 수 있게 하는 방법이다.
  • Visual Question Answering(VQA): 이미지와 그 이미지와 연관된 질문이 주어지면 적절한 답을 찾는 task이다. 자세한 내용은 여기를 참조하라.
  • Image-Text Matching: 시각자료(이미지)와 글자자료(=문장, 언어적 부분) 사이의 의미적 유사도를 찾는 것이 가장 중요하다. 많은 경우 이미지 특징벡터(feature vector)와 문장 특징벡터를 직접 비교할 수 있도록 변형해 비교하는 방법이 자주 쓰인다. 이 비교방법은 양방향 손실함수 또는 CNN으로 결합하는 방법 등이 쓰인다. 그러나 multimodal attention 모델을 개발하려는 시도는 없었다.

Dual Attention Networks(DANs)

Input Representation

Image representation

  • 이미지 특징은 19-layer VGGNet 또는 152-layer ResNet으로 추출했다.
  • 448 $\times$ 448 으로 바꿔 CNN에 집어넣는다.
  • 다른 ‘지역’(region)으로부터 특징벡터를 얻기 위해 VGGNet 및 ResNet의 마지막 pooling layer를 취했다.
  • 이제 이미지는 ${v_1, …, v_N}$으로 표현된다. $N$은 이미지 지역의 개수, $v_n$은 512(VGGNet) 또는 2048(ResNet)이다.

Text representation

one-hot 인코딩으로 주어진 $T$개의 입력 단어들 ${w_1, …, w_T}$을 임베딩시킨 후 양방향 LSTM에 집어넣는다.

임베딩 행렬(embedding matrix)와 LSTM은 end-to-end로 학습된다.

Attention Mechanisms

bias $b$는 생략되어 있다.

Visual Attention

이미지의 특정 부분에 집중하게 하는 context vector를 생성하는 것을 주목적으로 한다.

step $k$에서, 시각문맥벡터(visual context vector) $v^{(k)}$는

[v^{(k)} = \text{V_Att} ({v_n}^N_{n=1}, \ m_v^{(k-1)}]

$m_v^{(k-1)}$는 step $k-1$까지 집중했었던 정보를 인코딩하는 메모리 벡터이다.
여기에다가 soft attention mechanism을 적용하게 된다.

attention weights $\alpha$는 2-layer FNN과 softmax로 구해진다. $W$들은 네트워크 parameter이다.

Textual Attention

마찬가지로 문장의 특정 부분에 집중할 수 있도록 문맥벡터 $u^{(k)}$를 매 step마다 생성하는 것이다.

[u^{(k)} = \text{T_Att} ({u_t}^T_{t=1}, \ m_u^{(k-1)}]

r-DAN for Visual Question Answering

VQA는 multimodal 데이터를 결합 추론하는 것을 필요로 하는 문제이다. 이를 위해 r-DAN은 step $k$에서 시각 및 언어적 정보를 축적하는 메모리 벡터 $m^{(k)}$를 유지한다. 이는 재귀적으로 다음 식을 통해 업데이트된다.

[m^{(k)} = m^{(k-1)} + v^{(k)} \ (\cdot) \ u^{(k)}]

최종 답은 다음과 같이 계산된다. $ \text{p}_{\text{ans}}$는 정답 후보들의 확률을 나타낸다.

[\bold{\text{p}}{\text{ans}} = \text{softmax} \bigr( W{\text{ans}} \ m^{(K)} \bigl)]

m-DAN for Image-Text Matching

수식의 형태는 꽤 비슷하다.

[m_v^{(k)} = m_v^{(k-1)} + v^{(k)}]

[m_u^{(k)} = m_u^{(k-1)} + u^{(k)}]

\(s^{(k)} = v^{(k)} \cdot u^{(k)}, \ S = \sum_{k=0}^K s^{(k)}\) Loss function은 다음과 같이 정의된다.

추론할 시점에는 어떤 이미지나 문장이든 결합공간 안에 임베딩된다.

[z_v = [v^{(0)}; … ; v^{(K)}],]

[z_u = [u^{(0)}; … ; u^{(K)}],]


실험(Experiments)

Experimental Setup

r-DAN과 m-DAN 모두에 대해 모든 hyper-parameters들은 전부 고정되었다.

$K$=2, LSTM을 포함한 모든 네트워크의 hidden layer의 dimension=512,
lr=0.1, momentum=0.9, weight decay=0.0005, dropout rate=0.5, gradient clipping=0.1,
epochs=60, 30epoch 이후 lr=0.01,
minibatch=128 $\times$ 128 quadruplets(긍정 이미지, 긍정 문장, 부정 이미지, 부정 문장),
가능한 답변의 수 C=2000, margin $m$=100이다.

Evaluation on Visual Question Answering

Dataset and Evaluation Metric

VQA 데이터셋을 사용하였고, train(이미지 8만 장), val(이미지 4만 장), test-dev(이미지 2만 장), test-std(이미지 2만 장)이다. 측정방법은

$\hat{a}$는 예측된 답이다.

Results and Analysis

결과를 보면 대부분의 상황에서 SOTA 결과를 얻었으며, 이미지와 문장에서 집중해야 할 부분을 잘 찾았음을 확인할 수 있다.

Evaluation on Image-Text Matching

분석결과는 비슷하므로 생략한다.


결론(Conclusion)

우리는 시각 및 언어적 attention mechanism을 연결하기 위한 Dual Attention Networks (DANs)를 제안하였다. 추론과 매칭을 위한 모델을 하나씩 만들었고, 각각의 모델은 이미지와 문장으로부터 공통 의미를 찾아낸다.
이 모델들은 VQA와 image-text 매칭 task에서 SOTA 결과를 얻어냄으로써 DANs의 효과를 입증하였다. 제안된 이 framework는 image captioning, visual grounding, video question answering 등등 많은 시각 및 언어 task들로 확장될 수 있다.


참고문헌(References)

논문 참조! 부록은 없다. 읽기 편하다


Comment  Read more

Pix2Pix(Image-to-Image Translation with Conditional Adversarial Networks, Pix2Pix 논문 설명)

|

이 글에서는 2016년 11월 Phillip Isola 등이 발표한 Image-to-Image Translation with Conditional Adversarial Networks(Pix2Pix)를 살펴보도록 한다.

Pix2Pix는 Berkeley AI Research(BAIR) Lab 소속 Phillip Isola 등이 2016 최초 발표(2018년까지 업데이트됨)한 논문이다.

Pix2Pix는 Image to Image Translation을 다루는 논문이다. 이러한 변환은 Colorization(black & white $\rightarrow$ color image) 등을 포함하는데, Pix2Pix에서는 이미지 변환 문제를 colorization처럼 한 분야에만 국한되지 않고 좀 더 일반화한 문제를 풀고자 했다. 그리고 그 수단으로써 Conditional adversarial nets를 사용했다.

중요한 부분만 적을 예정이므로 전체가 궁금하면 원 논문을 찾아 읽어보면 된다.


Pix2Pix(Image-to-Image Translation with Conditional Adversarial Networks)

논문 링크: Pix2Pix(Image-to-Image Translation with Conditional Adversarial Networks)

초록(Abstract)

우리는 conditional adversarial networks를 일반화된 이미지 변환 문제에 테스트하였다. 이 네트워크는 단지 input-output mapping만 배우는 것이 아니라 이를 학습하기 위한 loss function까지 배운다. 따라서 전통적으로 매우 다른 loss function을 쓰던 문제에들도 이 접근법을 적용할 수 있다.
우리는 이 접근이 label과 동기화, 경계선만 있는 이미지를 복원, 흑백이미지에 색깔 입히기 등등의 문제에 효과적임을 보였다.


서론(Introduction)

이미지를 이미지로 변환할 뿐인 수많은 문제들은 그 세팅이 똑같음에도 각각 따로 연구되어 왔다(위에서 말한 이미지 변환 문제들). 우리는 이러한 변환 문제를 위한 일반적인 framework를 개발하는 것이 목표이다.

이쪽 방향으로는 이미 CNN이라는 좋은 기계가 있다. CNN은 결과의 품질을 알려주는 loss function을 최소화한다. 그러나 학습 과정 자체는 자동화되어 있지만 결과를 잘 나오게 하기 위해서는 여전히 수동으로 조절해야 할 것이 많다. 즉, 우리는 무엇을 최소화해야하는지 CNN에게 말해주어야 한다.
만약 우리가 단순히 결과와 정답 사이의 유클리드 거리를 최소화하라고만 하면 뿌연(blurry) 이미지를 생성하게 된다. 이는 유클리드 거리는 그럴듯한 결과를 평균했을 때 최소화되기 때문이고, 결과적으로 이미지가 흐려진다. 실제 같은(realistic) 이미지를 얻기 위해서는 더 전문 지식이 필요하다.

만약 우리가 원하는 것을 고수준으로(high-level goal) 말할 수만 있다면, 네트워크는 스스로 그러한 목표에 맞게 loss를 줄여나갈 것이다. 운 좋게도, 최근에 정확히 이것을 해주는 GAN이 발표되었다. GAN은 실제와 가짜를 구분하지 못하도록 학습을 진행하며, 이는 흐린 이미지를 생성하지 않게 할 수 있다(뿌연 이미지는 실제 사진처럼 보일 리 없으므로).

이 논문에서, 우리는 CGAN이라는 조건부 생성모델을 사용한다. 우리는 input image라는 조건을 줄 것이고 그에 맞는 output image를 생성할 것이기 때문에 이는 이미지 변환 문제에 잘 맞는다.

이 논문이 기여하는 바는

  • conditional GAN이 넓은 범위의 문제에서 충분히 합리적인 결과를 가져다준다는 것을 밝혔고
  • 좋은 결과를 얻기에 충분한 간단한 framework를 제안하고 여러 중요한 architecture의 효과를 분석하였다.

관련 연구(Related Works)

  • Structures losses for image modeling: 이미지 변환 문제는 per-pixel 분류 또는 회귀 문제로 다뤄졌다. 이러한 공식화는 output space는 “unstructured”이며 각 결과 픽셀은 다른 픽셀에 독립적인 것처럼 다룬다. CGAN는 “structured loss”를 학습하며 많은 논문들이 이러한 loss를 다룬다. conditional random fields, SSIM metric, nonparametric losses 등등.
  • Conditional GANs: 사실 이 논문에서 GAN을 처음 사용한 것은 아니다. 그러나 조건부 GAN을 이미지 변환 문제에 사용한 적은 없었다. CGAN에 대한 설명은 여기를 참조하자.

방법(Method)

GAN은 random noise vector $z$로부터 output image $y$를 생성하는 $G: z \rightarrow y$를 학습하는 생성모델이다. 이에 비해 CGAN은 $z$와 observed image $x$로부터 $y$로의 mapping인 $G: {x, z} \rightarrow y$를 학습한다.

[\]

목적함수(Objective)

CGAN의 목적함수는 다음과 같다.

[\mathcal{L}{\text{cGAN}}(G, D) = \mathbb{E}{x , \ y}[log \ D(x,y)] + \mathbb{E}_{x , \ z}[log \ (1-D(G(x, z)))]]

D를 조건부로 학습시키는 것을 중요하게 여겨, D가 $x$를 관측하지 못하도록 unconditional variant를 비교하도록 했다:

[\mathcal{L}{\text{GAN}}(G, D) = \mathbb{E}{ y}[log \ D(y)] + \mathbb{E}_{x , \ z}[log \ (1-D(G(x, z)))]]

D의 할일은 그대로이지만, G는 단지 D를 속이는 것뿐만 아니라 L2 distance에서의 ground truth에도 가깝도록 만들어야 한다.
사실 L2보다는 L1을 사용하는 것이 덜 흐린 이미지를 생성하는 데 도움이 되었다:

[\mathcal{L}{L1}(G) = \mathbb{E}{x, \ y, \ z }[ \Vert y - G(x, z) \Vert_1 ]]

그래서 최종 목적함수는

[G^\ast = arg \ min_G \ max_D \ \mathcal{L}{\text{cGAN}}(G, D) + \lambda \mathcal{L}{L1}(G)]

이다.

$z$가 없이도 네트워크는 $x \rightarrow y$ mapping을 학습할 수 있지만, 결정론적인 결과를 생성할 수 있고, 따라서 delta function 이외의 어떤 분포와도 맞지 않을 수 있다. 과거의 conditional GAN은 이를 인정하여 $x$에 더해 Gaussian noise $z$를 입력으로 주었다.
초기 실험에서 우리는 noise를 단순히 무시하도록 했지만, 최종 모델에서는 dropout 시에만 noise를 제공하여 학습과 테스트 시 모두에 G의 여러 레이어에 적용되도록 만들었다. dropout noise에도 불구하고 우리는 매우 조금의 stochasiticity만을 관측하였다. 아주 stochastic한 결과를 생성하는 conditional GAN을 설계하는 것은 아주 중요한 문제이다.

네트워크 구조(Network architectures)

우리는 DCGAN을 G와 D의 기본 모델로 하였고 둘 다 convolution-BatchNorm-ReLU 구조를 따른다.

Generator with skips

이미지 변환(image-to-image translation) 문제에서 어려운 점은 고해상도 input grid를 고해상도 output grid로 mapping하는 것이다. 심지어 표면의 외관은 다른데 각각 같은 근본적인 구조를 가진다는 것이다.
많은 이전 연구들은 encoder-decoder 네트워크를 사용한다. 이러한 네트워크에서는 bottleneck 레이어를 통과하기 때문에 정보의 손실이 필연적으로 발생할 수밖에 없다. 그래서, skip-connection을 추가한 U-Net이라는 구조를 사용했다.
정확히는, 전체 레이어 개수를 $n$이라 할 때 모든 $i$번째 레이어와 $n-i$번째 레이어를 연결했다. 각 연결은 단순히 concatenate한 것이다.

Markovian discriminator(PatchGAN)

high-frequency 모델링을 위해, 집중할 부분(attention)을 local image patch 단위로만 제한하는 것으로 충분하다. 그래서, 우리는 D를 PatchGAN(일반 GAN인데 단지 Patch 단위로만 보는 것) 구조로 만들었다.
그래서 우리의 D는 $N \times N$개의 각 Patch별로 이 부분이 진짜인지 가짜인지를 판별한다.

실험 단계에서 우리는 $N$이 작아도 전체 이미지를 한번에 보는 것보다는 더 좋은 결과를 얻을 수 있음을 보였다. 이는 더 작은 PatchGAN은 더 적은 parameter를 가지고, 더 빠르며, 더 큰 이미지에 적용하는 데에서도 이점이 있음을 보여준다.

D가 이미지를 Markov random field처럼 보는 것이 효과적인 모델링 방법이므로, patch의 지름보다 더 먼 pixel들은 독립적이라고 보았다. 이러한 접근은 이미 연구된 바 있고, texture/style 모델에서 꽤 흔하며 적절한 가정이다. 따라서 PatchGAN은 texture/style loss면에서 충분히 이해가능한 모델이다.

최적화 및 추론(Optimization and inference)

일반적인 GAN 접근법을 따랐다. original GAN에서는 $log \ (1-D(x, G(x,z)))$를 최소화하는 대신 $log \ D(x, G(x,z))$를 최대화하는 것이 낫다고 했다.
그러나 우리는 D를 최적화하는 목적함수를 2로 나누어 D가 G보다 상대적으로 더 빠르게 학습되지 않도록 하였다.
또한 minibatch SGD와 Adam을 사용하였다($lr=0.0002, \beta_1 = 0.5, \beta_2 = 0.999$). 또한 batch size는 실험에 따라 1~10으로 조정하였다.


실험(Experiments)

conditional GAN의 보편성을 테스트하기 위해, 다양하게 진행하였다.

Problem Dataset
Semantic labels $\leftrightarrow$ photo Cityspaces dataset
Architectural labels $\leftrightarrow$ photo CMP Facades
Map $\leftrightarrow$ aerial photo Google Maps
BW $\rightarrow$ color photos ImageNet
Edges $\rightarrow$ photo Natural Image manifold
Sketch $\rightarrow$ photo human sketches
Day $\rightarrow$ night ACM Transactions on Graphics
Thermal $\rightarrow$ color photos Benchmark dataset and baseline
Photo with missing pixels $\rightarrow$ inpainted photo Paris StreetView

다른 네트워크보다 더 좋은 결과:

encoder-decoder보다 더 효과적인 U-Net:

Patch의 개수를 늘렸을 때의 선명도 상승:

구글맵 사진과 도식화한 그림 간 변환 결과:

Colorization과 이미지 도식화:

등등 많은 결과가 논문에 나타나 있다.

사실 colorization 문제와 같은 것에서는 colorization에 특화된 네트워크가 더 좋은 결과를 내기는 한다.
그러나 이 Pix2Pix는 훨씬 더 넓은 범위의 문제를 커버할 수 있다는 점에서 의의가 있다.

더 많은 결과에 대해서는 여기를 참조하라.


결론(Conclusion)

이 논문에서는 image-to-image translation 문제에 대해, 특히 고도로 구조화된 그래픽 결과에 대해 conditional adversarial networks가 괜찮은 접근법이라는 것을 보여주었다. 이 네트워크는 문제와 데이터에 대한 loss를 학습함으로써 넓은 범위의 문제에 대해 적합함을 보여주었다.

Acknowledgments

매우 많다 ㅎㅎ


참고문헌(References)

논문 참조!


결론 이후에도 많은 실험 결과가 있으니 참조하시라. 매우 흥미로운 것들이 많다.


부록

Generator architectures

코드는 여기에 있다.

encoder는 C64-C128-C256-C512-C512-C512-C512-C512 구조이다(convolution layer).
decoder는 CD512-CD512-CD512-C512-C256-C128-C64 구조이다.

decoder의 마지막 레이어 이후 output 채널에 맞게 mapping되고(3, colorization에서는 2), Tanh 함수가 그 뒤를 따른다.
또한 encoder의 C64에서는 BatchNorm이 없다.
encoder의 모든 ReLU는 기울기 0.2의 Leaky ReLU이며, decoder는 그냥 ReLU이다.

U-Net decoder는 다음과 같이 생겼다. 앞서 언급했든 $i$와 $n-i$번째 레이어 사이에 skip-connection이 존재한다. 이는 decoder의 채널의 수를 변화시킨다.

CD512-CD1024-CD1024-C1024-C1024-C512-C256-C128

Discriminator architectures

$ 70 \times 70 $ discriminator의 구조는:

C64-C128-C256-C512

단 C64에는 BatchNorm이 적용되지 않는다.
마지막 레이어 이후 convolution을 통해 1차원으로 mapping하며 마지막에 sigmoid 함수가 적용된다.
0.2짜리 Leaky ReLU가 적용되었다.

다른 크기의(patch) D들은 조금씩 깊이가 다르다.

$ 1 \times 1 $ discriminator: C64-C128(convolution들은 $ 1 \times 1 $ spatial 필터를 사용)

$ 16 \times 16 $ discriminator: C64-C128

$ 286 \times 286 $ discriminator: C64-C128-C256-C512-C512-C512

학습 상세

  • $ 256 \times 256 $ 이미지는 $ 286 \times 286 $ 크기로 resize되었다가 random cropping을 통해 다시 $ 256 \times 256 $가 되었다.
  • 모든 네트워크는 scratch로부터 학습되었다.
  • weights는 (0, 0.02) 가우시안 분포를 따르는 랜덤 초기값을 가진다.
  • 데이터셋마다 조금씩 다른 기타 설정은 논문을 참조하자.

Comment  Read more