강화학습에서 reward는 학습기가 최적화하는 신호이고, KPI는 운영자가 성과를 판단하는 지표다. 둘을 같은 이름으로 부른다고 같은 목적이 되지는 않는다. 이번 문제에서는 한 snapshot에서 설비–lot 조합을 순차 선택해 스케줄을 완성한다. 개별 선택의 점수가 높아지는 것과 완성 스케줄이 업무상 좋아지는 것도 구분해야 한다.

필요한 작업은 KPI의 대상과 시간 경계를 정의하고, makespan 개선과 TCT 악화 사이 절충을 정한 뒤, 그 판단을 학습 신호에 연결하는 것이다. 아래 수치와 절차는 설명을 위한 설계 예시다.

KPI는 동일한 lot 집합을 끝까지 평가한다

snapshot 기준 시각을 , 대상 lot 집합을 , 투입 시각을 , 완료 시각을 라 하자. 이 시리즈에서는 다음처럼 정의한다.

은 snapshot 이후 마지막 대상 lot까지 완료하는 makespan이고, TCT는 대상 전체의 cycle time 합이다. 단위는 각각 시간과 lot·시간이다. 대상 수가 고정되어 있으면 평균 cycle time은 지만, lot 수가 다른 케이스의 TCT를 그대로 평균하면 물량 차이까지 섞인다. 어떤 집계가 목적에 맞는지 별도로 정해야 한다.

01편의 두 lot은 이고, L1의 처리시간은 M1에서 1시간·M2에서 4시간, L2의 처리시간은 M1에서 8시간·M2에서 12시간이다.

스케줄L1 완료L2 완료makespan ↓TCT ↓
A: M1에 L1 → L2, M2는 비움199시간10 lot·시간
B: M1에 L2, M2에 L1488시간12 lot·시간

B는 A보다 makespan이 약 11.1% 짧지만 TCT는 20% 커진다. 마지막 완료를 앞당기는 것과 전체 lot의 체류시간을 줄이는 것은 다른 판단이다. 가능한 배정을 모두 확인해도 두 지표를 동시에 가장 작게 만드는 스케줄은 없다. 어느 쪽을 채택할지는 업무상 우선순위로 정해야 한다.

모든 대상 lot을 완료할 때까지 평가해야 이 두 KPI가 확정된다. 평가 계산이 시간 한도에 걸렸거나 일부 lot의 완료를 관측하지 못했다면, 완료 lot만으로 TCT를 계산해 성공 결과로 넣지 않는다. 미완료·평가 실패를 표시하고 사전에 정한 처리 규칙을 따른다. 대상이 없는 snapshot도 makespan 0으로 평균에 넣기보다 별도 집계한다.

운영 시점에 이미 투입되어 있던 lot은 일 수 있다. snapshot까지 쌓인 age는 두 방법에 공통인 상수이므로 선택의 우열은 남은 체류시간 합과 같아도, 상대 개선율의 분모는 달라진다. 전체 TCT인지 snapshot 이후 잔여 체류시간 합인지 이름과 식에 밝혀야 한다.

조합 선택 순서와 생산 시간을 reward에서 구분한다

스케줄 생성의 단계 는 생산 사건 시각이 아니다. (M1,L1)을 선택하고 (M1,L2)를 선택하는 동안 snapshot은 그대로이며, 부분 스케줄 안의 예상 완료시각만 1, 9로 늘어난다. 따라서 선택 횟수를 생산 시간으로 간주하기보다, 완성 스케줄의 KPI 비용을 어떤 reward로 전달할지 정해야 한다.

makespan과 TCT를 함께 줄이려면 두 지표를 기준값으로 나눈 가중합을 비용으로 둘 수 있다. 양의 기준값 는 단위와 크기를 맞추고, 0 이상의 계수 는 두 항의 중요도를 정한다. 이 값들을 한 episode 동안 고정하고, 완성 비용 가 작을수록 좋도록 reward에 음수를 붙인다. 가장 단순한 설계는 다음과 같다.

는 번째 선택 뒤 환경이 돌려주는 reward다. 위 식은 마지막 선택에서 전체 비용을 한 번 정산한다는 뜻이다. 중간 reward가 0이어도 앞선 선택은 이후 reward를 누적한 return을 통해 학습한다. 할인 없이 로 두면 총 reward는 이므로, 누적 reward를 높이는 목적과 완성 비용을 줄이는 목적이 일치한다.

같은 비용을 선택마다 나눠 주고 싶다면, 완성 비용 식에 현재까지 배정한 작업만 넣어 부분 비용 를 계산할 수 있다. 현재 설비 작업열의 가장 늦은 완료시각을 부분 makespan으로, 배정된 lot의 체류시간 합을 부분 TCT로 두면 다음 식이 나온다.

는 설비 작업열 끝의 예상 가용시각, 는 배정된 lot 집합, 는 예상 완료시각이다. 는 critic이 학습하는 value가 아니라 현재 부분 스케줄에서 직접 계산하는 비용이며, 는 이번 조합을 붙여 늘어난 비용의 음수다. 생산 시간이 흘러 발생한 비용을 뜻하지는 않는다.

