ChatGPT 시리즈 – ②’인간 피드백형 강화학습(RLwHF)’의 장점
가치함수를 정의하고 벨만 방정식을 풀어내는데까지는 우리가 수식을 찾아낼 수 있다고 가정했다. 근데, 현실적으로 우리가 수식을 알고 있는 경우는 과연 얼마나 될까?
사실 수식을 알아낼 수 있는 학문의 영역은 일부에 지나지 않는다. 그리고, 계산법을 배우는 것이 힘들지는 몰라도 배우고 나면 문제를 풀어내는 것은 전혀 어려운 일이 아니다. 계산기가 풀어줄 수도 있는만큼, 문제를 풀어내느냐 여부는 문제를 수식으로 추상화 할 수 있느냐에 달려있다.
5.강화학습(Reinforcement Learning)의 수학적 배경
진정한 도전은 바로 그 ‘문제를 정의’하기가 어렵다는 점이다. 학문마다 이런 상황을 풀어내는 방식이 제각각이나, 계산과학을 활용하는 일부 분야에서는 주어진 데이터로 그 수식을 역추적 해 보자는 접근법을 쓴다. 그간 들었던 ‘기계 학습(Machine Learning)’이라는 단어부터 ‘딥러닝’, ‘인공지능’ 이런 표현들이 수식이 없는 상태에서 데이터를 이용해 수식을 추론해가는 과정에서 쓰는 수학적 도구들을 말한다.
위의 도표를 보면, 주어진 환경(Environment)이 있고, 행동을 결정하는 Agent가 주변 상황(State)를 인지(Observe)한 다음, 자신만의 모델(DNN)을 돌려서 ‘A인 경우에 a, B인 경우에는 b’ 같은 의사 결정 구도(Policy)를 만드는 과정을 따라갈 수 있다. 일반적으로는 내가 주변 환경에 영향을 못 미치지만, 영향을 미칠 수 있고 그에 따라 반대급부(Reward)가 달라진다면?
그럼 좀 더 적극적으로 주변 환경을 고치려고 하지 않을까? 근데 내가 한 선택에 따라 주변 환경이 바뀌면 계속 위의 Value function 계산을 해 줘야 하겠네? ‘추상화’가 잘 된 식을 뽑아내야 한다던데?
여기서 바로 ‘딥러닝’, ‘인공지능’ 등으로 알려진 계산법이 가진 한계점을 엿볼 수 있다. 열심히 컴퓨터를 학대해서 계산을 하고, 그 계산으로 ‘수식’의 근사치를 뽑아내더라도, 그 수식이 반복 작업 형태가 아니라 ‘제멋대로’ 돌아다닌다면, 위에서 ‘추상화’에 실패한 수식 계산을 억지로 Bellman equation 형태로 계산하는 것과 다를 바 없다. 결국 머신러닝 업계 용어로 ‘학습에 실패(Fail to learn)’하는 일이 생길 것이다.
여러가지 다른 문제가 있지만, 그간 알파고 등으로 알려진 계산법들이 바둑판 위와 같은 특정 구도에서만 작동할 수 있었던 가장 큰 이유가, 다른 모든 경우를 포함할 수 있도록 만들려면 그 때마다 ‘제멋대로’를 모두 감안할 수 있는 초대형 방정식이 필요했기 때문이다. 위의 그림에서 조그맣게 5x5x4 로 만들어진 DNN 모델이 아니라, 컴퓨터로 계산하는 것이 불가능에 가까운 도전이라고 봐도 무방했다. 속칭 ‘강 인공지능’이 곧 나올 수 있다는 주장을 하던 ‘이름만 전문가’인 분들의 주장이 현실과는 거리가 멀다는 주장을 했던 이유도 바로 이 부분에 있다.
6.강화학습(Reinforcement Learning)의 여러 도전들
강화학습 알고리즘은 사실 1800년대 중반부터 인류가 활용했던 계산법이다. 아일랜드인 물리학자인 윌리엄 해밀톤(William Hamilton)이 1833년에 냈던 논문을 바탕으로 위에서 간략하게 소개한 Hamiltonian 계산법이 동적 최적화 계산을 해야하는 각종 학문의 기본이 됐고, 각 학문별로 다루는 데이터가 달랐기 때문에 조금씩 자신들만의 변형을 활용하기도 했다.
여러가지 예시 중 하나로 ‘알파고-제로’, ‘알파-제로’ 등으로 알려진, (Monte Carlo) 시뮬레이션으로 만들어 낸 데이터를 활용함으로써 아예 데이터 없이 규칙(Policy)만 알려주면 된다고 했던 모델이 있고, 그 외에도 DQN 등으로 알려진 모델들도 모두 위와 비슷한 방식으로 (어떤 방식으로건 생산해 낸) 데이터를 활용해 Bellman equation을 추정(?)해 내는 계산을 했다.
그러나, Bellman equation을 추정하는 작업은 그렇게 간단하지 않고, 온갖 종류의 데이터를 다루게 될 경우 더 노이즈 제거에 대한 고민이 쌓일 수 밖에 없는 구조적 한계를 갖고 있다. 어찌됐건 반복 형태의 계산식을 만들어 낼 수 없으면 결과 값이 ‘산으로 가는’ 경우를 피할 수 없기 때문이다.
7.인간 피드백형 강화학습(Reinforcement Learning w/ Human Feedback, RLHF)
이번에 ChatGPT에서 내놓은 강화학습의 변형 모델은 ‘인간의 피드백’을 활용하는 형태다. 기존에는 과거의 데이터, 시뮬레이션 데이터를 활용하기도 했고, 데이터 보정을 위한 알고리즘을 쓰기도 했다. ChatGPT는 채팅이라는 방식으로 인간과 교류하는만큼, 인간의 반응을 이용해서 문제를 보정하는 방식으로 관점을 바꾼 것이다.
기존의 비지도학습(Unsupervised Learning)이 인간의 의사 판단을 활용하는 것과 같은 관점에서, 채팅이라는 플랫폼의 구조적 특징을 적절하게 결합한 모델이라고 할 수 있다. 그럼 인간의 피드백을 어떤 방식으로 수식화해서 계산 작업이 진행되나?
인간의 모든 행동 반응을 다 집어넣는 것이 아니라, 일종의 선호 순서 구조를 만들어낸다. 경제학에서 현시선호(Revealed preference)로 불리는 방법론으로, A,B가 주어진 상태에서 A를 선택했다는 데이터를 보고, A가 B보다 더 나은 선택이라고 판단하는 것이다. 모델을 만드는 사람이 직관적으로 이해한, 혹은 함수를 만들어서 그 함수에 따라 선호의 순서를 정하는 것이 아니라, ‘데이터’에 나온, 즉 인간이 선택하고 난 사후 결과물을 바탕으로 선호의 순서를 정한다. 보통 선호를 데이터로 처리할 경우 일반적으로 취하는 방식이기도 하다.
그렇게 정해진 선호도 순서를 추정해내는 확률 함수를 만들고, 이 확률 함수는 위의 1번 식으로 표현이 되어 있다. N개의 옵션이 있을 경우 1번이 옵션이 선택될 확률이 나머지 옵션들이 선택될 확률보다 얼마나 더 높으냐로 결정되는, 전형적인 소프트맥스(Softmax) 함수 방식의 순서 정하기 계산이다.
글 앞머리에 불확실성을 기대값으로 계산하는 방식이 바로 여기서 도입된다. 단지 통계학의 분포함수 같은 개념 대신, 인간 반응을 바탕으로 한 Softmax가 분포함수 자리를 대체하는 것이다. 즉, 1번과 2번 중 어느 쪽을 정하는 편이 더 손실이 적은지를 계산하는 Loss function 문제를 풀어내는 방식으로 ‘인간 피드백형 강화학습(Reinforcement Learning w/ Human Feedback, RLHF)’ 계산을 요약할 수 있다.
실제로 코드를 쳐서 더 모델을 구현한다면 아마 확률을 가중치로 이용하는 부분에 대해서만 1-2줄 정도 코드 라인이 추가될 것이다. 기존 강화학습 모델에서 확률 가중치를 주는 부분만 분포함수 기반에서 데이터를 바탕으로 한 Softmax로 바뀌었으니까.