Processing math: 100%
본문 바로가기
논문 리뷰/Reinforcement Learning

Deep Reinforcement Learning from Human Preference

by 박사개구리 2024. 11. 10.

0. Abstract

  • 본 논문에서 제안하는 것 → 한쌍의 trajectory segment 사이에서 (비 전문가) 사람의 선호에 따라 학습의 목표를 정의
    • 이런 접근을 통해 보상함수에 대한 접근 없이 복잡한 강화학습 문제 (e.g. Atari, simulated robot locomotion)를 효과적으로 풀 수 있음
  • 환경과 상호작용하는 것에 비해 1%도 안되는 피드백만으로 에이전트 학습 가능
    • 사람의 감독에 따른 비용이 크게 감소하기 때문에 SOTA 강화학습 시스템에 실용적으로 적용이 가능
    • 기존의 사람 피드백을 통해 학습하던 기법들에 비해 더욱 복잡하고 새로운 행동을 1시간 안에 성공적으로 학습

1. Introduction

  • 최근 강화학습은 보상함수가 잘 정의된 도메인의 다양한 문제에서 좋은 성능을 보임
    • 하지만 실생활의 많은 문제들에서 목표는 복잡하고 부실하게 정의되며 구체화하기 어려움
    • 이 한계를 극복하면 강화학습의 효과를 크게 확장 가능!
  • 예를 들어 강화학습을 통해 테이블을 치우고 계란 후라이를 만들도록 에이전트를 학습시키기를 원한다고 가정해보자
    • 이 경우 적절한 보상함수를 구성하는 것이 어려우며 만약 의도를 근사할 수 있는 보상함수를 디자인한다고 해도 이 보상을 최적화하는 것이 사람의 선호를 실제적으로 만족시킨다고 보장할 수 없음
    • 위의 내용에 대한 보충을 위해 개인적으로 추가한 예시: 아래와 같이 비둘기가 잘 날도록 보상함수를 설정하는 경우 날아간다는 목적을 달성해도 그것이 우리가 의도한 날개를 움직여서 날아가는 것과 다를 수 있음
  • 만약 사람이 에이전트와 실제 목표에 대해서 성공적으로 의사소통 할 수 있으면 위와 같은 문제의 해결에 큰 도움이 될 수 있음!
  • 기존 기법 (IRL, IL)
    • 만약 우리가 문제에 대해 사람의 데모 데이터를 가지고 있으면 역강화학습 (Inverse Reinforcement Learning, IRL)을 통해 보상함수를 도출하고 이 보상함수를 통해 강화학습 에이전트를 학습하는 것이 가능
    • 혹은 더 직접적으로 모방학습 (Imitation Learning, IL)을 이용하여 사람의 데모 데이터를 모방하도록 학습할 수 있음
    • 하지만 이런 기능들은 사람이 직접 데모하기 어려운 행동을 가지는 환경에 대해서는 직접적인 적용이 어려움 (ex. 높은 자유도를 가지는 로봇팔은 사람이 직접 제어하기 어려움)
  • 기존 기법 (feedback)
    • 시스템의 현재 행동에 대해 사람이 피드백을 제공하고 해당 피드백을 통해 문제 정의
    • 그러나 강화학습 시스템에 대해 사람의 피드백을 직접 보상으로 사용하는 것은 너무 많은 비용이 필요 (수백 ~ 수천 시간에 대한 경험 데이터가 필요)
    • 사람의 피드백으로 심층 강화학습 (Deep Reinforcement Learning, DRL) 시스템을 학습하기 위해서는 요구되는 피드백의 양을 줄이는 것이 필수적!
  • 본 논문이 제안하는 기법
    • 사람의 피드백으로부터 보상함수를 학습하고 해당 보상함수를 통해 최적화를 수행
    • 잘 정의된 보상 함수 없이 순차적 결정 문제에 대한 해결을 위해 다음과 같은 특징을 가지는 기법 제안
      • 원하는 행동에 대한 데모 없이 원하는 행동을 “인지”할 수만 있으면 문제를 푸는것이 가능
      • 비전문가에 의해서도 학습 가능
      • 큰 규모의 문제에도 적용 가능
      • 사람의 피드백을 절약
    • 본 논문의 알고리즘은 사람의 선호에 대한 보상함수를 피팅 → 동시에 현재 예측된 보상함수에 대해 강화학습 에이전트의 정책을 최적화 (Figure 1 참고)
    • 에이전트의 행동에 대한 짧은 비디오를 사람에게 보여주고 이를 비교하도록 함 → 일부 도메인에서는 절대적인 점수를 결정하는 것 보다 비교가 더 쉬울 수 있기 때문에 이런 방식을 사용 → 이런 비교를 통한 방식은 사람의 선호를 통해서 학습하는 것과 동일하게 유효
    • 본 논문의 실험은 2개의 도메인에서 수행 → Atari, Mujoco

      • 실험을 통해 적은 양의 비전문가 사람 피드백 (15분 - 5시간)을 사용하여 보상 함수가 관측되지 않는 경우에도 대부분의 기존 강화학습 문제를 학습하는데 충분하다는 것을 보임
      • Backflip 같은 새로운 행동에 대한 학습도 가능하다는 것을 보임