앞의 스케줄 A에서 , 기준값을 각각 9시간과 10 lot·시간으로 두면 , L1 배정 뒤 , 완성 뒤 다. 마지막에만 주는 reward [0, -2]를 약 [-0.2111, -1.7889]로 나눈 셈이다. 일반적으로도 개 lot을 모두 배정할 때 증분 합은 다.

빈 설비·결정적 처리시간의 예제에서는 , 이므로 두 방식의 총합이 같다. 같은 최종 목적을 유지하면서 신호를 전달하는 시점만 바꾼 것이며, 학습 속도까지 같다는 뜻은 아니다. 다른 보조 목적을 넣는 reward까지 이 합에 맞출 필요는 없지만, 어떤 KPI를 유도하는지는 별도 확인해야 한다. 할인, 초기 점유, 처리시간 불확실성을 추가하면 할인된 return과 실제 최종 비용의 관계도 다시 검증한다.

완성 스케줄을 simulator에서 재생할 때는 실제 생산 시간이 흐른다. 모두 에 투입된 대상 lot의 미완료 수를 라 하면, 로 TCT를 독립 검산할 수 있다. 이 적분은 실행 timeline의 누적 체류시간을 세는 것이며, 조합 선택마다 생산 시간이 흐른다는 뜻은 아니다.

무엇을 학습하며 무엇이 평가되는가

학습 대상이 인 actor-critic을 예로 들면, 는 상태 에서 행동 를 선택하는 신경망의 parameter다. critic 는 앞으로 받을 return을 예측하며 별도 parameter 를 가진다. 환경에서 policy를 실행해 trajectory, 즉 상태·행동·reward의 순서 기록을 모으고, critic의 예측 오차와 policy의 성과 개선 신호를 이용해 optimizer로 parameter를 갱신(update)한다.

첫 식은 critic을 관측한 return 추정치 에 맞춘다. 둘째 식은 기본적인 policy gradient 형태로, 기대보다 좋았던 행동에 양의 advantage 를 주어 선택 가능성을 높인다. 여기서는 현재 학습 중인 policy로 수집한 on-policy 표본을 사용하고, parameter update를 계산할 때 return target과 advantage를 고정값으로 취급하는 형태를 가정한다. 실제 PPO 등은 이 목적을 수정하고 추가 항을 사용하므로 위 식을 모든 알고리즘의 정확한 loss라고 보아서는 안 된다. 원리는 Actor-Critic과 PPO에서 이어서 볼 수 있다.

핵심은 이 parameter update가 업무 KPI를 직접 이해하지 않는다는 것이다. reward가 makespan·TCT 사이의 업무 절충을 제대로 반영하지 않으면 좋은 optimizer도 잘못 정의한 목적을 더 잘 달성할 뿐이다. KPI 계산기는 가능하면 reward 누적 코드와 별도로 검증해 같은 구현 오류가 두 결과에 함께 숨어들지 않게 한다.

제약, 보조 신호, 목적의 우선순위를 구분한다

자격 없는 설비–lot 조합처럼 허용할 수 없는 행동은 단순한 음의 reward에만 맡기기 어렵다. 모델은 다른 이익이 충분하면 벌점을 감수할 수 있다. 기대 성과를 높이면서 비용 한도를 지키는 문제는 다음처럼 표현할 수 있다.

이 식은 reward 목적 와 비용 제약 을 구분한다. 하지만 기대 누적 비용의 제약을 만족한다는 것과 모든 행동에서 위반이 없다는 것은 다르다. Constrained Policy Optimization도 이런 기대 비용 제약의 맥락에서 읽어야 한다. 물리적으로 금지된 행동은 action mask와 실행 직전 검증처럼 별도의 통제 장치가 필요하다. Achiam et al., Constrained Policy Optimization

보조 reward를 추가하는 reward shaping은 학습 신호를 더 자주 주기 위한 선택이다. 예를 들어 선택한 조합의 처리시간이 짧으면 점수를 줄 수 있지만, 당장 짧은 작업만 빠른 설비에 몰아 완성 스케줄의 makespan을 키울 수도 있다. 임의의 보조항이 원래 목적의 최적 policy를 보존한다고 가정해서는 안 된다. 보조항이 없는 실험과 비교하고 실제 KPI 개선이 유지되는지 확인한다.

makespan을 줄이기 위해 TCT 악화를 얼마나 허용할 것인가

계수부터 조절하기보다 업무 담당자가 감수할 수 있는 TCT 손실을 한도로 정하고, 그 안에서 makespan이 좋은 후보를 고르는 방식으로 시작할 수 있다. baseline 대비 makespan 개선율을 , TCT 악화율을 라 하자.

예를 들어 목표 분포에서 를 만족하는 후보 중 이 가장 큰 것을 고르되, 여야 도입을 검토한다고 정한다. TCT 2%는 손실 한도이고 makespan 3%는 최소 이득이다. 큰 makespan 개선이 한도를 넘는 TCT 악화를 자동으로 상쇄하지 않는다. 전체 평균 한도와 필수 시나리오별 한도도 각각 정한다.

