본문 바로가기
Machine Learning/논문 리뷰

[RLHF] Deep Reinforcement Learning from Human Preference 논문 리뷰

by W_log 2023. 9. 19.

오늘은 ChatGPT라는 InstructGPT 모델을 만들 수 있었던 원인 중 하나인 RLHF(Reinforcement Learning by Human Feedback)에 대해서 정리해보려고 한다. 최근 유튜브 보다가 이 개념에 대해서 헷갈려서 정리 차원에서 2번째 논문 리뷰로 정리해보았다. 


논문 링크 : https://arxiv.org/pdf/1706.03741.pdf

 

Learned

  1. 강화학습의 기본적인 메커니즘에 대해서 이해할 수 있었다.
  2. 강화학습, 지도학습, 비지도학습 각자가 따로 발전하기보다는 서로 단점들을 다른 학습들이 활용하면서 발전해가는 것이 보이고 역시나 어떤 데이터를 학습시키고 활용할지가 중요하다는 것을 알 수 있었다.
  3. 데이터 Cost 역시도 점차 중요해지고 잇음을 알 수 있어싿.

 

Summary


Deep Reinforcement Learning from Human Preferences

 

서론

(배경 및 문제)

강화학습을 더 큰 문제로 스케일업하는 부분에 있어서의 최근 성공 케이스들은 잘 정의된 보상함수가 있는 도메인에서 이루어졌다. 불행하게도 현실세계에는 복잡하고 정의하기 어려운 보상함수를 가진 테스크들이 매우 많다. 이를 극복하기 위해 딥러닝을 많이 활용하고 있다.

 

예를 들면 우리가 로봇에게 테이블이나 스크램블 에그를 만드는 것을 "강화학습"시킨다고 가정해보면, 이들에게 적합한 보상함수를 정의하는 것이 매우 어렵다.(아마 로봇 센서에 대한 함수일 것이다.)

우리는 대략적으로 의도된 행동들을 포함하는 보상함수를 세우려하겠지만 실질적으로 우리를 만족시킬만한 함수를 찾는데 실패할 것이다. 

 

물론 인간이 직접 따라하거나 시범을 보일 수 있는 테스크들인 경우, 우리가 보상함수를 추출해낼 수 있겠지만 그렇지 않은 경우에 대한 대응을 하기에는 어렵다. 그러한 데이터를 얻기도 어렵다.

 

대안으로 인간이 우리의 모델의 현재 행동에 대해서 직접 피드백을 주게 하고, 테스크를 정의하는데 이 피드백을 사용하는 것이다. 하지만 이 문제 역시, 실질적으로 사람이 투입되어 평가를 해야하기 때문에 값비싼 방식이고 피드백을 주는 시간을 줄이는 것이 중요하다.

 

(논문 아이디어)

"인간의 선호를 통해 보상함수를 해결하는 것은 scalable한 방식이지만, 매우 비싸다. 이를 저렴하게 할 수 있는 방식을 찾자"

보상을 기존 강화학습에서처럼 Environment의 state를 기반으로 설계된 reward가 아닌 인간의 피드백을 기반으로 만든 Reward predictor로 받는 모델을 추가한 것이다.

 

이 때 cost(평가하는데 걸리는 시간)를 줄이기 위해 점수를 매기지 않고, 어떤 것이 더 나은지 정도만 평가해달라고 했고, 비전문가에게 요청해서 데이터를 모아서 학습시켰다. 이렇게 했을 때에도 기존 잘 정제된 보상함수를 기반으로 만든 강화학습 모델만큼 잘 워킹한다는 것을 발견했다. 

 

인간의 피드백을 보상함수로 활용함으로써 이 논문은 일반적으로 강화학습 모델이 해결할 수 있는 문제를 확장시킬 수 있다는 관점에서 의의가 있다.(특히 직접 데이터를 얻기 어렵거나 보상함수를 정의하기 어려운 경우)

 

 

(선행 연구)

인간의 평가를 보상으로 한 강화학습들이 이루어졌고 그중에서 우리는 Akrour(2012, 2014)의 연구와 기본적으로 동일한 접근을 했다. 다만 이 연구에서는 자유도가 높은 물리적인 액션들의 문제에 집중했으며, state 일부에 대한 선호가 아닌 전체 프로세스에 대한 선호를 측정했다는 점이다. 또한 평가자가 시간을 덜 활용하는데 집중했다. 

 

 

Preliminaries and Method

2.1  Setting and Goal

 

o(t) : t시점에 발견된 상태(이 논문에서는 특정 머신의 동작, 게임에서의 상태) 

a(t) : 이 상태에서 실제 일어나는 action(상태를 변화시키는 행동)

r(t): 보상 함수의 값 (해당 행동과 상태가 주어졌을 때, 설정된 보상함수의 값)

 

라고 했을 때 전체적인 프로세스(task가 마무리 될때까지 처음부터 끝까지의 작업)를 아래와 같이 표현할 수 있고 이를 trajectory segment라고 논문에서는 명명했다.(여기서는 궤적이라고 표현하겠다.)

 

