본문 바로가기

논문 읽기

[강화학습 + 이미지 처리]Exposure: A White-Box Photo Post-Processing Framework, SIGGRAPH 2018

*저는 배우는 학생이라 도메인 지식이 얕습니다. 참고 정도만 부탁드립니다. 

다 이해하고 쓰지 못했습니다.. 공부용이니 참고만 부탁드립니다.

 

Exposure: A White-Box Photo Post-Processing Framework

Retouching can significantly elevate the visual appeal of photos, but many casual photographers lack the expertise to do this well. To address this problem, previous works have proposed automatic retouching systems based on supervised learning from paired

arxiv.org

논문 Exposure: A White-Box Photo Post-Processing Framework은 SIGGRAPH 2018에 발표된 논문입니다.

이미지 post processing 하는 데 있어서 강화 학습을 이용해 당시 SOTA의 성능을 달성했다고 말합니다. 여기서 post processing이란 찍은 사진을 "보정"하는 수준을 이야기합니다. 논문에서도 Retouching(=보정)이라는 말을 씁니다. 아래 그림과 같이 말이죠.


 

  • Abstract

초록에서는 이전에 제안된 automatic retouching systems이 어떤 사진 작가의 느낌(=그 작가만의 보정 기법)을 표현하기 위해서는 paired data를 기반하여 학습을 시작한다고 말합니다. 하지만 이 논문에서 제안하는 방법은 unpaired data로도 학습하여 특정 사진작가들의 느낌을 표현할 수 있도록 한다고 말하죠.

 

또한 저자는 deep convolutional neural networks와 resolution-independent differentiable filters 그리고 deep reinforcement learning approach를 이용하여 이 문제를 풀어나갔다고 합니다. 또한 deep reinforcement learning 이용하였기 때문에 연속적인 결정 문제로 retouching system이 표현되고, 때문에 black box가 아닌 white box, understandable solution으로 나타난 다고 합니다.


 

  • 1. Introduction

소개에서는 처음 이 시스템이 필요한 이유에 대해 말합니다. 전문가가 아닌 일반 사용자에게 사진을 원하는 분위기로 retouching한다는 것은 어려운 일이고, 사람마다 취향이 다르기 때문에 모든 사진을 하나의 통일된 retouching 기법으로 표현할 수도 없습니다. 따라서 일반 사용자들은 자신이 원하는 취향의 사진들을 모아놓고 원하는 사진이 그런 느낌이 되도록 학습하고 싶은데 기존 paired data로 구성된 학습 기법으로는 원하는 취향의 사진들이 pair가 없기 때문에 학습이 불가능하다고 합니다.

 

나머지 부분은 Abstract과 내용을 공유하고있기 때문에 정리된 contribution만 언급하겠습니다.

1. end to end model로 디자인 되어있다.

2. 강화 학습을 사용하여 최적화했기 때문에, 설명 가능한 결과가 나온다.

3. GAN 구조를 사용하여 image pair 없이도 학습이 가능하다. 또한 화소에 구애받지 않고 처리가 가능하다.

4.  여러 가지 실험을 통해 본 논문의 모델이 효율적인 post processing을 제공할 뿐만 아니라 reverse engineering도 가능함을 보인다.

 


(related work 생략)

  • 3. The Model

본 모델의 전체적인 개요는 어떤 사진작가의 스타일을 나타내는 사진 모음이 있으면, 모델이 주어진 입력에 대해 그 사진 모음의 스타일을 표현하기 위해 학습하는 것입니다.

 

3.1 Motivation

대부분의 방법들은 하나의 post processing에만 집중합니다(밝기면 밝기 대조면 대조 한 부분만 보정하는 듯). 하지만 사진 보정이라 함은 여러 가지의 다른 편집 기법들이 포함되죠. 또한 사람은 이 작업을 순차적으로 하나씩 한 번의 편집 결과를 보면 그 결과를 보고 다른 편집 기법을 적용하는 식으로 진행되는데, 이와 같은 방식으로 동작할 수 있는 것이 강화 학습이죠. 또한 강화 학습을 이용하면 이전 순차적인 방법론을 적용했던 논문과 다르게 지도 학습을 해야 되는 범위를 줄인다고 합니다.

Post-processing as a decision-making sequence

3.2 Post-processing as a decision-making sequence

이 부분은 Post-processing이 어떻게 강화 학습의 문제인 decision-making sequence으로 정의되는지 설명합니다. 논문에서는 State s는 이미지공간으로 Action a는 set of all filter operations으로, transition function은 (s_i+1 = p(s_i , a_i))으로 reward function은 WGAN GP에 negative loss 부분만을 사용하였습니다. γ ∈ [0, 1]의 a discount factor 또한 들어가고요. 이렇게 강화학습의 MDP 5요소를 정의하고 stochastic policy agent를 이용하여 최적의 policy를 학습합니다. 관련한 수식은 아래와 같습니다.

