가치 이터레이션에서 Q-러닝으로
정책 이터레이션은 벨만 방정식을 반복적으로 푸는 방법이었다.
정책 이터레이션의 식은 다음과 같다.
정책 개선을 위한 식은 다음과 같다.
반면 가치 이터레이션은 벨만 최적 방정식을 반복적으로 푸는 방법이었다. 가치 이터레이션의 식은 다음과 같다.
중간 계산 단계에서의 정책은 식 (2)와 동일하게 구할 수 있다.
정책 이터레이션과 가치 이터레이션을 수행하려면 환경 모델
강화학습에서도 각각 벨만 방정식과 벨만 최적 방정식에서 유도된 정책 이터레이션과 가치 이터레이션 식이 필요하다.
식 (2)와 (3)를 살펴보면 최대값(max)을 계산하는 부분이 있는데 모두 이터레이션 루프 안에 들어가 있는 것을 알 수 있다. 연속공간(continuous space)에서 매 이터레이션 단계마다 행동에 관한 최대값을 구하는 일은 계산상의 큰 문제점을 야기하기 때문에, 여기서는 행동을 이산공간(discrete space) 행동으로 가정하고자 한다. 이산공간에서의 행동에 관한 최대값은 유한 개의 행동에 대해서 가치함수 값을 계산한 후 그 중 가장 큰 값을 선택하면 얻을 수 있기 때문에 계산이 손쉽다.
또한 상태변수도 이산공간 상태변수로 가정한다. 이유는 식 (1)과 (3)에 있는 행동가치 함수를 유한 개의 셀로 구성된 테이블(table) 형태로 관리하기 위해서다. 그러면 행동가치 함수의 최대값을 쉽게 구할 수 있다.

연속공간 행동과 상태변수에 관한 문제는 추후 다시 논의하기로 한다. 이산공간의 표기를 연속공간과 구별하기 위하여 행동을
이제 식 (1)과 (3)에 있는 상태가치 함수 업데이트 식을 보자. 상태가치를 정책 이터레이션 또는 가치 이터레이션을 통해 업데이트 한 후에 행동을 다음 식으로 업데이트 해야 한다.
환경 모델
이번에는 식 (1)과 (3)에 있는 행동가치 함수 업데이트식을 다시 써 보자.
식 (5)에 의하면 알고리즘은 특정 정책
또한 식 (6)에 의하면 특정 정책

식 (5)는 샘플
반면, 식 (6)을 계산하려면 샘플
Q-러닝에서 행동가치 함수는 최적 행동가치
따라서 어떤 정책으로 발생된 샘플인가에 관계없이 모두 행동가치 함수를 업데이트하는데 사용될 수 있다. 이러한 학습 알고리즘을 오프-폴리시(off-policy) 방법이라고 한다. 오프-폴리시 방법은 데이터 효율이 매우 높다. 왜냐하면 이전 정책으로 발생시킨 샘플도 모두 재 사용할 수 있기 때문이다.

반면에 SARSA 알고리즘은 온-폴리시(on-policy) 방법이라고 한다. 현재 정책으로 발생시킨샘플로만 정책을 업데이트 할 수 있기 때문이다.
보통 정책 그래디언트 계열의 온-폴리시 정책에서는 일단 정책을 업데이트했다면 사용된 샘플을 모두 폐기해야 한다. 새롭게 업데이트된 정책으로 발생시킨 샘플로만 그 정책을 다시 업데이트할 수 있기 때문이다. 따라서 온-폴리시 방법은 오프-폴리시 방법보다 데이터 효율이 매우 떨어진다.