9장 강화 학습과 게임 지능

다중 손잡이 밴딧 문제

1달러를 넣고 손잡이를 골라잡아 당기면 1달러를 잃거나 획득

이때 손잡이 마다 확률이 존재, 사용자는 확률을 알 수 없다

행동 집합 {손잡이1, 손잡이2, 손잡이3 ,… 손잡이 n}

보상 집합 {1,-1}

위 문제는 상태변화가 존재하지 않고 행동 → 보상 사이클 개념

탐험형 정책: 처음부터 끝까지 무작위로 선택

탐사형 정책: 몇번 시도 후에 승률이 가장 높은 것을 채택하는 극단적인 방법

→ 둘 사이의 균형이 중요

그리디 알고리즘: 과거와 미래를 고려하지 않고 순간의 정보만 가지고 현재 최고의 유리한 선택을 하는 알고리즘 → 탐사형에 가까움

ε-탐욕 알고리즘: 기본적으로 그리디 알고리즘이지만 ε 비율 만큼만 탐험을 적용하여 탐사와 탐험의 균형을 추구한다

입실론 그리디 알고리즘은 기본적으로는 그리디 하지만, 입실론 비율만큼 탐험을 적용하여 탐사와 탐험의 균형을 추구한다.

몬테카를로 방법 : 현실 세계의 현상 또는 수학적 현상을 난수를 생성하여 시뮬레이션

Frozen Lake 문제 : 환경 ,상태, 행동

에이전트가 정책에 따라 행동을 주면 환경은 상태를 업데이트 하고 보상을 준다 (사이클)

마르코스 결정 프로세스는 상태, 행동, 보상으로 구성되며 특정 행동을 취했을 때 발생하는 상태변환을 지배하는 규칙 정의

상태 집합: S={s1,s2…}

행동 집합: A={a1,a2…}

보상 집합: R={r1,r2…}

보상이 주어지는 시점이 다르다는 점에서 차이점이 있다

벤딧 - 즉시 보상

Frozen Lake - 지연 보상 ( 대부분의 문제가 지연 보상이다)

상태 전이

  • 결정론적 환경(100% 확률로 새로운 상태가 정해진다)

ex 프로즌 레이크 문제에서 right를 선택하면 100프로 오른쪽으로 이동

P(s’ = 2 , r = 0 | s = 1 a = 2) = 1.0 상태 1에서 행동 2를 취하면, 새로운 상태 2로 변경하고, 보상이 0 일 확률이 1.0

  • 스토캐스틱 환경 ( 확률분포에 따라 새로운 상태 정해짐)

강화 학습에서 학습 알고리즘이 해야할 일 : 누적 보상을 최대화 하는 최적 정책을 알아내야 한다

최적 정책: 다중 손잡이 밴딧은 승률이 가장 높은 4번 손잡이를 당기는 정책

프로즌 레이크에서는 상태 4에서 행동 1을 취해 안전한 길을 찾는다

최적 정책을 찾는 전략 → 가치 함수(나열법):정책의 품질을 평가하는 함수

신경망 학습과 마찬가지로 ㅠ1으로 초기화 한 후에 ㅠ1을 ㅠ2로 개선하고 ㅠ2를 ㅠ3로 개선해서 최적 정책 ㅠ^ 으로 수렴

프로즌 레이크 문제에서 어떤 상태로 이동할 확률 0.5

마지막 상태에서 도착점으로 들어갈때 확률은 1.0

거기다가 보상까지 1

보상 없으면 0을 곱한다

벨만 기대 방정식

상태들이 서로 밀접한 관련성이 있다

우변에 자기 자신을 포함하는 순환식 형태

예를들어 v1(6) = 시그마 (가능한 모든 행위 조건 - 2 오른쪽, 1 아래) P(a|6)(r+v(s’))

P(2|6)(0+v(7)) + P(1|6)(0+v(10)) =

0.5* 0 + 0.5 * 0.5 = 0.25

할인율을 적용한 벨만 기대 방정식

기존 벨만 기대 방정식에 감마만 추가

에피소드에서 데이터를 수집하는 방법은 상태를 중심으로 에피소드를 자른다

DQN 작동원리

  1. 초기화: 신경망의 가중치를 랜덤으로 초기화하고, 경험 재현 메모리를 비웁니다.
  2. 행동 선택: 탐험(Exploration)과 이용(Exploitation) 사이의 균형을 맞추기 위해 ε-탐욕 정책(ε-greedy policy)을 사용하여 행동을 선택합니다.
  3. 상태 전이 및 보상 관찰: 현재 상태에서 선택한 행동을 수행하고, 다음 상태와 보상을 관찰합니다.
  4. 경험 저장: 관찰한 경험(상태, 행동, 보상, 다음 상태)을 경험 재현 메모리에 저장합니다.
  5. 미니배치 학습: 경험 재현 메모리에서 무작위로 미니배치를 샘플링하여 신경망을 학습합니다.
  6. Q-함수 업데이트: 손실 함수를 통해 Q-함수를 업데이트합니다.
  7. 타깃 네트워크 업데이트: 일정 주기마다 타깃 네트워크를 업데이트하여 학습의 안정성을 높입니다.

경험 리플레이 메모리의 동작 원리

  1. 경험 저장: 에이전트가 환경에서 상호작용하면서 얻은 경험(transition)을 메모리에 저장합니다. 경험은 일반적으로 상태(state), 행동(action), 보상(reward), 다음 상태(next state)로 구성됩니다.
  2. 메모리 유지: 메모리는 한정된 크기를 가지며, 새로운 경험이 추가되면 오래된 경험은 제거됩니다. 이를 통해 최신 경험을 더 많이 반영할 수 있습니다.
  3. 미니배치 샘플링: 학습 단계에서 메모리에서 무작위로 일정 크기의 미니배치(mini-batch)를 샘플링하여 사용합니다. 이를 통해 학습 데이터의 다양성을 확보하고, 학습 과정의 안정성을 높입니다.
  1. 추출한 샘플로 바로 학습 X 리플레이 메모리에 저정
  2. 실제 학습은 리플레이 메모리에서 랜덤하게 추출하여 미니배치로 수행
  3. 리플레이 메모리가 가득 차면 오래된 것을 삭제하고 추가하는 큐 형태로 구현