누적 보상의 합
목표함수 정책에 대한 누적 보상이 최대가 되는 것이 목표이다.
상태가치 함수 V와 행동 가치 함수 Q

여기서 action a는 두 가지로 나뉠 수 있습니다 - 어떤 필터를 선택할지에 대한 dicrete한 선택 a_1 그리고 어느 정도 효과를 줄지에 대한 continuous한 선택 a_2. 따라서 policy 또한 π = (π1, π2) 이렇게 두가지로 표현될 수 있죠. 또한 논문에서는 '''Note that π1 is stochastic and requires sampling. Since there are practical challenges in sampling a continuous random variable, we follow recent practices by treating π2 deterministically, as described in section 5.2.''' 이렇게 말합니다. (설명하기 어려워 그대로 가져왔습니다.)


  • 4. FILTER DESIGN

4.1 Design Principles (Differentiable, Resolution-independent, Understandable)

이 장에서는 어떤 콘셉트로 Filter design을 진행했는지 말합니다. 여기서 filter란 어떤 특정 효과를 주는 것을 말합니다. 논문에서는 filter를 CNN으로 구현하지는 않고 미분 가능한 선형 함수로 표현하였습니다. 또한 Resolution-independent 하게 디자인 했습니다. Resolution-independent하게 디자인했기 때문에 아래와 같이 low-res input으로 학습을 했더라도 high-res input이 들어왔을 때도 잘 처리되게 학습할 수 있다고 말합니다. 그리고 모든 filter는 무엇을 의미하는지 직관적으로 알 수 있게, Understandable 하게 디자인되었다고 말합니다.

 Resolution-independent

4.2 Filter Details

논문에서는 선형으로 표현되지 않는 Curve로 표현되는 filter들은 piecewise-linear functions로 근사했다고 합니다. 수식은 아래와 같고 그림으로도 그 아래는 그림같이 표현되는 것을 알 수 있습니다.

piecewise-linear functions


 

  • 5. Learning

5장에서는 전체적인 학습 구조에 대해서 설명합니다.

 

5.1 Function approximation using DNNs

먼저 모든 네트워크 구조는 CNN으로 이루어져 있으며 두 개의 policy network θ = (θ1, θ2)와 적대적 학습에 쓰이는 discriminator network 그리고 policy network 업데이트를 위한 가치 평가 network까지 총 4가지 네트워크는 모두 같은 구조로 이루어져 있고, 어떤 필터를 얼마큼의 정도로 사용할지를 결정하는 π2 네트워크는 각 필터 별로 있는 것이 아니라 하나의 네트워크가 그 파라미터를 공유합니다.

네트워크 구조

여기서 각 네트워크마다 필요한 정보를 E채널과 같이 extra channel로 더해주어 처리합니다. discriminator network에는 average luminance, contrast 그리고 saturation을 추가해주고 policy와 value network 에는 어떤 필터를 사용하는지에 대한 boolean 채널과 몇 번째 step인지에 대한 정보를 추가해준다고 합니다. 이렇게 하면 전체적인 구조는 같으면서 입력을 구분할 수 있죠. 그리고 마지막 레이어는 학습과 테스트 시 모두 drop out을 사용합니다.

 

5.2 Policy network training

정책 신경망 업데이트에서는 두 가지 네트워크 θ1, θ2가 있습니다. 어떤 필터를 쓸지, 선택한 필터를 어느 정도로 쓸지 말이죠. 첫 번째 신경망 θ1은 discrete 한 분포이기 때문에 미분을 계산하기 어렵다고 말합니다. 논문에서는 policy gradient theorem [Sutton et al. 2000]을 인용하며 gradient를 예측했다고 말합니다. 전체적인 프레임워크는 actor-critic 알고리즘 구조를 가지고 있습니다. 

 

두 번째 신경망 θ2은 연속적인 공간에서 나타내 지기 때문에 비교적 쉽게 최적화를 진행할 수 있다고 말합니다. e deterministic policy gradient theorem [Silver et al. 2014]를 언급하며 아래처럼 gradient 수식을 나타냅니다.

또한 수식에 나온 ρ_π 는 the discounted state distribution을 뜻한다고 하는데 잘 모르겠네요..

θ2 gradient를 계산할 때 쓰이는 가치 평가 신경망 Q에 대한 수식을 보여줍니다.

또한 가치 평가 신경망은 아래와 같은 수식을 통해 업데이트되죠. 여기서 δ는 temporal difference (TD) error를 나타냅니다. 또한 Monte Carlo estimate of the advantage A(s, a) = Q(s, a)−V(s)도 나타낸다고 합니다. 하지만 π2는 Monte Carlo estimation이 필요하지 않아 위와 표현돼있다고 하는 거 같은데 정확히 설명하기는 제 수준에서 어렵네요.. 

또한 discount factor는 γ = 1로 그리고 5번의 edit으로 agent가 최종 결과를 낼 수 있도록 고정했다고 말합니다. 

전체적인 알고리즘은 아래와 같습니다.

 

학습 알고리즘

5.3 Quality evaluation via adversarial learning

