Gaegul's devlog

[논문 리뷰] Learning to Paint With Model-based Deep Reinforcement Learning_ICCV 2019 본문

Artificial Intelligence/Research Paper 리뷰 📖

[논문 리뷰] Learning to Paint With Model-based Deep Reinforcement Learning_ICCV 2019

부지런깨꾹이 2021. 11. 23. 13:36
728x90
반응형

본 논문은 model-based reinforcement learning으로 선(stroke)만으로 이미지를 생성할 수 있다.

본 논문의 task는  주어진 이미지와 유사한 그림을 생성하기 위해 캔버스에  선을 순차적으로 그릴 수 있는 painting agent를 훈련한다.

 

Main Contribution 

real-world images을 paint하기 위한 agent를 학습하기 위해 3가지 챌린지.

1. 인간처럼 그림을 그리려면 agent가 주어진 대상 이미지를 순서 있는 stroke(스트로크)로 분해할 수 있는 능력이 필요하다.  그럴려면 현재 캔버스의 status을 이해하면서,  future stroke에 대해 미ㄹ리 알 수 있어야 한다. 이것이 가능하게 하려면 한가지 방법은 각 step에서 stroke decomposition(스트로크 분해)을 위해 supervised loss 를 주는 것이다. 

RL은 각 단계에서 supervised loss을 최소화하는 대신 전체 패인팅 프로세스의 누적 reward을 최대화할 수 있기 때문에 문제의 ill-defineness와 long-term planning challenge를 해결하기 위해 강화 학습(RL)을 사용하여 에이전트를 교육할 것을 제안한다. 실험에 따르면 RL 에이전트는 수백 단계로 stroke decomposition을 세울 수 있다. 또한 전략이 다른 이미지 생성 작업에서 효과가 입증된 것처럼 생성된 이미지의 픽셀 수준 품질을 개선하기 위해 adversarial training strategy을 적용한다.

2. 패인팅 품질을 향상시키기 위해서 stroke location, color, 그리고 transparency를 포함한 연속적인 stroke param space을 디자인 했다. 본 논문에서는 discrete한 stroke param space 대신에 DDPG(Deep Deterministic Policy Gradient)를 채택했다.

3. 효율적인 differentiable neural renderer 를 빌드함. 이전 renderer 도 good했지만, 생성된 이미지에 대해선 detailed feedback을 제공하는 것은 실패했음. 그래서 nn 기반의 renderer 를 만듬. Renderer는 세모나 동그라미와 같은 다른 stroke design을 채택함. 

 

Methodology 

painting agent의 목적은 지정된 대상 이미지를 캔버스에 이미지를 다시 만들 수 있는 stroke로 분해하는 것. 그림 그리는 과정을 모방하기 위해, agent는 캔버스의 현재 status와 target image를 관찰하여 다음 stroke를 예측하도록 설계되었다.

target Image I 와 empty canvas C0를 주고, agent 는  Ct+1을 얻을 수 있는 stroke sequence (a0, a1 , .... an-1)를 찾는 것을 목표로 가짐.  이러한 스트로크를 순차적으로 렌더링한 후 최종 Cn을 얻을 수 있으며, 이는 가능한 한 시각적으로 I (target image)와 유사해야 한다. 이 작업을 1)state space S, 2)action space A, 3)transition function trans(st, at) 및 4)reward function r(st, at)을 가진 마르코프 의사결정 프로세스로 모델링한다.

 

1. Model

1) State function

본 task에서는 canvas Ct, target image I, step number t 와 같이 3가지 state로 나뉠 수 있다. state 공간은 agent가 환경에서 관찰할 수 있는 모든 가능한 정보로 구성된다.

state formulation

2) Action function

painting agent의 동작은 t 단계에서 페인팅되는 stroke의 위치, 모양, 색상 및 투명도를 제어하는 매개변수 세트입니다. agent의 action은 state를 결정적 행동에 매핑하는 정책 함수 π로 정의합니다. 즉, π : S → A입니다. t 단계에서 에이전트는 다음 스트로크 At의 매개변수를 예측하기 전에 상태 St를 관찰합니다. 상태는 n 단계 동안 실행되는 transition function st+1 = trans(st , at)에 따라 진화합니다.

 

3) Reward

