자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 목표가 다른 값의 몇 배라는 규칙이면 목표 쪽으로 값이 내려간다고 봄 | 1 | 목표를 같은 숫자로 매긴 다른 추정에서 가져오면, 고칠 때마다 목표가 함께 움직인다. 배율 × 요약값 비가 1보다 크면 함께 달아난다 |
| 함수 근사만 하면 값이 커진다고 봄, 또는 세 재료를 하나씩 따로 위험하다고 봄 | 2 | 셋 가운데 하나만 빠져도 장난감의 값은 커지지 않았다. 위험은 셋이 겹친 자리에서 생긴다 |
| 요약값을 곱하는 자리를 빠뜨려 TD 업데이트를 셈함 | 2 | 그래디언트는 「TD 오차 × 고친 칸의 요약값」이다. 기대 업데이트에는 요약값이 두 번 곱해진다 |
| Q 추정이 크면 잘 하고 있다고 읽음 | 3 | 보상의 범위와 할인율로 Q의 최댓값 1/(1 − |
| 샘플 수가 같으면 순서는 상관없다고 봄 | 4 | 고정된 학습률로 하나씩 고치면 최근 샘플을 크게 친다. 몰려 오는 샘플은 앞의 묶음을 지운다 |
| 연달아 모은 샘플 32개를 32개의 값어치로 셈함 | 5 | 이웃끼리 상관이 0.9면 실질 샘플 수는 2개 남짓이다. 버퍼에서 무작위로 꺼내 상관을 푼다 |
| 버퍼의 머무는 시간을 업데이트 횟수로 그대로 셈함 | 6 | 업데이트는 행동 네 번마다 한 번이다. 머무는 동안 25만 번, 경험 하나는 평균 8번 쓰인다 |
| 리플레이 버퍼를 아무 방법에나 붙일 수 있다고 봄 | 6 | 버퍼 속 데이터는 예전 정책이 모은 것이다. 지금 정책의 샘플이 필요한 방법에는 그대로 못 쓴다 |
| 과녁을 얼리면 위험한 세 조합이 사라진다고 봄 | 7 | 얼려서 끝까지 맞춘 뒤의 배율이 1보다 크면 얼려도 커진다. 타깃 네트워크는 과녁이 움직여서 생긴 진동과 폭주만 누른다 |
| 하나만 켤 때 차이가 작은 장치는 덤이라고 봄 | 8 | 다른 장치를 켠 채로 더한 효과를 본다. 두 장치는 서로 다른 병을 고친다 |
| 게임 점수의 원점수나 평균으로 여러 게임을 견줌 | 9, 10 | 무작위 0%, 사람 100%로 맞춘 사람 기준 점수와 중앙값으로 견준다 |
| 듀얼링의 V를 그대로 상태 가치로 읽음 | 11 | 평균을 빼는 묶음이 있어야 V와 어드밴티지가 하나로 정해진다 |
| 소프트 Q의 다음 상태 값에 max를 씀 | 12 | KL 강도가 있으면 다음 상태의 소프트 가치(레퍼런스로 섞은 부드러운 최댓값)를 쓴다. max는 |
| 어드밴티지가 큰 토큰만 고르면 된다고 봄 | 13 | 데이터에 드문 토큰의 추정은 믿기 어렵다. 행동 정책의 확률에 |
요약
상태가 화면이면 Q를 표에 적을 수 없다. 화면을 받아 행동마다 Q를 내는 함수로 바꾸면 처음 보는 화면에도 값을 매길 수 있지만, 한 칸을 고칠 때 다른 칸이 따라 움직인다. 이 함수 근사가 목표에 내 추정을 쓰는 부트스트랩, 지금 정책과 다른 비율로 모은 데이터로 배우는 오프폴리시와 겹치면 값이 한없이 커질 수 있다. 이 셋이 위험한 세 조합이다. 칸 둘을 숫자 하나로 어림한 장난감은 참값 0을 정확히 나타낼 수 있는데도 업데이트 100번에 31배로 커졌고, 셋 가운데 하나만 빼면 커지지 않았다. 백개먼의 TD-개먼은 자기 대국으로만 배워 세 재료 가운데 둘만 가졌다.
DQN은 세 재료를 모두 안은 채 두 장치로 값의 불안정을 눌렀다. 경험 리플레이는 지난 경험을 리플레이 버퍼에 모아 무작위로 꺼내 쓰므로, 연달아 온 샘플의 상관을 풀어 확률적 경사하강의 가정을 되살리고 경험 하나를 여러 번 쓴다. 대신 오프폴리시 방법이어야 한다. 타깃 네트워크는 목표를 계산하는 사본을 C번마다 복사해 얼려 두어서, 그 사이의 학습이 과녁이 고정된 회귀가 되고 과녁이 움직여서 생기던 진동과 폭주가 준다. 다만 과녁을 얼려도 커지는 문제는 고치지 못한다. 두 장치를 합성곱 신경망에 얹은 DQN은 49개 아타리 게임을 같은 설정으로 배웠고, 더블 DQN·듀얼링·우선순위 리플레이를 합친 레인보가 뒤를 이었다.
언어 모델의 로짓은 KL로 레퍼런스에 묶은 목적에서 소프트 Q로 읽힌다. 소프트 Q는 다음 상태의 값으로 max 대신 레퍼런스로 섞은 부드러운 최댓값을 쓰고, 학습된 모델과 레퍼런스의 토큰별 로그 비가 소프트 어드밴티지가 된다. 그래도 언어 모델 강화학습이 정책 그래디언트로 간 데에는 프리트레인 정책에서 출발한다는 점, 끝에만 오는 보상, 큰 크기의 세 조합이 있었고, 판이 길고 샘플이 비싼 에이전트 태스크에서 가치함수가 다시 쓰인다.
막힌 곳
이 장의 모든 방법은 다음 상태에서 행동마다 Q를 구해 가장 큰 것을 고를 수 있다고 기댔다. 아타리의 행동은 18개뿐이라 출력 18개 가운데 가장 큰 것을 고르면 끝났다. 로봇 팔의 관절에 줄 힘처럼 행동이 연속된 숫자라면, 또는 응답 하나 전체를 행동 하나로 볼 때처럼 고를 수 있는 것이 셀 수 없이 많다면, 목표 속의 max는 어떻게 계산할까? 행동이 연속이거나 너무 많아 max를 못 하면?