adversarial learning은 GAN의 학습 콘셉트를 가져온 것입니다. agent는 discriminator를 속이도록 학습하는 것이죠. 하지만 적대적으로 discriminator는 agent가 만들어낸 결과와 실제 결과에 대한 차이를 최대화하는 방식으로 학습하게 됩니다. 이것을 WGAN-GP Loss, 또는 Earth Mover’s Distance(EMD)라고 합니다. 

discriminator Loss

이 discriminator의 성질을 이용하여 reward를 구성하는데요. generator(agent)가 만든 결과만 가지고 그 스코어를 계산하는 것입니다. 이는 discriminator가 실제 목표 이미지를 받았을 때 큰 값을 출력하기 때문에 만약 actor(policy) network가 실제와 같이 만들었으면 역시 큰 값을 가지게 될 것입니다. 이런 메커니즘을 통해 “negative loss” (quality score)를 사용하여 actor (generator)가 discriminator에 대해 큰 값을 받을 수 있도록 학습합니다.

이렇게 봐서는 의도는 이해되는데 수식적으로 와닿지는 않는 거 같습니다. -L_actor가 reward로써 작용한다는데, 현재 상태가 진짜 같다면 -로 큰, 즉 작은 값을 가지게 되는 것이고 가짜 같다면 큰 값을 가지게 되는 것인데 이 차이를 이용해야 되는 거 아닌가 싶습니다.

 

5.4 Training strategies

학습 기법에서는 먼저 overfitting 되는 것을 막고 exploration를 위해 reward에 entropy를 이용하여 필터를 선택하는 distribution F의 reward가 감소하게 하였습니다. 수식으로는 아래와 같습니다. 또한 같은 필터를 두 번 연속 사용하는 것은 한번 정확한 값으로 사용할 수 있는 것이기 때문에 이에 대한 페널티도 주었다고 말합니다.

그리고 DQN에서와 같이 replay buffer를 이용하여 sample 간 correlation을 없애고 학습을 안정화하였습니다.


 

  • 6.RESULTS

Implementation details은 옮겨 적는 것뿐이라 생략하겠습니다. 논문 참고 부탁드립니다.

 

Error Metrics에 대해서는 기존 L1, L2 같은 pixel-wise Loss의 문제를 지적합니다. 이 Loss들은 이미지의 품질을 평가하는데 적절하지 않다고 말합니다. 따라서 논문에서는 luminance, contrast, saturation 이 세 가지 요소들을 이용해서 평가했다고 합니다.

 

6.1 End-to-end Post-Processing and Style Learning

다음으로는 결과입니다. 왼쪽 사진을 보면 expert와 pix2 pix가 더 잘 만들어 내는 것을 확인할 수 있습니다. 하지만 pix2 pix는 paired image에 대한 학습 네트워크이고 오른쪽 사진과 같이 distortion이 있음을 지적합니다. 그에 비해 제안된 모델의 결과는 distortion이 없다고 말하죠.


또한 유저 스터디와 본 논문에서 제안한 평가지표로는 제안된 모델이 가장 좋은 성능을 보입니다.


논문에 결과 사진이 굉장히 많은데 보시는 것을 추천드립니다.

그리고 아래와 같이 순차적으로 사진이 보정되는 과정 또한 볼 수 있죠 좌, 우는 서로 다른 사진작가의 스타일을 나타냅니다.


6.2 Reverse Engineering Black-box Filters

논문에서는 제안된 모델의 또 하나의 장점을 설명하는데요. 바로 block box로 된 필터 또한 설명 가능하게 풀 수 있다는 것입니다. 이는 이미 고안되었지만 어떻게 만들어내는지는 모르는 효과에 대해서 학습하면 그 순서를 풀어서 제안된 모델이 설명할 수 있다는 점을 착안한 것이죠.

6.3 Comparison with human users

또한 GUI까지 구현하여 사람에게 도움을 줄 수 있음도 말합니다.


7 CONCLUDING REMARKS

마지막으로 future works로 더 큰 데이터셋에 대한 학습, 그리고 knowledge distillation에 대한 부분을 언급하고, 또 다른 발전된 방식의 알고리즘을 통해 해당 방법론의 성능이 좋아질 수 있음을 언급하고 논문은 끝이 납니다.


강화 학습을 이용한 이미지 후처리 논문이었습니다.

쓰면서 느끼는 거지만 엉망인 리뷰라.. 누가 읽을까 겁나지만 우선 올려봅니다..

 

개인적으로 강화 학습을 이용한 이미지 논문은 "설명 가능" 또는 "순차적으로 확인 가능"을 장점으로 내세우는 거 같고,

따라서 사람에게 적용될 수 있음을 더 어필하는 거 같네요.

 

개인적으로 강화 학습이 사람보다 바둑을 잘 두는 것처럼. 문제가 더 잘 정의되면 supervised learning보다 더 잘 기능할 수 있는 부분을 보고 싶은데, 더 많이 찾아보아야겠습니다.