2020/08/10

2020. 9. 20. 09:33NewsLetter

최근 소식

  • 주요 학회의 논문제출 마감일은 다음과 같습니다 (2020/08/07 기준). 논문 제출 계획이 있으신 분들은, 남은 기간까지 모두 화이팅 하시길 바라겠습니다! (혹시 트위터 하시는분들은, 다음 계정에서 학회에 대한 날짜를 편하게 받아보실 수 있습니다. https://mobile.twitter.com/AiDeadline)
    • WSDM: D-9
    • AAAI: D-33
    • EACL: D-44
    • ICLR: D-55
    • ICASSP: D-73

[S1] Supermasks in Superposition

논문 원문: https://arxiv.org/pdf/2006.14769.pdf (Arxiv-20)

한줄평: 하나(?)의 모델로 여러가지 task를 모두 잘하는 모델을 어떻게하면 만들 수 있을까?

  • 사람은 과거에 학습했던 내용들을 잘 기억 및 활용하여, 여러가지 task가 순차적으로 주어지더라도, 비교적 잘 해낼 수 있습니다.
  • 이와 닮은 머신러닝 모델을 (하나의 모델로 여러가지 task를 순차적으로 잘 해결할 수 있는) 만들고자 하는 노력이 continual learning이라고 부릅니다. 각 task마다 서로 다른 모델을 학습시켜서 해결하면 좋겠지만, task개수에 비례해서 모델의 개수가 늘어나게 되는 단점이 존재합니다.
  • 본 논문에서는, 하나의 뉴럴 네트워크 모델이지만, mask를 task마다 서로 다르게 설정하자! 입니다. (위의 한줄평에서 하나'(?)'의 모델이라고 말한게, mask만큼은 task마다 여러개이기 때문에, '하나'의 모델이라고 말하기 애매할 수도 있기 때문입니다!)
  • mask가 task마다 있는것은, 모델이 (neural network의 일반적인 weight) task마다 있는것과 뭐가 다르냐구요? mask는 binary 값이고, sparse하기 때문에, weight를 저장하는것보다 훨씬 효율적입니다.
  • 그 까닭에, 본 논문에서는 weight를 random하게 초기화 시키고, weight 대신 mask를 학습시킵니다. 즉, 각 task 마다 그에 알맞는 sub-network를 찾겠다는 것이구요. 이러한 sub-network로 학습을 해도, full network를 학습하는것만큼의 유사한 성능을 낼 수 있다는것이 과거에 알려져 있었고, 이를 적극 활용하였습니다.
  • Task가 주어지면, 해당 task에 맞춰서 mask를 가져와서 학습을 시킵니다. 현재 시점에서 주어진 data의 task가 주어져 있지 않으면, 현재까지 학습했던 mask로 활용할 수 있는지 확인한 다음 (이때는 model이 내뱉는 output의 entropy의 gradient값을 활용합니다.), 활용가능하면 과거의 mask를, 그렇지 않으면 새로 mask를 할당해서 학습시킵니다.
  • 그 결과, Fashion MNIST라는 비교적 쉬운 data이긴 하지만, 2500개의 task에 대해서 실험을 하였을 때도, 별 무리 없이 잘 학습할 수 있었다고 주장하고 있습니다. 제가 지금까지 봐왔던 continual learning 모델들 중에서, 가장 직관적이면서 현실적이고 실용적인 모델 같습니다!

[S2] Data Valuation using Reinforcement Learning

논문 원문: https://arxiv.org/pdf/1909.11671.pdf (ICML-20)

한줄평: 어떤 data가 중요하고 안중요한지 어떻게 평가할 수 있을까?

  • 우리는 상황에 따라서, 많은 데이터를 가지고 있을 수 있습니다. 그리고 그러한 데이터 중에서는, 특히 중요한 데이터가 있을수 있고, 비교적 덜 중요한 데이터가 있을 수 있습니다.
  • 특히 outlier나 noisy한 데이터가 포함되어 있을 경우에는, 이러한 data를 파악하고, 학습에서 제외하는 것이 효과적일 수 있습니다.
  • 데이터의 중요도를 어떻게 평가할 수 있을까요? Loo 기반의 방법론, Shapley 기반의 방법론들이 많이 연구되어 왔으며, 본 논문에서는 강화학습을 사용하여 데이터의 중요도를 평가합니다. 기존의 Loo 및 Shapley 대비, scalable한 모델을 제안하고 있습니다.
  • 논문에서 제시하는 방법은 굉장히 직관적입니다. 데이터가 주어졌을 때, data의 value를 평가하는 policy network가 존재합니다. 1) 해당 policy network를 기반으로, 어떤 데이터를 training에 포함시킬지 아닐지를 결정합니다. 2) 포함시키기로 결정한 데이터에 대해서, data의 label을 예측하는 predictor model을 학습시킵니다. 3)해당 predictor model로 validation set 에 대해서 accuracy를 측정한것을 reward로 설정하여, policy network를 학습시킵니다.
  • 즉, predictor model은, policy network가 학습하라고 결정한 train 데이터에 대해서 loss를 최소화 하며, policy network는 validation loss를 최소화 하도록 학습이 됩니다.
  • Validation set에 대한 성능을 reward로 활용하니, validation set의 개수에 대해서 민감할 수 있습니다. 본 연구에서는 100~400개의 clean validation dataset이 있으면 괜찮다는 실험적인 결과를 보이고 있습니다.
  • 이 논문과는 별개로, 전체 dataset을 대표하는 validation set을 효과적으로 잡는 방법 또한 굉장히 연구할 가치가 높다는 생각이 들었습니다.