2. Preliminaries and Method

2.1. Setting and Goal

  • 에이전트가 여러 스텝의 시퀀스 동안 환경과 상호작용 → 각 시간 t에서 환경으로 부터 관측 otO을 받고 환경에 행동 atA를 보냄
  • 전통적인 강화학습에서는 환경이 보상 rtR을 제공하고 에이전트의 목표는 감가된 보상들의 합을 최대화하는 것이었음
  • 이렇게 환경이 제공하는 보상 대신 본 논문에서는 사람이 trajectory segment 사이의 선호를 통해 학습하는 방식을 제안
    • 여기서 trajectory segment는 관측과 행동의 시퀀스를 의미 → σ=((o0,a0),(o1,a1),...,(ok1,ak1))(O×A)k
    • σ1σ2는 사람이 trajectory segment σ1을 trajectory segment σ2보다 선호하는 것을 나타냄
  • 에이전트의 목표 → 사람에 대해 최대한 적은 양의 쿼리를 생성하면서 사람이 선호하는 trajectory를 생성
  • 제안된 알고리즘은 다음의 두가지 방식을 통해 평가
    • 정량적 평가
      • 선호는 다음과 같이 보상함수 r:O×AR에 의해 생성된다고 할 수 있음
      • 만약 사람의 선호가 보상함수 r에 의해 생성된다면 에이전트는 r에 따라 높은 보상함수를 받도록 학습할 것
      • 우리는 보상함수를 알고 있으므로 에이전트를 이와 같이 정량적으로 평가할 수 있음
    • 정성적 평가
      • 때로는 행동을 정량적으로 평가할 수 있는 보상함수가 없는 경우가 발생 (본 논문의 기법이 실제적으로 유용한 상황)
      • 이 경우 에이전트가 얼마나 사람의 선호를 잘 만족하는지 정성적으로 평가할 수 밖에 없음
      • 본 논문에서는 사람에게 해당 문제의 목표를 자연어 형태로 알려주고 에이전트의 행동이 해당 목표를 얼마나 잘 달성하는지 정성적으로 평가하도록 함

 

