728x90
반응형
시간차 학습(Temporal-Difference Learning)
MC와 달리 에피소드 끝까지 가디릴 필요가 없음 → 매 step마다 학습 가능
무한히 계속되거나 에피소드가 매우 긴 환경에서도 사용할 수 있음
MC보다 V의 초기 추정치에 더 민감(큰 편향)
재귀적 형태
시간차 학습의 심리-생물학적 의미
시간차 학습은 행동주의 심리학의 일환인 강화 학습 이론에 기초
행동이 긍정적인 결과(보상)를 초래하면 그 행동이 강화
부정적인 결과(벌)를 초래하면 그 행동이 약화
TD오차 : 기대한 보상과 실제로 받은 보상 간의 차이( 기대수준보다 높은지 낮은지)
도파민 뉴런의 반응이 TD오차에 기반
람다(λ)-수익
n = ∞면(MC) 에피소드가 끝났을 때 모든 상태의 가치를 수정할 수 있으나 분산 이 크고, 끝날 때까지 기다려야 함
n = 1이면 보상 피드백이 직전 상태의 가치를 수정할 때만 직접적으로 쓰이기 때 문에 정보가 느리게 퍼짐
여기서 수정된 직전 상태의 가치가 전전 상태의 가치를 수정할 때 사용되고, 전전 상태의 가 치는 전전전 상태의 가치를 수정할 때 사용되고…
n을 키워도 n 스텝만큼은 가치의 수정이 지연됨
람다 수익: 여러 단계의 수익을 가중 평균한 것
TD(λ)
지나온 상태 기억, 기억나는 만큼 반영, 기억 점점 흐려지는 것
class TDLambdaPrediction(TDPrediction):
def __init__(self, env, gamma=0.9, alpha=0.1, lambd=0.9):
super().__init__(env, gamma, alpha)
self.lambd = lambd
def update_value(self, episode):
T = len(episode)
for t in range(T):
state, action, reward, next_state, done = episode[t]
td_error = reward + (self.gamma * self.V[next_state] * (not done)) - self.V[state]
E = np.zeros_like(self.V) # eligibility traces
E[state] += 1
for k in range(t, T):
state_k, _, reward_k, next_state_k, done_k = episode[k]
self.V[state_k] += self.alpha * td_error * E[state_k]
E[state_k] = self.gamma * self.lambd * E[state_k] if k < T - 1 else 0
동적 계획법, 몬테카를로, 시간차 학습의 관계
728x90
반응형
'AI > 강화학습(RL)' 카테고리의 다른 글
[RL] 가치 기반 강화학습 (NFQ, DQN, 이중 DQN, DQNPolicy, 듀얼링) (7) | 2024.09.05 |
---|---|
pytorch 설치 안되는 경우 (0) | 2024.09.04 |
강화학습, 딥러닝 사이트 추천 (0) | 2024.09.04 |
[RL] MAB, Epsilon, 낙관적 초기화 (3) | 2024.09.03 |
[RL] 행위자, 환경, gym, 수익, 가치, 보상, 이득 (9) | 2024.09.02 |
댓글