6. 시간차 학습: 끝까지 기다리지 않고 예측으로 예측을 고친다
자주 하는 실수와 요약
자주 하는 실수
| 실수 | 나온 문제 | 바로잡는 법 |
|---|---|---|
| 실제 결과가 늘 더 나은 목표라고 봄 | 1, 4 | 결과에는 그 뒤의 운이 모두 섞인다. 데이터가 적으면 치우친 다음 예측이 더 나은 목표일 수 있다 |
| 학습률 1의 시간차 학습은 지나간 칸을 모두 고친다고 봄 | 2 | 목표가 옆 칸의 지금 값이라, 옆 칸의 값이 바뀌지 않았으면 고치려는 칸의 값도 바뀌지 않는다. 소식은 한 스텝씩 옮겨 간다 |
| 정답 응답이면 시간차 학습에서도 모든 자리의 값이 오른다고 봄 | 3 | 시간차 목표는 다음 자리의 예측이다. 다음 예측이 내려간 자리는 값이 내려간다 |
| 분산이 작은 목표가 늘 낫다고 봄 | 4, 5 | 편향은 평균을 내도 줄지 않는다. 데이터가 쌓이면, 또 상태가 마르코프가 아니면 편향이 더 크다 |
| 시간차 학습의 확실성 등가 추정이 언제나 옳다고 봄 | 5 | 다음 상태가 앞날에 필요한 것을 다 담을 때(마르코프 성질)만이다. 모자라면 상태를 넓힌다 |
| 고정 학습률로 오래 학습하면 참값에 닿는다고 봄 | 6 | 학습률에 따라 커지는 분산이 남는다. 모이려면 학습률의 합은 무한, 제곱의 합은 유한해야 한다 |
| 보상을 받는 순간 TD 오차가 가장 크다고 봄 | 7 | TD 오차는 기대가 바뀐 폭이다. 기대대로 온 보상의 오차는 0이고, 놀라움은 소식이 온 순간에 나온다 |
| 신호의 TD 오차를 모든 신호의 평균 기대로 셈함 | 8 | 신호 직전에 무엇을 기대하고 있었는지(신호가 언제 올지 알았는지)를 먼저 본다 |
| 이어 쓰기 몇 번의 비율이나 하드 라벨로 단계의 좋고 나쁨을 그대로 읽음 | 9 | 이어 쓰기 수가 적으면 비율이 크게 흔들리고, 하드 라벨은 맞힐 확률이 낮은 자리도 1로 읽기 쉽다 |
| 10 | 어느 스텝의 예측을 믿느냐에 따라 목표가 오르내린다 | |
| 참값을 쓰면 |
11 | 참값은 목표들의 평균일 뿐이다. 한 에피소드의 목표는 |
| 학습률이 1이면 한 번에 소식이 끝까지 간다고 봄, |
12 | 한 스텝 시간차는 한 번에 한 스텝씩 옮긴다. |
요약
시간차 학습은 에피소드가 끝나기를 기다리지 않고, 한 스텝 가서 받은 보상과 다음 상태의 지금 값을 더한 것을 목표로 지금 상태의 값을 고친다. 전이 확률을 몰라도 겪어 보면서 배울 수 있고, 스텝마다 바로 고친다. 새뮤얼의 체커 프로그램이 판면 점수의 차이 「델타」로 이 일을 처음 했고, 서튼이 1988년에 일반적인 예측 방법으로 정리했다. 일곱 칸 랜덤 워크에서 시간차 학습은 몬테카를로보다 빨리 참값에 다가갔다.
자기 추정을 목표에 넣는 부트스트랩은 목표의 분산을 줄이는 대신, 그 추정이 틀린 만큼 치우친다. 같은 데이터를 되풀이해 학습한 시간차 학습은 데이터에서 세운 모델을 참이라 믿고 셈한 확실성 등가 추정으로 가고, 상태가 마르코프일 때 데이터를 몬테카를로보다 잘 쓴다. 마르코프 성질이 깨지면 편향이 남는다. 고정 학습률은 참값 둘레에 학습률에 따라 커지는 분산을 남기고, 학습률의 합은 무한하고 제곱의 합은 유한하게 줄여 가야 참값에 모인다.
시간차 학습의 대괄호 안 양, 「이번 보상 + 다음 상태의 값 − 지금 상태의 값」이 TD 오차
막힌 곳
이 장에서는 상태의 값