[황승진의 AI칼럼] 강화학습과 최적화
독자들은 기계학습(ML, Machine Learnling)은 똑똑하지만 똑똑함의 정점인 '최적화(optimization)'는 할 줄 모른다고 생각할 것이다. 그러나 사실은 그렇지 않다. '강화학습 (RL, Reinforcement Learning)'이라고 하는 다른 종류의 ML을 사용해 최적화를 할 수 있다. 데이터를 통해 최적화가 이루어지기 때문에 ML의 한 분야이다. 강화학습은 심층학습(DL)과는 달리 '신경망'을 쓰지 않고, 성룡처럼 '테이블'을 쓴다. RL은 “이 상황에서는 저 행동을 취하라”는 최적의 '정책(policy)'을 찾는다. 모델의 주인공(소프트웨어 agent)이 자기 경험 데이터를 뒤져가며 점수를 많이 따는 방법을 찾도록 시키는 것이다. 비즈니스 세계에는 정책 최적화가 필요한 많은 문제가 있다. 한 예로, 재고관리를 생각해보자. X개가 현재 재고인데, Y개를 더 만들면 어떨까? 아니, 제일 좋은 Y가 무엇일까? 여기서 에이전트는 수익을 점수로 삼고 '상황 X에서 행동 Y'를 잘 선택해 점수를 최대한 높이려 한다. 그 답을 위해, RL은 다음과 같이 일한다. 먼저, 매일 [상황, 행동, 수익]을 'Q-테이블'이라는 데이터 테이블에 기록한다. 엑셀을 사용할 경우, 첫째 좌측 열에는 각종 상황(state)을 열거하고, 상단 행에는 각종 행동(action)을 열거한다. 이 열과 행이 교차하는 셀에는 RL이 계산해내는 숫자가 채워진다. 이때, (15, C) 셀에 숫자 125가 들어가 있다면, 상황 15에서 행동 C를 취하면 예상 수익이 125일 것이라는 것을 뜻한다. 중요한 점은 125는 오늘 수익 뿐 아니라 내일, 그리고 그 이후의 운영 성과를 합한 결과라는 점이다. 즉 순현재가치(NPV)다. 따라서 오늘 행동이 미래의 날에 미칠 불확실한 영향을 고려해야 한다. 재고관리에서 지금 120개의 재고 상황인데, 15개를 더 만들었다 하자. 오늘 실제로 운영해본 결과, 1000원을 벌었고 재고로 35개가 남았다고 가정한다. 따라서, (120,15)의 셀에는 오늘 수익 1000원에다가 '내일 35개로 시작해서 가장 잘 운영할 경우의 기대 수익'을 합친 값이 들어 간다. (실은, 이 새 값과 기존 값과의 가중평균.) 그러면 미래의 수익에 대한 기대치를 어떻게 추정할까? 그것 또한 Q-테이블에서 나온다. 거기에는 모든 상황 모든 행동에서의 기대치가 들어있기 때문이다. 학습이란 여러 상황을 돌아가며 여러 행동을 취하며 이 테이블을 채우고 또 수정하는 것이다. 추정에서 추정을 찾느라고, 테이블에서 많은 업데이트가 발생한다. 결국에는 진실에 다가가며, Q-테이블은 '최적의 정책'을 들어낸다. 즉, "이 상태에서 이러한 행동을 취하십시오" 라는 말이다. 이 'Q-학습'은 서튼 교수가 1988년에 개발한 TD라는 아이디어에 왓킨스 교수가 개발한 것이다. 두번째 응용 예로, 중국 심천의 한 공장은 풀어야 할 '작업 스케줄링' 문제를 가지고 있다. 그들의 생산 시스템은 주문마다 10단계의 작업으로 구성되어 있으며, 각 단계에는 10대의 기계가 있다. 작업을 완료하려면 각 단계마다 10개 중 어느 한 기계에서 서비스를 받으며 10단계를 거쳐야 한다. 작업 요구 사항이 다르기 때문에 일부 작업은 특정 유형의 기계만 사용해야 하고 일부 작업은 특정 단계를 건너뛸 수 있다. 각 상태에서 공장은 각 단계의 어떤 기계에 어떤 작업을 할당할지 결정해야 한다. 즉, 작업을 스케줄링(scheduling)하는 데 있어 최적의 정책은 무엇일까? 이 해결을 RL 에이전트에게 부탁한다. 에이전트는 주문이 약속 날짜보다 하루 늦을 때마다 1 점씩 빼앗긴다. 점수를 안 잃기 위해 에이전트는 좋은 정책을 찾는다. 이 스케줄링은 매우 어려운 문제다. 분석적인 해결책은 없으며 휴리스틱(근사 접근법)만 존재한다. 이 휴리스틱이 얼마나 좋은 지는 아무도 모른다. 그러나 RL은 더 나은 성과를 낼 수 있다. 실제로, 잘 고안한 RL 방법은 시뮬레이션을 통해 현재 사용 중인 휴리스틱보다 훨씬 더 좋은 결과를 보여주었다. 이것은 스탠포드 대학의 왕지에 박사의 지도를 받은 슈후이 퀴의 박사 학위 논문이었다. 세번째 RL의 응용사례다. 2025년 1월에 남부 캘리포니아에서 일어난 대형 화재를 보자. 물과 소방자원이 모자라니, 진화작업이 힘들다. 특히 불이 퍼지면 불의 전선이 지름 제곱 속도로 늘어난다. 이때 소방당국은 불이 번져가는 2차원의 찌그러진 원형 궤적을 예측해야 한다. 그에 따라 어디에 소방자원을 집중할 지를 결정한다. 불은 어떤 자연 법칙을 따르며 확산한다. 바람 방향에 따라 움직인다. 연못 같은 큰 물을 넘지 못한다. 나무가 울창하거나 풀이 말랐으면, “옳다구나” 하고 급히 그쪽으로 달려간다. 나무나 풀 없는 나대지에서는 주춤한다. 언덕은 잘 타 내려가지만, 위로는 잘 못 타오른다. 이런 자연 활동을 RL로 푼다. 지형, 바람과 날씨가 이러한데 불은 어떻게 움직일까? RL 최적화 모델을 만든다. 좀 이상하게 느껴지지만, 여기서 주인공 에이전트는 '불'이고, 그는 땅을 차지하며 점수를 딴다. 점수를 많이 따기 위해, 주어진 지형의 특성을 따라 불은 빨리 또 넓게 움직인다. 즉 최적화한다. 현재 당면한 지형이 상황이 되고, 어디로 전진할까는 정책이 된다. 불의 정책이 소방당국의 예측이 된다. 강화학습은 심층학습과 더불어 새로운 AI의 주축을 이룬다. 심층학습에서는 질러 본 후 "왜 틀렸을까"하며 걸어온 길을 반성하며 배우지만, 강화학습에서는 연못 속의 개구리처럼 펄쩍펄쩍 뛰면서 이 연꽃잎에서 저 잎으로 가는 좋은 길을 찾아 가며 배운다. 둘 다 경험에서 길을 찾는다. 어떤 경우에는 이 둘을 섞어서 쓰기도 한다. LLM이 그 예다. 기초모델에는 심층학습을, 파인튜닝에는 강화학습을 적용한다. 힌튼도 서튼도 흐뭇해할 것이다.