2.2. Our Method

  • 매 시점 본 논문의 기법은 심층인공신경망으로 파라미터화 된 정책 π:OA와 보상 함수 추정기 ˆr:O×AR 사용
  • 해당 네트워크들은 다음의 3 단계를 통해 업데이트
    1. 정책 π가 환경과 상호작용하면서 trajectory의 세트 {τ1,...,τi}를 생성 → π의 파라미터들은 기존의 강화학습 알고리즘에 의해 업데이트 → 예측된 보상의 합을 최대화 → rt=ˆr(ot,at)
    2. 위의 과정1에서 생성된 trajectories {τ1,...,τi}로부터 segment의 쌍 (σ1,σ2)을 선택하고 비교를 위해 사람에게 보냄
    3. ˆr의 파라미터들은 현재까지 사람에 의해서 수집된 비교 결과들을 잘 피팅하도록 지도학습을 통해 최적화 됨
  • 위의 과정들은 비동기적 (asynchronously)으로 진행됨
    • Trajectory들이 과정 1에서 과정 2로, 사람의 비교 결과가 과정 2에서 과정 3으로, ˆr의 파라미터가 과정 3에서 과정1로 전달

2.2.1. Optimizing the Policy

  • ˆr을 통해 보상이 계산되면, 전통적인 강화학습과 동일하게 진행
  • ˆr이 non-stationary일 수 있으므로 보상의 변화에 강인한 강화학습 알고리즘에 대한 사용이 필요함
  • 이에 따라 Policy Gradient (PG) 기반 강화학습 기법 사용
    • Atari 환경에 대해서는 Advantage Actor-Critic (A2C) 알고리즘 사용
    • Mujoco 환경에 대해서는 Trust Region Policy Optimization (TRPO) 알고리즘 사용
  • 각각의 경우에 대해 파라미터 세팅은 기존 강화학습 문제를 잘 풀었을 때 사용한 파라미터를 그대로 사용
    • 오직 TRPO의 entropy bonus에 대해서만 변경 → TRPO는 적절한 탐험을 보상하기 위해 trust region을 사용하는데 보상 함수가 변하는 경우 부적절한 탐험으로 이끌 수 있기 때문
  • ˆr에 의해 생성된 보상을 정규화 (normalization) 수행 → 평균 = 0, constant 표준 편차

2.2.2. Preference Elicitation

  • 사람 감독자에게는 두개의 trajectory segment가 1~2초 정도의 짧은 비디오 형태로 시각화되어 보여짐
  • 사람은 선호하는 segment를 선택하거나 두 segment가 동일하게 좋음, 두 segment를 비교할 수 없음 중 하나를 선택
  • 사람의 판단은 데이터베이스 D(σ1,σ2,μ)의 형태로 저장
    • σ1,σ2는 두 segment를, μ는 유저가 어떤 segment를 더 선호했는지에 대한 분포를 나타냄
    • 만약 사람이 하나의 segment를 더 선호한다고 선택했으면 μ는 해당 선택으로 분포의 모든 비중을 가져감 (원문: put all its mass on that choice)
    • 만약 사람이 두 segment가 동일하게 선호된다고 선택하면 μ는 균등 분포로 사용
    • 마지막으로 사람이 두 segment가 비교 불가능하다고 판단하면 해당 비교는 데이터베이스에 추가하지 않음

2.2.3. Fitting the Reward Function

  • 보상 함수 추정기 ˆr은 선호도 예측기로 생각할 수 있음
    • 영상 클립의 길이에 대한 latent reward (ˆr)의 합을 이용하여 segment 1에 대한 선호를 확률로 나타낸 결과
    • ˆr이 예측과 실제 사람의 라벨 사이의 cross-entropy 손실함수를 최소화 하도록 학습
  • 실제 알고리즘은 위와 같은 기본적인 접근 방식에 몇가지 변경을 수행하였음 → 도움이 되는 몇가지 실험들과 이에 대한 분석은 섹션 3.3에서 진행
    • 예측기들의 앙상블을 사용 → 각각을 전체 데이터셋 D에서 샘플링 한 |D|를 통해 학습 → 예측 ˆr은 각 예측기들을 독립적으로 정규화하고 해당 결과들을 평균하여 정의
    • 데이터의 1/e는 각 예측기의 검증셋으로 사용 → l2 regularization을 사용하고 regularization의 계수를 조절하여 검증 손실함수 값이 학습 손실함수 값의 1.1 ~ 1.5배가 되도록 설정 → 특정 도메인에서는 regularization을 위해 dropout 적용
    • 식 1과 같이 직접적으로 softmax를 적용하기 보다는 사람의 응답이 10% 정도는 랜덤하다는 가정을 추가 → 사람의 경우 일정 확률로 실수를 할 수 있기 때문