step t에서의 보상인데, Lt는 target image I 와 canvas Ct사이의 discriminator score loss 이고, Lt+1은 I와 Ct+1 의 loss이다.

reward formulation

최종 캔버스를 target image와 유사하게 만들기 위해서는 agent가 전체 에피소드에서 누적 reward을 maximize하도록 구동되어야 합니다. 각 단계에서 agent의 목표는 discount된 future reward Rt의 합계를 maximize하는 것입니다. 감마 r 은 discounting factor로 0~1사이의 값을 가집니다.

future reward Rt formulation

 

 

2.  learning

 

a) Original DDPG

기존의 DQN 및 PG와 같은 일부 DRL 방법을 적용하기 위해 작업 공간을 이산화하면 스트로크 표현의 정밀도가 떨어지고 이산 공간에서 폭발적인 parameter 조합에 대처하기 위해 수동 구조 설계에 많은 노력이 필요합니다. 이에 반해 DPG는 deterministic policy을 사용하여 고차원의 연속 행동 공간으로 인한 어려움을 해결하고 DDPG는 신경망을 사용한 변형입니다.

actor와 critic으로 2개의 네트워크로 구성.

Bellmand equation in Q-learning

하지만, original DDPG를 이용해서 학습하는 동안 모든 유형의 real-world image로 구성된 복잡한 환경을 agent가 잘 모델링하기 어렵기 때문에 원본 DDPG를 사용하여 우수한 성능의 painting agent를 학습할 수 없다.

b) Model-based DDPG

마찬가지로 에이전트가 모델링된 환경을 관찰할 수 있도록 neural renderer를 설계한다. 그러면 환경을 탐색하고 정책을 효율적으로 개선할 수 있습니다. 우리는 모델 기반 DDPG로 환경에서 그라디언트에 액세스할 수 있는 액터를 DDPG라고 함.

Model-based DDPG를 사용하는 agent의 optimization는 Original DDPG를 사용하는 것과 다르다. t 단계에서 critics는 st+1을 두 가지 at와 st 모두가 아닌 입력으로 사용한다. critics은 여전히 state에 대한 expected reward을 예측하지만 현재 action로 인한 reward은 더 이상 포함하지 않는다.


새로운 expectation reward은  discount된 reward을 사용하여 훈련된 reward 함수 V(st)이다.

 

3. Network

(a) The actor and critic

  • actor 와 critic 의 output demension이 다르기 때문에 마지막 FC 만 빼고 구조가 같다.
  • High variability 와 real-world image 의 복잡성 째문에, actor 와 critic 안에 feature extractor를 ResNet-18와 비슷하게 residual structure 을 사용.
  • 학습 안정화를 위해 TReLU와 WN(Weight Normalization)을 사용. (Batch Normalization은 actor에는 잘 작동했지만 critic learning 에서는 속도를 낼 수 없었음.)

(b) discriminator

TReLU와 WN(Weight Normalization)을 사용한 PatchGAN과 유사한 네트워크 구조 사용.

(c) neural renderer 

neural renderer 장점

  • 대부분의 hand-crafted stroke simulator(고전적인 rendering)보다 어떠한 stroke의 style을 만들어내기에 유연하고 GPU측면에서도 훨씬 효율적.
  • differentiable하고 agent 의 성능을 끌어올릴 수 있게 end-to-end training을 가능하게 함.

input은 stroke param at이고, output은 render된 stroke image S이다. 네트워크는 몇 개의 fc layer 와 conv, sub-pixel upsampling(: stroke 의 resolution을 증가시켜서 fast running operation / checkerboard effect을 제거 하기 위해)로 구성. 

neural network를 사용하는 이유 : circle 같은 simple한 stroke는 gradient로부터 심플하게 수렴하지만, 일반적으로 Bezier Curve와 같은 pixel position 과 pixel value의 discreteness은 gradient을 유도할 때 연속적인 수렴을 요구한다. 

 

 

4. Design of Stroke 

1) action

Stroke 13 params  : position of QBC, shape, transparency, color

2) The formula of QBC

 

 

Result / Experiment 

결과 1. Painting Result on multiple dataset  

Target (left) , Result (Right)

 

실험 1. CelebA Paintings under different setting

 

 

실험 2. Ablation Studies - L2 distance testing

 

 

 

실험 2. Ablation Studies - 다른 stroke 를 이용해서 painting

 

 

728x90
반응형
Comments