본문 바로가기
Reinforcement Learning/Object Localization

Active Object Localization with Deep Reinforcement Learning 리뷰

by khslab 2023. 1. 10.

지난학기에 강화학습 수업을 듣고 강화학습이

내분야에 어떻게 쓰이는지 다른 논문을 통해 읽은적이 있었다.

이 논문처럼 강화학습도 컴퓨터 비전 분야에 충분히 적용할 수 있는 카드라 생각한다.

 

ICCV'15

https://arxiv.org/abs/1511.06015

 

Active Object Localization with Deep Reinforcement Learning

We present an active detection model for localizing objects in scenes. The model is class-specific and allows an agent to focus attention on candidate regions for identifying the correct location of a target object. This agent learns to deform a bounding b

arxiv.org


이 논문은 강화학습 알고리즘 DQN을 사용하여

Object의 bounding box를 추정하는 논문이다.

box는 top-down 방식으로 추정을 한다.

즉, 전체적인 이미지를 분석해서 점진적으로

object의 location 범위를 좁혀 나가는 것이다.

 

위 과정을 다음 그림처럼 강화학습의 agent를 사용하여 진행할 수 있다.

이 방법은 한때 유행하던 sliding windows 방법과 다르게

object를 찾기 위해 fixed path를 따라 찾아가지 않는다.

즉, 실제 객체가 있는 location을 향해 box를 찾아간다는 것이다.

 

또 bounding box regression 알고리즘과 다르게 이 방법은

구조화된 예측 method 하나를 따라가며 localize하는것이 아니다.

dynamic attention-action strategy로 현재 지역에서 contents가 있는 곳에

집중하는 방법이다.

 

이 방식은 DQN 알고리즘을 기반으로 만들어 졌고, 약 11 step만에 객체를 localization할 수 있다.


일단 object localization 문제를 Markov decision process(MDP)로 정의해야 한다.

먼저 하나의 이미지를 environment라고 설정한다.

agent는 environment에서 tight한 box를 찾는것이 목적이다.

그리고 action을 취하며 positive, negative reward를 받으며 학습한다.

action을 A, state를 S, reward를 R로 정의한다.


Localization Actions

 

action은 다음 8가지 행동으로 정의한다.

box 표현은 각 코너의 좌표로 정의한다.

b 조정은 다음과 같이 α를 조정하여 정한다.

α는 0~1 값으로 설정하는데 저자들은 α=0.2로 했다고 한다.

αw와 αh를 조정하여 x,y 좌표를 변경한다.

 

마지막으로 box가 알맞게 localize했다면

더이상 transforms를 적용하지 않는데 이것을 trigger라고 한다.

trigger는 current search를 종료하고 처음으로 돌아가서 새로운 ojbect를 찾기 시작한다.trigger도 environment를 수정하는데 trigger가 발생하면environment에 다음 예 처럼 검은색 + 모양을 그린다.

중간 중간에 검은색 +를 볼 수 있다.

 이 방식으로 이미 찾은 object를 다시 찾는것을 억제한다.


State

 

state S는 (o, h) 처럼 튜플로 나타낸다.

o는 관측된 region의 feature vector

h는 taken action의 history vecctor다.

 

feature vector o는 original box를 둘러싼 16 pixels을 포함하는 region이다.

이것은 layer 6(fc6)까지 forward하고 4096 dimension feature vector로 이를 표현한다.

history vector h는 binary vector로 과거에 사용된 action을 저장한다.

h는 9-dimension binary vector로 표현되고 각 action에 해당하는것이 1이다. (나머지 0)

그리고 총 10개의 past action을 저장하므로 h는 다음과 같다.


Reward Function

 

reward function R은 agent가 localization하며 개선된 비율을 나타낸다.

이것은 Ground truth와 IoU를 통해 계산된다.

간단하게 IoU는 다음과 같다.

그리고 Reward fucntion은 다음과 같이 계산한다.

s'는 s에서 action을 취하고 난 다음 상태다.

sign함수기 때문에 -1에서 +1 값을 가진다.

 

trigger 상태는 다른 reward scheme을 가진다.

왜냐하면 trigger의 box는 s와 s'가 같기 때문에 항상 0이 나오기 때문이다.

η을 trigger reward라 하고 3.0으로 했다고 한다.

τ는 IoU threshold인데 0.6으로 설정했다고 한다.

 

이렇게 기본적인 세팅을 완료하였다.


Qnetwork의 구조는 다음과 같다.

이미지 해상도는 224x224로 고정하고 pre-trained backbone을 사용한다.


agent의 목적은 한 에피소드에서 environment와 여러 상호작용을 하며

action을 취하고 reward를 얻으며 bounding box 선택법을 학습한다.

core problem은 agent가 결정을 내리는 policy를 학습하는 것이다.

policy funcion은 다음과 같다.

core problem을 DQN을 통해서 달성하는데

먼저 Q-net의 output은 모든 가능한 action의 확률이다.

(trigger 포함)

DQN 알고리즘은 replay-memory를 포함하는데

이것은 다양한 experience를 선택하기 위함이다.

그리고 이 replay-memory에서 transition을 선택하여 모델을 업데이트 한다.

이렇게 최종적인 Q-function을 얻게 되는 것이다.

Q-function(action-value function)을 통해 최적의 action을 선택하게 된다.


앞서 말한대로 모델은 pre-trained된 CNN을 사용한다.

pre-trained된 CNN을 사용하는 이유는

1. 학습 속도가 빨라지고

2. 더 큰 데이터 셋으로 학습했기 때문에

generic discriminative feature을 완화시킬 수 있기 때문이다.


DQN 파라미터는 처음에 랜덤으로 초기화 됐다가

학습하면서 파라미터가 정해진다.

이때 policy는 ε-greedy 방식으로 진행된다.

ε에 따라 exploration/exploitation 학습이 진행된다.

간단하게 확률적으로 최적의 action이 아닌 랜덤 action을 취하며

학습을 하게 된다는 것이다.

(자세한 DQN 및 강화학습 알고리즘은 추가 학습을 하기 바란다.)

 

epoch는 15만큼 진행되고 ε는 5 epoch동안 1.0에서 0.1로 선형적으로 줄어든다.

 

이미지 task다 보니 우리는 agent의 종결을 알 수 없으므로 step의 최대 수를 정해주었다.

일단 200 step을 준 다음 trigger가 발생하거나 trigger 없이 40 step만큼 진행된다면 restart 한다고 한다.


이 논문은 강화학습 알고리즘 DQN을 사용하여 object localization을 수행한 논문이다.

일반적인 딥러닝 모델과 달리 강화학습 알고리즘을 사용하면

다소 직관적으로 task 진행을 확인할 수 있다는 것을 알 수 있다.

(Q-network에서 각 행동을 할 확률을 출력하므로)

향후 연구에서 최근 고도화되는 컴퓨터비전 기술에 따라

Reinforcement 알고리즘까지 적용해보는것도 필요하다 생각한다.