[S3] Consistency Regularization for Variational Auto-Encoders

논문 원문: https://invertibleworkshop.github.io/accepted_papers/pdfs/22.pdf (ICML-20 Workshop)

한줄평: Data augmentation에 invariant한 VAE를 학습하자!

  • High-dimensional data의 유의미한 latent feature를 추출하기 위해서, 우리는 많은 상황에서 Variational Auto-Encoders (VAE)를 활용합니다.
  • 저자는 VAE를 학습 시켰을때, 원래의 이미지와 해당 이미지의 transformation (예를들어 rotation)은 서로 다른 latent space로 mapping 된다는 것을 실험적으로 발견하였습니다. 즉, MNIST 데이터로 예를들면, 이미지 7과, 약간 기울어진 7이 비교적 굉장히 다른 공간으로 mapping 될 수 있다는것입니다.
  • 하지만 우리는 많은 상황에서, 원래 이미지7과, 약간 기울어진 7이, 비교적 가까운 공간의 latent space에 위치하도록 기대를 합니다. 이렇게 하기 위해서는 어떻게 해야할까요?
  • 기존의 VAE 목적식 (Evidence Lower BOund)에, 추가적인 consistency loss를 추가합니다. 즉, qϕ(zx)q_{\phi}(z|x)qϕ(z~x~)q_\phi(\widetilde{z}|\widetilde{x})의 KL-dviergence가 가까워지도록 강제하는 term을 추가하였습니다. (여기서, x~\widetilde{x}xx를 transformation (rotation 등) 시킨 데이터를 의미합니다.
  • 논문의 Figure1에 나와 있듯이, 기존 VAE에다가 data augmentation을 추가하면, posterior collapse가 어느정도는 해결되지만 qϕ(zx)q_{\phi}(z|x)qϕ(z~x~)q_\phi(\widetilde{z}|\widetilde{x})는 먼 거리에 존재하게 됩니다. 반면, 본 논문에서 제시하는 consistency loss를 추가하면, posterior collapse도 어느정도는 해결되면서, qϕ(zx)q_{\phi}(z|x)qϕ(z~x~)q_\phi(\widetilde{z}|\widetilde{x})는 비슷한 latent space에 존재하게 된다는 것을 실험적으로 확인할 수 있습니다.

[L1] Rewriting a Deep Generative Model

한줄요약: 이미지 변형, 방향만 알면 어렵지 않아요!

논문 원문: https://arxiv.org/pdf/2007.15646.pdf (ECCV-2020 Oral)

Motivation

만일 누군가가 당신에게 사진을 한 장 주면서 이렇게 얘기합니다. "사진에 워터마크가 찍혀 있어서 보기 안 좋네. 좀 지워줘." 당신은 어렵지 않게 포토샵이나 그림판으로 워터마크를 지워서 돌려줍니다. 그러자 그 사람은 다시 한 번 "좀 하는데? 그러면 여기에 사람들 좀 적당히 채워넣어줘. 너무 썰렁하다."라고 합니다. 어려운 부탁은 아닙니다. 다시 한 번 실력을 발휘하여 사람을 적당히 채워줍니다. 그 사람은 또 다시 "이 건물들 지붕이 나무로 가득찼으면 좋겠어. 그럼 정말 예쁠거 같아"라고 합니다. 짜증이 나지만 그 역시도 어려운 작업이 아니니 금방 해줍니다. 그리고 그 사람은 마지막으로 이렇게 얘기합니다. "잘하네. 자, 이제 나머지 99장도 똑같이 작업해줘." 아뿔싸. 함정이었던 겁니다.

그림 한 장에 대해 원하는 rule대로 요소를 빼거나, 추가하거나, 변형하는 것은 그렇게 어려운 작업이 아닐지 모릅니다. 시간이 정말 남아서 한 10장 정도도 할 수 있습니다. 그런데 그런 작업을 100장, 1000장 해야 한다면 그건 매우 난감해집니다. 아무리 generative model로 이런 task를 수행한다고 해도 학습을 시킬만한 충분한 데이터를 모아야 하고, 학습도 시켜야 하고, 잘 되는지 검증도 해야 합니다. 그런데 만약 rule이 바뀐다면 또 다시 데이터를 모으고 다시 학습시켜야 합니다.

이 논문에서는 이러한 난감한 상황에서 걱정하지 말라고 이야기 해줍니다. 이러한 task를 수행하기 위해 당신은 데이터를 모을 필요도 없고, 새로 학습을 돌릴 필요도 없습니다. 단지 그 domain에 특화된 GAN (StyleGANv2와 같은)과 몇개의 예시만 있으면 됩니다. 학습도 필요 없습니다. 예시에서 feature를 뽑아서 weight값을 조정해주면 됩니다.

Method

기존에는 이런 문제를 image manipulation 혹은 style transfer의 task로 부르며 이를 위해 많은 모델들이 제시되었습니다. 그리고 이 task를 풀기 위해 1 대 1 매칭이 되는 labeled된 데이터가 필요했습니다. 그것도 꽤 많은. 하지만 점차 모델들과 학습 기술이 발전하고 1 대 1 매칭이 되지 않아도 학습 가능한 unsupervised 모델들이 제시되었지만, 여전히 데이터는 많이 필요했고, 이를 학습시켜야 했습니다. 그러나 이 논문에서 제시한 방법론은 기존의 모델들을 학습시킬 많은 데이터를 필요로 하지 않았고, 학습 과정도 필요로 하지 않습니다. 그저 원하는 task를 달성하기 위해 모델의 weight를 바꿔주기만 하면 됩니다.

이 방법론을 설명하기 앞서 네트워크를 associative memory로 보아야 한다. associative memory는 Hash 처럼 key와 value 쌍이 있어 key를 통해 value를 빠르게 얻어낼 수 있는 것이다. 이러한 관점으로 네트워크의 weight product를 다음과 같이 key(kik_i)와 value(viv_i)로 볼 수 있다.

viWkiv_i \approx Wk_i

이러한 관점을 convolution layer에 적용하면 CNN 네트워크 각 layer의 convolution filtering 연산을 associative key를 value로 보내는 memory로 볼 수 있습니다. 이러한 관점에서는 key는 single-location의 feature vector입니다. 따라서 학습된 generator는 여러개의 다른 이미지에서 비슷한 의미(예를 들어 지붕)는 동일한 key와 매칭되게 됩니다.

따라서 다시 예제로 돌아와 지붕의 모양만 나무로 바꾸고 싶다면, 우리는 두가지 문제를 풀어야 합니다. 일단 지붕이 아닌 다른 곳은 변하지 않으면서도 지붕을 나무로 바꿔야 합니다. 이때 중요성은 지붕이 나무와 비슷한 모습으로 바뀌어야 하지만, 웬만하면 나머지 부분은 변하지 않았으면 좋겠습니다.

따라서 이 문제 중 첫번째로 지붕이 나무와 비슷한 모습으로 바뀌어야 한다의 문제를 먼저 보겠습니다. 지붕으로 매칭되던 key(kik_i)에서 나무의 모습 value(viv_i)로 거의 같게 매칭되게 하기 위해 다음의 문제를 풀어 kik_iviv_i에 매칭되게 하는 W0W_0를 구할 수 있습니다.

W0=argminWiviki2W_0=argmin_W \sum_i \parallel v_i - k_i \parallel^2

우리는 한정된 수의 feature를 다루므로 여기서 표현을 좀 더 간단하게 하기 위해서 다음과 같이 정의하겠습니다.

K=[k1k2kn]V=[v1v2vn]K=[k_1|k_2|\cdots|k_n] \\ V=[v_1|v_2|\cdots|v_n]

그럼 이때 위의 문제는 linear-squares로 최소화할 수 있고, 이때 pseudoinverse를 이용하면 다음과 같이 W0W_0를 구할 수 있습니다.

W0KKT=VKT=>W0=VK+W_0KK^T=VK^T => W_0=VK^+

이제 나머지 부분은 바뀌지 않게 하기 위한 weight는 위의 문제에서 constraint를 추가하면 됩니다. 우리는 기존의 key(kk_*)가 다른 나머지 부분의 value(vv_*)로 매칭되어야 하므로 위의 문제를 다음과 변형해서 풀어주면 됩니다.

W1=argminWVWK2s.t  v=W1kW_1=argmin_W||V-WK||^2 \\ s.t~~v_*=W_1k_*

비슷한 방식으로 constrained linear least-squares 문제를 풀게 되면, W1KKT=VKT+ΛktW_1KK^T=VK^T+\Lambda k_*^t의 값을 얻을 수 있습니다. 이전 문제와 엮어서 이 식을 다음과 같이 다시 표현할 수 있습니다.

W1KKT=W0KKT+ΛkTW1=W0+Λ(C1k)TW_1KK^T = W_0KK^T+\Lambda k_* ^T \\W_1 = W_0 + \Lambda(C^{-1}k_*)^T

여기서 C=KKTC=KK^T를 의미합니다.

우리가 다룰 네트워크는 단순히 선형의 네트워크가 아닌 더 복잡한 네트워크이지만 걱정할 건 없습니다. 방식은 똑같습니다. 또 한 번 편의를 위해 다음과 같이 표기하게습니다.

d=C1kd=C^{-1}k_*

네트워크의 non-linear layer를 f(k;W)f(k;W)라고 하면 아까와 똑같이 하면됩니다. 다만 key와 value의 매칭 관계는 v=f(k;W)v_* = f(k_*;W)가 되겠습니다. 위의 식에서 우리는 W1=W0+Λ(C1k)TW_1 = W_0 + \Lambda(C^{-1}k_*)^T로 계산했고, 이미 W0W_0가 있으니 이제 이에 적절한 Λ\Lambda만 찾으면 됩니다.

Λ1=argminΛvf(k;W0+ΛdT)\Lambda_1 = argmin_{\Lambda}||v_* - f(k_*;W_0+\Lambda d^T)||

이렇게 찾은 Λ\LambdaW0W_0에 업데이트하여 W1=W0+Λ1dTW_1 = W_0 + \Lambda_1d^T를 구할 수 있습니다.

이를 확장해서 여러개의 kk_*vv_*가 있으면 di=C1kd_i=C^{-1}k_*를 구해 다음의 식으로 새로운 WW를 구하면 됩니다.

ΛS=argminΛVf(K;W0+ΛDST)where DS=[d1d2dS]\Lambda_S = argmin_\Lambda ||V_* - f(K_*;W_0 + \Lambda D_S^T)|| \\ where~ D_S = [d1|d2|\cdots|d_S]

그리고 WS=W0+ΛSDTW_S = W_0 + \Lambda_S D^T

이러한 구조를 사용자가 편하게 사용하기 위해 3가지 기능의 인터페이스를 만들었습니다. 첫번째는 우리가 생성되게 하고 싶은 value를 추출하는 copy, 추출한(copy한) feature를 붙여넣을 수 있는 paste, 그리고 이러한 변화를 generalize하기 위한 context selection. 이러한 인터페이스를 통해 사용자는 쉽게 사진을 편집할 수 있는 환경을 가질 수 있습니다.

방법론의 성능을 비교하기 위해 세가지 효과를 적용했습니다. 첫번째는 이미지에 물체를 추가시키는 것(사람들을 추가하는 것), 두번째는 물체를 지우는 것(워터마크 지우기), 마지막은 물체에 물리적인 변형 주기(빛의 밝기에 따른 물체들의 모양 변화). Basemodel은 StyleGANv2를 대상으로 변형을 주었고, 이러한 효과에 대해 가장 잘한다고 알려진 Neural Best-Buddies(NBB) 알고리즘과 비교했을 때 정성적이나 정량적으로도 이 방법이 꽤 잘 된다는 것을 확인했습니다.

'NewsLetter' 카테고리의 다른 글

2020/08/24  (1) 2020.09.20
2020/08/17  (0) 2020.09.20
2020/08/03  (0) 2020.09.20
2020/07/27  (0) 2020.09.20
2020/07/20  (0) 2020.09.20