2.2.4. Selecting Queries

  • 보상 함수 추정기의 불확실성에 대한 근사에 기반하여 선호의 쿼리를 결정
  • k의 길이를 가지는 trajectory segment의 쌍을 많이 샘플하고 앙상블의 각 보상 예측기를 사용하여 각 쌍에서 어떤 segment가 선호되는지 예측
  • 그리고 앙상블을 통해 도출된 결과들 중 가장 높은 분산을 도출한 예측을 trajectory로 선택

3. Experimental Results

  • Tensorflow를 통해 알고리즘 구현, OpenAI Gym의 Mujoco와 Arcade Learning 환경 (Atari) 사용

3.1. Reinforcement Learning Tasks with Unobserved Rewards

  • 실험의 첫번째 세트 → 실제 보상을 관측하지 않고 두 trajectory segment에 대한 사람의 선호를 통해 정의된 목표만을 이용하여 학습
  • 목표! → 가능한 양의 쿼리를 사용하여 납득할만한 시간 안에 문제를 푸는 것!
  • 실험자의 실험 조건
    • 피드백을 제공하는 실험자에게 각 문제에 대한 1-2 문장의 설명을 제공하고 해당 문제에 대한 몇백에서 몇천개의 trajectory segment 비교를 요청
    • 실험자는 각 쿼리에 대해 평균적으로 3-5초 정도의 시간 안에 응답했으며 실제 사람 피드백에 대한 실험은 30분 ~ 5시간 정도가 수행되었음
  • 대조군
    • synthetic oracle
      • 비교를 위해 해당 문제에서 제공하는 보상을 정확하게 반영하는 trajectory에 대한 선호를 나타내는 synthetic oracle을 사용한 실험을 수행
      • 에이전트에게 비교 대상이 주어졌을 때 사람에게 쿼리를 보내는 대신 실제로 환경에서 제공하는 보상을 더 높게 받는 trajectory를 선택
    • 실제 보상을 사용한 강화학습의 기본 알고리즘도 비교 대상으로 사용
  • 제안한 알고리즘의 목표는 강화학습의 성능을 뛰어 넘는 것이 아니라 보상에 대한 정보를 사용하지 않고 훨씬 적은 사람 피드백만을 통해서 유사한 성능을 달성하는 것!
  • 하지만 사람의 피드백이 더 잘 정제된 보상을 제공할 가능성이 있으므로 실제 사람을 통한 피드백으로 학습한 에이전트가 강화학습의 성능을 뛰어넘을수도 있음!

3.1.1. Simulated Robotics

  • Mujoco에 구현된 8개의 시뮬레이션 로봇 문제를 통해 검증 수행
  • Figure 2는 사람 평가자로 수집한 700개의 쿼리를 통해 학습한 에이전트의 결과와 350, 700, 1400개의 synthetic queries로 학습된 결과, 마지막으로 실제 보상을 통한 강화학습 알고리즘의 결과를 비교
  • 700개의 라벨로 학습된 보상 함수를 통한 학습이 조금 더 불안정하고 높은 분산을 보이긴 하지만 평균 성능의 경우 강화학습과 거의 유사함
  • 놀랍게도 1400 라벨을 이용한 결과는 (synthetic queries 인듯?) 실제 보상을 받은 경우 보다 더 잘 수행 → 보상 학습 과정은 모든 행동에 대해 양의 보상을 할당하므로 학습된 보상함수가 약간 더 나은 형태인 것이 좋은 성능의 원인으로 생각됨
  • 실제 사람 피드백은 synthetic 피드백에 의해 약간 낮은 성능을 보임 → Ant 문제의 경우 synthetic 피드백보다 사람 피드백이 더 좋은 성능을 보임