다음은 같은 lot 집합에서 얻었다고 가정한 validation 결과다. makespan 단위는 시간, TCT 단위는 lot·시간이다.

후보makespanTCTmakespan 개선TCT 악화점추정 기준 판단
현행1001,000——기준
A971,0053%0.5%허용 범위
B941,0186%1.8%허용 범위에서 makespan 우세
C921,0408%4%TCT 한도 초과

이때 B를 개발 후보로 고를 수 있지만, 최종 채택에는 불확실성까지 포함해야 한다. 예를 들어 makespan 개선의 신뢰구간 하한이 최소 개선 폭을 넘고, TCT 악화의 상한이 허용 한도를 넘지 않는 규칙을 사전에 정할 수 있다. 여러 시나리오·KPI를 함께 판정할 때의 구간 해석은 06편에서 다룬다.

2%라는 한도는 어떻게 정하는가? 다음 절차로 업무 가치와 연결한다.

  1. makespan 단축의 용도를 적는다. 다음 생산 묶음을 일찍 시작할 수 있는지, 교대 안에 작업을 끝낼 수 있는지처럼 실제 이득을 확인한다.
  2. TCT 증가가 만드는 손실을 환산한다. 동일 lot 수에서 평균 cycle time이 얼마나 늘어나는지, 재공 체류나 고객 약속에 어떤 영향을 주는지 살핀다. 전체 합계가 작아도 특정 lot의 지연이 금지 수준이면 별도 제한을 둔다.
  3. validation에서 허용치 0·1·2·5% 등을 바꿨을 때 얻을 수 있는 makespan 개선을 그린다. 두 지표 모두에서 다른 후보보다 나쁜 후보는 제외하고, 남은 절충 관계를 업무 담당자에게 제시한다.
  4. 추가 makespan 이득의 가치가 TCT 손실과 도입 비용을 감당하는 구간을 선택하고, 허용치·최소 이득·적용 범위를 고정한 뒤 독립 test를 연다.

두 KPI를 같은 가치 단위로 환산할 수 있다면 같은 순가치를 비교할 수도 있다. 은 makespan 한 시간 단축의 가치, 는 TCT 한 lot·시간 증가의 비용이다. 서로 다른 단위의 1%를 같은 가치라고 놓지 않는다. 환산 근거가 약하면 한도 방식이 판단을 더 명확하게 남긴다.

reward의 weighted sum은 이러한 절충을 학습에 전달하는 도구다. 계수 를 특정 값으로 두었다고 TCT 2% 한도가 보장되지는 않는다. 계수와 학습 결과의 관계를 validation에서 확인하고, KPI 한도는 별도 평가로 검사한다.

채택 여부를 판단할 평균과 개선율 계산 순서를 정한다

평가 케이스를 동등하게 평균하면 고른 케이스 전반의 성능을 묻고, 운영 빈도로 가중하면 목표 운영 조건에서의 기대 성능을 묻는다. 허용 손실과 최소 이득은 어떤 평균에 적용할 기준인지까지 정해야 한다. 이 시리즈는 근거가 있는 운영 빈도 가중 평균을 채택 판단의 기준(주판정 평균)으로 정하고, 동등 평균과 시나리오별 제약을 함께 보고한다. 두 평균이 다른 후보를 고르는 예는 05편에서 다룬다.

같은 비중을 쓰더라도 상대 변화율의 계산 순서에 따라 값은 달라진다. 예를 들어 같은 빈도의 두 케이스에서 makespan이 각각 10→8시간, 100→90시간으로 줄었다면, 케이스별 개선율을 먼저 평균한 값은 다. 반면 baseline과 후보의 평균 시간 55시간과 49시간을 먼저 구하면 개선율은 다. 후자는 baseline이 큰 케이스의 절대 시간 절감이 더 많이 반영된다. 이 차이는 동등 비중과 운영 빈도 비중 중 무엇을 쓰는지와 별개의 선택이다.

이 글의 예시는 케이스별 상대 변화율을 평균한다. 문제 규모가 달라도 각 케이스에서 baseline 대비 얼마나 개선하는지가 관심이기 때문이다. 절대 시간 감소가 목적이면 위 예시의 평균 6시간 절감을 직접 보고하거나, KPI 평균을 먼저 낸 개선율을 쓸 수 있다. TCT도 같은 집계 차이가 있으며, lot당 평균 cycle time이 목적이면 lot 수까지 분모에 반영한다. baseline이 0인 케이스는 상대 변화율을 계산할 수 없어 별도 처리 규칙이 필요하다.

설계를 마칠 때는 대상 lot과 완료 경계, 케이스 비중과 개선율의 계산 순서, TCT 한도와 makespan 최소 개선 폭, reward 식, 독립 KPI 계산기, validation 선택 규칙을 한 문서에 남긴다. 결과를 본 뒤 유리한 평균으로 바꾸지 않으며, 평균이 좋아도 별도로 정한 필수 시나리오의 손실 한도는 지켜야 한다.

참고문헌

  • Achiam, Held, Tamar, Abbeel (2017), Constrained Policy Optimization. arXiv

이전: 01. 문제 정의 · 시리즈 목차 · 다음: 03. 관측과 행동 설계