보상함수가 인간의 선호도를 기반으로 만들어지기 때문에 우리는 아래와 같이 Notation을 세웠고, 인간 선호에 대한 비교 부호는 아래 부호로 정의했다.

 

2.2  Our Method

Observation X Action이 인풋으로 들어갔을 때 최종 결과값으로 보상이 나오는 보상함수의 파라미터를 신경망으로 학습하며,  기본적으로 3가지 단계로 네트워크들이 업데이트된다.

 

1. 정책(∏)는 r(1) ~ r(i)까지의 궤적에 의해 영향을 받는다. 정책의 파라미터들은 전체 보상의 총합을 목적함수로 하는 일반적인 강화학습 알고리즘에 의해 업데이트된다. 

2. 1단계에서 생성된 세트를 pair로 선택하고, 인간에게 평가를 요청한다.

3. 보상함수 신경망 네트워크의 파라미터들은 2번에서 모아진 평가 데이터를 지도학습 데이터로 활용해서 최적화한다.

 

이 프로세스들은 비동기로 학습되며, 개별 프로세스의 세부 설명은 각 하위 절에서 설명한다.

 

2.2.1 Optimizing the Policy

 

Policy는 기존 강화학습 로직을 활용하기로 앞서 얘기했었다. 주로 도메인에 적합한 RL 알고리즘을 사용했으며 아타리 게임 케이스에서는 Advantage actor-critic 방식을, 로보틱스 테스크에 대해서는 TRPO를 활용했으며 다른 논문에서 알려진 잘 워킹했던 파라미터 세팅을 진행했고 오로지 바꾼 부분은 TRPO에 대해서 entropy bonus를 적용했다.

 

추가적으로 리워드들에 대해서는 표준평균 분포(Mean : 0, standard deviation : Constant)를 가질 수 있도록 처리했다. 

 

각각의 Policy 알고리즘들에 대해서는 강화학습 공부시에 좀 더 요약해서 별도의 블로그 글로 작성해보려고 한다.

 

 

 

2.2.2 Preference Ellicitation

 

평가자에게는 두개의 궤적을 시각화한 1~2초 분량의 짧은 영상클립이 주어진다. 평가자는 그들이 평가하기에 좋다고 생각하는지, 동일한지 비교하기 어려운지를 선택한다.

데이터셋에는 궤적1,궤적2, 평가결과 이 3개의 값이 저장되며 평가 결과는 1~2 사이의 분포를 가지도록 하며 동등하게 선호되는 결과라면 Uniform한 분포를 가지도록 했고, 비교하기 어려운 데이터셋은 제외시켰다.

 

 

2.2.3 Fitting the Reward Function

 

보상함수의 파라미터들은 신경망을 통해 학습되기 때문에 최적화할 Loss function이 필요한데 여기서는 Cross-entropy를 사용했고, 이 때 확률모델은 아래와 같은 형태로 정의했다.

 

결국 두개의 상대를 비교하는 것이기 때문에 유사한 케이스의 이론을 활용했고 체스에서 상대와의 승률을 추정하는 시스템인 ELO 시스템에 비유해볼 수 있다. 하지만 다른 점은 ELO 시스템은 승패를 추정하지만 이는 인간에 의해 어떤 것이 선택될지에 대한 확률을 추정하는 시스템이다.

 

우리의 실제 알고리즘은 기본 접근에 다양한 수정들을 거쳤다. 

  • 기본적으로, Dataset로부터 샘플링된 표본들로부터 학습된 앙상블 기법을 활용했고, l2 정규화 기법과 드랍아웃 정규화를 활용했다.
  • 휴먼 에러를 고려해서 softmax를 사용하기 보다는 10%정도의 랜덤값을 적용했다. 

 

2.2.4  Selecting Queries

 

평가자에게 어떤 것들을 비교하게 만들지 정해야하는데 이 때 각 보상함수 예측 모델간의 불확실성 근사치를 기반으로 쿼리들을 선택한다.

우선 k길이의 궤적들을 샘플링하고, 어떤 선택이 이루어는지 여러개의 예측 모델을 활용한다. 그리고 나서 예측들이 앙상블 모델 사이에서 가장 큰 분산을 가진 예측들을 선택한다. 물론 이렇게 할 경우에 실제로 일부 테스크들에서는 성능이 떨어지는 문제가 발생한다. 이상적으로는 각 쿼리들의 정보값을 기반으로 선택해야하지만 이는 후속 연구를 위해 남겨두겠다.

*추가 설명 : 실험에서는 3개의 예측 모델이 있는데 이 때 모델이 서로 다른 답을 도출할수록(분산이 클수록) 이걸 인간이 평가하면 더 인간의 성향을 학습하게 되므로 분산이 큰 것을 선택했다는 의미인 것 같다.

 

 

3. Experimental Results

 

텐서플로우를 활용해 알고리즘을 구현했고, MuJoco/Arcade Learning Environment 환경에서 실험했다.

 

3.1  Reinforcement Learning Tasks with Unobserved Rewards

 

실제 보상을 측정하지 않고 에이전트는 오로지 사람의 평가 데이터만으로 task의 목표를 배우는 것으로 DeepRL의 벤치마크 수준을 달성하려고 했다.(가능한 한 적은 질문과 시간으로 테스크를 해결하는 것이 핵심이다. )

 