3.1.2. Atari

  • 두번째 검증 환경은 7개의 Atari 게임
  • Figure 3은 사람 평가자에 의해 수집된 5500개의 쿼리로 학습한 에이전트의 결과를 보여줌 → 3300, 5600, 10000 synthetic 쿼리로 학습한 결과와 비교
    • Beamrider와 Pong에서는 synthetic 라벨이 3.3k 라벨만으로도 강화학습과 유사한 성능을 보임
    • Seaquest와 Qbert에서는 synthetic 피드백이 강화학습과 유사한 수준으로 학습하지만 학습 속도가 느림
    • SpaceInvader와 Breakout에서는 synthetic 피드백이 강화학습에 비해서 좋지 못한 결과를 보임
  • 대부분의 게임에서 사람의 피드백으로 학습한 에이전트는 synthetic 피드백과 비교했을 때 유사하거나 약간 나쁜 성능을 보임
  • 사람 피드백 기반 에이전트의 성능이 낮은 이유
    • 라벨링 과정에서 발생하는 실수, 다른 실험자에 의해 같은 실행에 대해서 라벨링이 불일치, 고르지 못한 라벨링 비율 (상태 공간의 아주 좁은 영역에 대해서 과도하게 집중하게 만듬)
  • Qbert에서 제안된 기법은 사람 피드백 기반으로 첫번째 단계도 풀지 못함
    • Qbert에서는 짧은 클립만으로는 평가하기 어려움
  • Enduro에서는 A3C의 랜덤한 탐험만으로 에이전트가 다른 차를 성공적으로 지나쳐가도록 학습하는 것이 어려움 → 이에 따라 synthetic 피드백에 대해서도 동일하게 학습이 어렵지만 사람에 의해 라벨링 된 경우 다른 차들을 지나는 것에 대해 보상을 줄 수 있으므로 A3C보다 사람 피드백 기반의 에이전트가 좋은 성능을 보임

3.2. Novel Behaviors

  • 지금까지는 기존에 강화학습에서 사용된 문제들을 통해 제안된 알고리즘의 효과를 확인 → 하지만 사람과의 상호작용에 대한 궁극적인 목적은 보상함수가 제공되지 않는 문제를 푸는 것!
  • 이에 따라 기존 실험과 동일한 파라미터를 사용하여 새롭고 복잡한 행동을 제안된 알고리즘으로 학습
    • Hopper가 backflip을 하도록 학습 (Figure 4 참고) → 한 시간 이하로 수집한 900개의 쿼리를 사용하여 학습 → 에이전트는 backflip, 착지를 반복 수행
    • Half-cheetah에서 한 발을 들고 앞으로 이동하도록 학습 → 한 시간 안에 수집된 800개의 쿼리로 학습
    • Enduro에서 다른 차량과 나란히 달리도록 학습 → 1300개의 쿼리와 4백만 프레임 동안 환경과 상호작용
  • 결과 영상: https://drive.google.com/drive/folders/0BwcFziBYuA8RM2NTdllSNVNTWTg?pli=1

