Reinforcement Learning

강화학습과 지도학습은 어떻게 다를까?

NGC3132 2023. 4. 11. 11:01

1. 강화학습과 지도학습

강화학습은 머신러닝의 한 종류이지만 지도학습, 비지도학습과 학습 방식이 조금 다르다.

 

출처 : https://m.hanbit.co.kr/channel/category/category_view.html?cms_code=CMS1612832708

 

<그로킹 심층 강화학습> 책에서 분류한 바와 같이 지도학습, 비지도학습, 강화학습에는 겹치는 부분이 있긴 하지만 엄연히 차이점이 존재한다. 

이 글에서는 그 중에서도 지도학습과 강화학습의 차이점을 나만의 방식으로 풀어보려 한다.

 

 

 

2. 각각의 관점으로 본 강화학습

위 이미지는 InstructGPT에 사용된 Reinforcement Learning with Human Feedback(이하 RLHF)를 설명하기 위해 만든 PPT 페이지이다. 

이미지의 상황은 Model이 Prompt를 Input으로 받고 Answer(Completion)을 Output으로 내는데, Output이 가지는 Reward를 최대화하는 쪽으로 학습하는 강화학습의 종류이다.

 

 

강화학습의 관점에서 강화학습을 본다면 다음과 같다. (말이 조금 이상하지만 일단 넘어가보자)

(1) Agent가 Environment를 관찰한다. 

(2) Agent의 두뇌이자 판단의 주체인 Policy가 결정한 Action을 수행한다.

(3) Action에 따른 Reward를 획득한다.

(4) Reward를 최대화하도록 Policy를 학습시킨다.

 

이를 지도학습의 관점에서 본다면 다음과 같다.

 

(1) Agent가 Environment를 관찰한다. -> Model이 Input을 받는다.

(2) Agent의 두뇌이자 판단의 주체인 Policy가 결정한 Action을 수행한다. -> Model이 Ouput을 반환한다.

(3) Action에 따른 Reward를 획득한다. -> Output과 정해진 Label을 이용해 Loss를 계산한다.

(4) Reward를 최대화하도록 Policy를 학습시킨다. -> Loss를 최소화하도록 Model을 학습시킨다.

 

 

강화학습과 지도학습의 관점 각각으로 놓고 보니 사뭇 비슷해 보이기도 한다.

 

 

 

3. 책 <강화학습 첫걸음>

<강화학습 첫걸음>, 한빛미디어, 2017

 

아서 줄리아니, 『강화학습 첫걸음』, 한빛미디어(2017), p.22에서는 강화학습의 세 가지 요소를 다음과 같이 소개하고 있다.

1. 액션 의존성 : 각 액션은 다른 보상을 가져옵니다. 밴딧 문제의 경우 손잡이 A를 당길 때와 손잡이 B를 당길 때의 보상은 다릅니다.

2. 시간 의존성 : 보상은 시간이 지연되고 나서야 주어집니다. 에이전트가 미로 안에 있는 경우를 가정해보겠습니다. 우리는 이 에이전트가 미로를 빠져나가는 경로를 학습하기를 바랍니다. 시간 의존성이란 미로의 어떤 분기점에서 왼쪽으로 가는 것이 옳은 선택이라고 하더라도 에이전트는 그것이 옳은 선택이었다는 사실을 미로를 완전히 빠져나가서야 알게 된다는 뜻입니다. 즉 에이전트는 보상에 대해 지연된 시점에 학습하게 되며, 또한 그 보상은 자주 있는 것이 아니라 드문드문 있다는 뜻입니다. 에이전트를 학습시키는 알고리즘에서는 반드시 이를 염두해 둬야만 합니다.

3. 상태 의존성 : 어떤 액션에 대한 보상은 환경의 상태에 좌우됩니다.앞에서 가정한 미로 예를 다시 생각하면, 어떤 분기점에서는 왼쪽으로 가는 것이 이상적이지만 다른 분기점에서는 그렇지 않을 수 있습니다. 이런 경우에 에이전트는 적절한 액션을 취하기 위해 환경의 특성을 이해할 필요가 있게 됩니다.

 

위의 내용을 읽고 나서는 세 가지 요소를 모두 포함하고 있어야 강화학습 상황이라는 것일까 아니면 셋 중에 하나의 요소라도 성립하면 강화학습이라 할 수 있는 것일까 고민이 들었다.

 

그리고 고민의 결과로 위의 세 가지 요소는 다양한 상황에서 적용되는 강화학습이 '대체적으로' 갖고 있는 요소라는 잠정적으로 생각하기로 했다. 

 

(그 이유는 <2. 시간 의존성>과 관련 있는데 <강화학습 첫걸음> 책에서 소개한 밴딧 문제들을 보건데, <2. 시간 의존성>을 고려한 것 같지 않았기 때문이다.)

 

 

 

4. RLHF에서 강화학습