평가자는 3~5초 안에 응답하도록 했으며, 30분에서 5시간 정도의 시간동안 모은 데이터로 실험했으면 평가자에게는 실험에 대한 대략적인 설명만 주어졌다.

 

3.1.1 Simulated Robotics

 

결과를 보면, 주황색이 실제 보상 데이터를 의미하는데 여러 케이스들에 대해서 유사한 결과값(상회하는 값도 있음)을 보이는 것을 확인할 수 있다. 

여기서 synthetic queries는 사람에게 두개의 비교를 요청하지 않고 논문에서 "Synthetic Oracle"이라는 시스템에 요청을 하고 이 데이터로 학습한 것을 의미한다.(바로 보상값을 주지 않고, 선호도 정보를 활용했을 때의 성능이 어떤지 비교하기 위한 목적으로 넣은 것 같다.)

 

 

3.1.2 Atari

 

 

기본적으로 qbert와 같은 경우에는 라벨링과 사람이 평가하기 어려운 이슈가 있어 성능이 낮게 나왔으며  enduro의 경우에는 기존 RL 알고리즘이 해결하기 어려운 문제가 있다. 3.1.1의 실험결과와 다르게 게임은 특성마다 학습이 어려운 케이스가 있는 것으로 보인다.

 

3.2  Novel behaviors

 

기존 실험의 목표였던 "reward function을 세우기 어려운 테스크"에 대해서 어떻게 작동하는지 살펴보았다. 크게 3가지 행동(backflip 액션, 한발로 가는 치타, 자동차 주행) 에 대해서 실험을 진행했으며 각 행동들에 대해서는 영상을 이 링크에서 볼 수 있다. 3.1 실험에서와 같은 파라미터를 활용했으며, 위 액션들을 잘 학습함을 확인했다.

 

 

3.3  Ablation Studies (여러 조건들을 빼가면서 측정하는 실험)

알고리즘의 성능을 더 잘 이해하기 위해서 몇가지 조건들을 조정해보았다.

 

1. 여러 쿼리 데이터 중에서 임의로 쿼리들을 선정했다. (random queries)

2. 앙상블로 활용하기 보다는 하나의 예측모델만을 사용했다. (no ensemble)

3. 학습 초기에 모인 데이터만 활용한다. (no online queries)

4. l2정규화를 제거한다.(no regulazation)

5. 1개짜리 궤적만 활용한다.(no segments)

6. 비교데이터를 통해 학습하지 않고, 전체 총보상을 계산하는 Oracle을 만든 후에 이를 r과의 오차제곱을 줄이는 형태로 학습시켜본다.(target)

 

 

 

흥미로운 점은 no online queries 조건의 경우 매우 낮은 성능을 보이는데 이는 학습 데이터 분포가 유동적이기 때문이라고 본다. 예측 함수는 "보상"에 대해 일부만 학습하게 되고 이 일부에 대해서만 최대화하려다 보니 전체 보상에 최적화된 결과를 보이지 않는다는 점이다. 예를 들어보면 탁구 게임에서 결국 승점을 따는 것이 중요한데 점수를 잃는 것을 피하기 위해 장기 랠리를 하는 것을 익히는 상황이다.

 

절대적인 스코어보다 비교하는 것에 대한 주된 동기는 데이터를 얻기에도 비교를 하는 것이 더 쉽기 때문이다. 물론, 어떻게 이 비교를 사용해서 성능에 영향을 줄 수 있도록 만드는 것은 중요하다.

 

실제 리워드를 수치적으로 측정하는 것이 비교를 예측하는 것보다 훨씬 성능이 낮은데, 그 이유는 결국 정확한 수치를 측정하는 것은 하나하나 스케일 단위를 측정해야하는 어려움이 있기 때문이다. 

 

또한 평가 데이터 역시도 한프레임만 보여주는 것이 클립(몇초 분량)의 데이터를 보여주는 것과 동일한 성능을 얻기 위해서는 훨씬 더 많은 비교데이터가 필요하다.

 

 

4. Discussion and Conclusions

일반적으로 Agent환경에서의 상호작용이 인간끼리의 상호작용보다는 저렴하다. 우리는 지도학습 기반의 보상 모델을 학습함으로써, 인터랙션 복잡도를 매우 낮출 수 있었고 실제로 Deep RL에이전트를 인간의 평가 데이터로 학습시킬 수 있을뿐 아니라 샘플 데이터 확보 비용 역시도 낮출 수 있었다.

 

Deep RL의 적용을 실생활에서의 테스크로 확장할 수 있는 방향으로 한발자국 발전시켰다고 볼 수 있다. 아마 후속 연구는 평가로부터 학습하는 것의 효율성을 개선하고 적용할 수 있는 분야를 넓히는 것이 될 것이다. 장기적으로 실제 보상 함수를 프로그래밍하는 것만큼이나 인간의 평가로부터 학습하는 것이 수월해지기를 바라며,  복잡한 인간의 테스크에 강력한 강화학습 시스템이 적용될 수 있었으면 좋겠다.