3.3. Ablation Studies

  • 제안된 알고리즘의 성능을 더 잘 이해하기 위해 몇가지 변경 수행
    1. 쿼리를 불확실성에 우선적으로 선택하는 것이 아니라 랜덤하게 샘플링 (random queries)
    2. 앙상블 대신 하나의 예측기만 학습 (no ensemble) → 해당 세팅에서도 쿼리는 랜덤하게 선택
    3. 학습 초반에만 쿼리를 수집하고 학습 진행하는 동안에는 수집하지 않음 (no online queries)
    4. l2 regularization을 제거하고 오직 dropout만 사용 (no regularization)
    5. 로봇 문제에만 trajectory segment의 길이를 1로 사용 (no segment)
    6. 비교를 통해 ˆr을 피팅하는 대신 trajectory segment에 대해 실제 보상을 제공하는 oracle을 사용 → ˆr을 mean squared error를 사용하여 전체 보상에 피팅 (target)
  • Figure 5의 경우 Mujoco, Figure 6의 경우 Atari에서의 ablation study 결과를 보여줌
  • 오프라인 보상 예측기 학습 (no online queries)
    • 오프라인으로 학습하는 경우 나쁜 성능을 보임 → non-stationarity 때문
    • 예측기가 실제 보상의 일부만 파악하므로 이런 부분적인 보상만을 학습하면 원치 않는 이상한 행동을 하도록 학습할 수 있음 (e.g. Pong 환경에서 점수를 얻는 방향이 아니라 점수를 잃지 않는 방향으로만 학습해서 동일한 이벤트의 시퀀스만을 반복하며 계속 동일하게 공을 받아치기만 함)
    • 이를 통해 사람의 피드백이 정적으로 제공되는 대신 강화학습과 지속적으로 상호작용이 발생해야 한다는 것을 알 수 있음
  • 비교 대신 절대적인 점수를 제공 (target)
    • 절대적인 점수 대신 보상을 제공한 주된 이유는 지속적으로 절대적인 점수를 제공하는 것 보다 지속적인 비교를 제공하는 것이 쉽기 때문 → 점수를 제공하는 것은 복잡한 회귀 문제와 같이 보상의 스케일이 너무 다양함
    • 특히 연속적인 행동 문제에서는 비교를 예측하는 것이 점수를 예측하는 것에 비해 훨씬 잘 동작함
  • Clip 대신 단일 프레임 사용 (no segment)
    • 많은 성능 차이가 발생 → 단일 프레임으로 유사한 결과를 얻기 위해서는 훨씬 더 많은 양의 비교 데이터 수집 필요
    • 그럼 어느정도 길이의 클립이 좋을까?
      • 짧은 클립에 대해서는 사람이 해당 상황을 이해하기 까지 많은 시간이 걸릴 수 있음
      • 긴 클립의 경우 클립의 길이에 평가 시간이 선형적으로 비례하여 길어짐
      • 이에 따라 평가 시간이 선형적일 때의 가장 짧은 시간으로 선택
    • Atari 환경에서는 때로 긴 클립을 사용하여 비교하는 것이 더 쉽다는 것을 확인 → 상황에 대한 더 많은 정보를 제공하기 때문

4. Discussion and Conclusions

  • 에이전트-환경의 상호작용은 사람의 상호작용에 비해 더 적은 비용이 요구됨
  • 본 논문에서는 지도 학습을 통해 학습하는 분리된 보상 모델을 사용하여 상호작용에 대한 복잡도를 감소시킴
  • 사람의 선호를 통해 심층 강화학습 모델을 의미있게 학습할 수 있을 뿐 아니라 비전문가 피드백을 사용한 비용을 감소시킴
  • 기존에도 선호를 기반으로 한 보상 함수를 사용하여 강화학습을 수행한 많은 연구들이 있었지만 본 논문의 기법은 처음으로 이런 기법이 SOTA 강화학습 기법들만큼의 성능을 경제적으로 달성할 수 있음을 보임 → 강화학습이 실생활의 문제들에 적용될 수 있는 결과

  • Future work
    • 사람 선호를 통한 학습의 효율성 개선 → 적용할 수 있는 문제의 범위 확대
    • 장기적으로는 인간의 선호를 사용하여 문제를 학습하는 것이 프로그래밍 방식의 보상에 따라 학습하는 것 보다 어렵지 않도록 해야함 → 이렇게 되면 복잡도가 낮은 문제가 아닌 복잡한 인간의 가치를 학습하는 강력한 강화학습 시스템을 적용할 수 있음