InstructGPT에 활용된 RLHF

RLHF에 사용된 강화학습은 여러 강화학습의 알고리즘 중 굳이 고르자면 밴딧 문제와 그나마 유사한 것 같다.

<강화학습 첫걸음> 책에서 소개된 강화학습의 요소 세 가지 요소로 표현하면, <1. 액션 의존성>과 <3. 상태 의존성>은 있고 <2. 시간 의존성>은 없는 느낌인데, 이는 밴딧 문제의 상황과 정확히 일치하기 때문이다.

 

그렇지만 밴딧 문제에서는 의도적으로 exploration을 할 수 있는 항을 넣어주는 것이 다르긴 한 것 같다.

 

강화학습의 요소 in RLHF,

<1. 액션 의존성> : Prompt에 대한 Action으로 다른 Answer를 내면 당연히 다른 Reward를 받을 것이다.

<2. 시간 의존성> : RLHF에서 '시간', '지연된 보상' 등의 개념 자체가 등장하지 않으므로 시간 의존성은 없다.

<3. 상태 의존성> : 똑같은 Answer라도 어떤 Prompt를 입력으로 받았는 지에 따라 다른 Reward를 받을 것이다. 

 

 

 

5. 그래서 지도학습과 강화학습의 차이가 뭔데?

나는 지도학습과 강화학습의 차이를 다음과 같이 정리하고 싶다.

 

(1) 지도학습은 각 데이터에 대한 명백한 Label이 있다. 그렇지만 강화학습은 데이터는 주어지지만 Label은 없다. 

-> 이처럼 Label이 없는 상황을 강화학습 용어를 이용해 나타내면  'Environment'에 'Agent'를 툭 던져 놓는 느낌으로 이해했다.

 

(2) Label이 없는 강화학습의 학습을 위해 Reward라는 개념을 도입했다.

-> 지도학습은 Label과 모델의 Output을 이용해 Loss function을 정의하고 학습을 진행하는데, 강화학습은 Label이 없기에 Reward라는 개념을 정의했다.

-> 즉, 모델의 Output이 좋은 지 나쁜 지를 판단하는 기준을 지도학습과 다르게 Reward를 사용해 Model에게 알려주는 것이다.

-> Reward라는 개념 덕분에 강화학습은 지도학습보다 조금 더 유동적이고 다양한 상황에서 적용 가능한 머신러닝 알고리즘이 될 수 있었다고 생각한다. (바둑, 스타크래프트 등...)

 

 

결국 강화학습의 핵심은 어떻게 Reward를 설정하느냐에 달렸다. 

똑같은 데이터로 학습을 해도 Reward를 이상하게 설정하면 학습이 전혀 안 될 수도 있고, 야무지게 Reward를 설정하면 알파고가 탄생할 수 있을 것이다.

 

RLHF에서는 강화학습의 Reward로 Human Feedback, 즉 사람의 판단이 들어간다.

그러기 위해 강화학습 모델을 학습시키기 전에, Reward Model이라는 Reward를 내는 모델을 먼저 학습시키는데, 그 학습 방법을 크게 보면 다음과 같다.

기존의 GPT-3 모델이 낸 Answer에 대해 사람이 일일이 '이 Prompt에는 이 Answer이 좋겠군' 생각하며 비교하고 비교한 내용을 Reward model이 반영하도록 'Reward model을' 학습시키는 것이다.

 

결국 RLHF의 강화학습에서 Reward의 목적은 '사람의 선호'를 학습해 사람이 제일 좋아할만한 답변을 내도록 하는 것이다.

만약 이 상황을 지도학습으로 한다면 훨씬 더 많은 데이터를 라벨링해야 했을 것이며, 애초에 라벨링을 어떻게 하느냐 자체도 매우 중요한 문제이자 매우 어려운 문제일 것이다.

 

 

 

6. 결론

실제로 강화학습이 적용된 GPT와 적용되지 않은 GPT를 비교해보면, 정확도와 유해성 이런 걸 다 떠나서 누가 봐도 강화학습이 적용된 GPT의 답변이 훨씬 사람들이 원한 답변과 일맥상통하는 경우가 훨씬 많았다.

 

GPT의 상황에서는 지도학습이 할 수 있는 학습의 한계를 강화학습으로 해결해 ChatGPT를 만들었지만, 강화학습도 분명히 한계가 존재한다고 한다. 아까 언급했듯이, Reward를 '잘' 정하는 것 자체가 너무 어려운 상황이 많기 때문이다.

 

그래도 강화학습은 지도학습보다 여러 상황에 유동적으로 적용할 수 있는 강력한 머신러닝 기법임은 틀림없다.

만약 지도학습으로 풀기 어려운 문제가 있다면 강화학습으로 해결할 수 있을까 생각해보면 좋을 것이다. 단, 어떤 보상을 줄 지는 더 많이 생각해 보아야 할 것이다.