TD(Temporal Difference) 학습이란? TD(Temporal Difference) 학습은 강화학습의 한 방법으로, 에이전트가 현재 상태의 추정 가치와 다음 상태의 추정 가치 사이의 차이(시간적 차이)를 이용하여 학습하는 방식입니다. TD 학습은 환경의 모델을 몰라도 학습이 가능하며, 경험을 통해 직접 가치 함수를 업데이트합니다. 기본적으로 TD 학습은 두 가지 중요한 방법인 TD(0)과 Q-learning, SARSA 등을 포함합니다. TD 학습의 기본 원리 TD 학습의 핵심 아이디어는 실제로 관찰된 보상과 예측된 보상의 차이를 사용하여 가치 함수를 업데이트하는 것입니다. 이를 TD 오류라고 합니다. TD 오류는 다음과 같이 계산됩니다: TD 오류=(R+γV(S′))−V(S) 여기서: R은 받은 보상 γ는 감가율(discount factor), 미래의 보상을 현재 가치로 환산할 때 사용하는 계수 V(S′)는 다음 상태 S′의 가치 추정 V(S)는 현재 상태 S의 가치 추정 TD(0) 학습 알고리즘, 가장 간단한 형태의 TD 학습에서는 가치 함수를 다음과 같이 업데이트합니다: V(S)←V(S)+α[R+γV(S ′)−V(S)] α는 학습률(learning rate), 가치 함수를 얼마나 크게 조정할지 결정 예시: 간단한 그리드 월드 에이전트가 4x4 그리드 월드에서 목표 지점에 도달하기 위해 학습하는 상황을 고려해 봅시다. 각 칸에서는 상, 하, 좌, 우로 이동할 수 있고, 목표 지점에 도착하면 +1의 보상을 받으며 그 외에는 0의 보상을 받습니다. 감가율은 0.9로 설정합니다. 초기화: 모든 상태의 가치를 0으로 초기화합니다. 에피소드 시작: 에이전트는 임의의 위치에서 시작합니다. 경험: 에이전트는 현재 상태에서 임의의 행동을 선택해 다음 상태로 이동하고, 이동 결과로 보상을 받습니다. 가치 업데이트: 위의 TD(0) 업데이트 공식을 사용해 현재 상태의 가치를 업데이트합니다. 반복: 이 과정을 여러 에피소드에 걸쳐 반복하면서 에이전트는 점차 최적의 경로를 학습합니다. 장점 및 단점 장점: 모델이 없이도 학습이 가능합니다 (Model-free). 일부 데이터만으로 즉시 가치 함수를 업데이트할 수 있어, 적응적이고 효율적입니다. 단점: TD 오류의 계산이 불안정할 수 있어, 때때로 학습 과정이 불안정하거나 수렴하기 어려울 수 있습니다. 적절한 파라미터(학습률, 감가율) 설정이 중요하며, 이는 환경에 따라 다르게 조정해야 할 수 있습니다. TD 학습은 복잡하지 않은 환경에서 빠르고 효율적으로 좋은 결과를 얻을 수 있는 강력한 도구입니다. 다양한 변형과 확장을 통해 더 복잡한 문제에 적용될 수 있습니다.
TD법은 몬테카를로(MC) 학습법과 동적 프로그래밍(DP)을 합친 기법이라고 봐도 좋습니다. TD 학습법 수학식 도출을 전개해 보겠습니다. 먼저 수익인 리턴의 총합 Gt는 다음과 같습니다. Gt = Rt + γRt+1 + γ^Rt+2 + ... = Rt + γGt+1 시간 t로부터 시작해서 경험을 쌓으면 시간의 흐름대로 보상 Rt, Rt+1, Rt+2...이런 식으로 쌓이게 됩니다. 이때의 수익은 이러한 보상값을 모두 합친 값이 됩니다. 이 수익에 대한 식을 적용해 가치함수를 정의하면 다음과 같습니다. Vπ(s) = Eπ[Gt | St = s] = Eπ[Rt + γGt+1 | St = s] = Σa∈s' π(a|s)p(s'|s,a){r(s,a,s') + γvπ(s')} 가치함수는 위 식처럼 기댓값으로 정의되고 DP 수식을 전개했습니다. 이는 벨만 방정식으로, 즉 DP법은 벨만 방정식을 기반으로 가치함수를 순차적으로 갱신하게 되는데 이 갱신식은 다음과 같습니다. V'π(s) = Σa∈s' π(a|s)p(s'|s,a){r(s,a,s') + γvπ(s')} V'π는 갱신 후의 가치함수입니다. 현재 상태의 가치함수를 다음 상태에서의 가치함수로 갱신한다는 것입니다. 이것은 다음 가치함수의 추정치를 이용해 현재 가치함수의 추정치를 갱신하는데, 이것을 부트스트랩이라고 합니다. 이때 모든 전이를 고려하고 있는게 MC법과 구별되는 가장 큰 특징입니다. MC법은 모든 전이를 고려하지않고 실제 얻은 일부 경험만을 토대로 현재의 가치함수를 갱신하게 됩니다. 환경에 대한 정보가 없으므로 샘플링한 데이터만으로 가치함수를 갱신하게 됩니다. MC의 수식을 살펴보겠습니다. V'π(St) = Vπ(St) + alpha*{Gt-Vπ(St)} 여기서 Vπ(St)는 현재의 가치함수이고 V'π(St)는 갱신 후의 가치함수인데, 수식에서 보면 현재 가치함수를 Gt쪽으로 갱신하고 있습니다. 여기서 alpha는 학습률(learning rate), 가치 함수를 얼마나 크게 조정할지 결정하는 요소입니다. TD방법은 DP법처럼 부트스트랩을 통해 가치함수를 순차적으로 갱신하고, MC법처럼 환경에 대한 정보 없이도 샘플링된 데이터만으로 가치함수 갱신하게 됩니다. 이제 TD법을 도출하겠습니다. Vπ(s) = Σa∈s' π(a|s)p(s'|s,a){r(s,a,s') + γvπ(s')} = Eπ[Rt+γVπ(St+1)|St=s] 모든 후보에 대해 r(s,a,s') + γvπ(s')를 계산하게 되는데, 이것은 보상과 다음 가치함수를 계산합니다. 이를 기댓값 Eπ 형태로 쓰고 이 방법을 이용해 가치함수를 갱신하는데 Rt+γVπ(St+1) 부분을 샘플 데이터에서 근사합니다. 그래서 최종적인 TD 갱신식을 수식으로 표현하면 다음과 같습니다. V'π(St) = Vπ(St)+alpha*{Rt+γVπ(St+1)-Vπ(St)} Vπ는 가치함수의 추정치이고 Rt+γVπ(St+1)는 목적지 목표입니다. 이 목적지를 TD목표라고 하고 Vπ(St)를 TD목표 방향으로 갱신합니다.
TD (Temporal Difference) 학습과 MC (Monte Carlo) 학습 비교 TD 학습과 MC 학습은 강화학습의 두 가지 주요 방법론으로, 모두 에이전트가 경험을 통해 학습하도록 설계되었습니다. 이 두 방법은 비슷한 목표를 가지고 있지만, 데이터를 처리하고 가치 함수를 업데이트하는 방식에서 차이가 있습니다. 공통점 Model-Free: 두 방법 모두 모델이 필요 없는(Model-Free) 접근 방식입니다. 즉, 환경의 전체 모델을 알 필요 없이 에이전트가 직접 경험을 통해 학습합니다. 경험 기반 학습: TD와 MC 모두 에이전트의 실제 경험을 바탕으로 학습을 진행합니다. 가치 기반 접근: 두 방법 모두 상태 또는 행동 가치 함수를 업데이트하여 최적의 정책을 찾아내는 것을 목표로 합니다. 차이점 데이터의 사용 시점: MC 학습: MC는 에피소드가 완료(에피소드 종료)된 후에만 가치 함수를 업데이트합니다. 즉, 전체 에피소드의 결과(종료 상태에 도달한 후의 보상)를 통해 가치를 추정하며, 이로 인해 각 에피소드의 결과가 전체적으로 평가됩니다. TD 학습: TD는 단일 스텝이 진행될 때마다 즉각적으로 가치 함수를 업데이트합니다. 에이전트는 현재 상태의 가치와 다음 상태의 가치 차이(보상 포함)를 사용하여 가치를 추정합니다. 이 접근법은 더 빠른 피드백을 통해 학습을 진행합니다. 업데이트 메커니즘: MC 학습: 모든 보상을 수집하고, 에피소드가 끝나면 취득한 모든 보상을 통해 평균을 내어 업데이트합니다. 이 방법은 특히 불확실성이 크고 결과를 즉시 알 수 없는 상황에서 유용합니다. TD 학습: TD는 보상과 다음 상태의 가치 추정을 기반으로 현재 상태의 가치를 업데이트합니다. 이는 "부트스트래핑" 방식이라고도 하며, 에피소드가 완료되지 않았어도 가치 추정치를 업데이트할 수 있습니다. 수렴 속도: MC 학습: 각 에피소드 후에만 업데이트가 이루어지기 때문에 수렴 속도가 느릴 수 있습니다. TD 학습: 부트스트래핑과 지속적인 업데이트로 인해 일반적으로 더 빠르게 수렴할 수 있습니다. 분산과 편향: MC 학습: 높은 분산을 가지지만 편향이 낮습니다. 이는 에피소드마다 발생할 수 있는 다양한 결과 때문입니다. TD 학습: 낮은 분산을 가지지만 편향이 높을 수 있습니다. 이는 초기 가치 추정에 크게 의존하기 때문입니다. 예시 예를 들어, 포커 게임에서 에이전트가 게임의 각 핸드를 완료한 후 전체 수익을 통해 학습하는 경우 MC 방식이 적합할 수 있습니다. 반면, 체스 게임에서는 각 수를 둘 때마다 즉각적인 결과를 반영하여 학습하는 TD 방식이 더 적합할 수 있습니다. TD와 MC는 강화학습에서 중요한 역할을 합니다. 각 방법의 특성을 이해하고 주어진 문제 상황에 가장 적합한 방법을 선택하는 것이 중요합니다. 지속적 과제에서는 MC법을 사용할 수 없으니 TD법 외에는 대안이 없습니다. 그래서 현실의 많은 문제에서는 TD법이 더 빠르게 학습하는데, 즉 가치함수 갱신이 빠릅니다. MC법과 TD법을 살펴보고 이 두가지가 무엇을 목표로 하는지 살펴보겠습니다. MC법 V'π(St) = Vπ(St)+alpha*{Gt-Vπ(St)} TD법 V'π(St) = Vπ(St)+alpha*{Rt+γVπ(St+1)-Vπ(St)} 여기서 MC법은 Gt(수익 리턴 보상의 총합)을 목표로 하여 그 방향으로 Vπ를 갱신합니다. 반면 TD법은 한 단계 앞의 정보를 이용해 계산하는 Rt+γVπ(St+1)를 목표로 합니다. Vπ라는 추정치가 사용되는데 추정치로 추정치를 계산하는 부트스트래핑입니다. 이처럼 추정치를 목표로 하게되면 편향이 생기는데 편향은 갱신이 반복되면 작아지면서 결국 0으로 수렴하게 됩니다.