본문 바로가기

Prev Contents/Deep learning

[그림으로 배우는 딥러닝] 21장. 강화학습 (825~889p)

21. 강화학습

기본 아이디어

강화학습에서는 행동의 선택권을 갖고 있기 때문에 당신을 행위자 또는 에이전트라고 말한다.
그 공간의 다른 모든 것은 함께 환경으로 뭉뚱그려진다.

에이전트의 행동 후에 선호하는 기준을 사용해 행동이 얼마나 좋았는지 알려주는 보상 또는 피드백을 받는다 (이는 일반적으로 하나의 숫자).

최선의 결과를 알지 못하는 문제에 맞는 답을 찾는 데 도움을 줄 수 있다.
또한, 불확실성을 모델링하는 좋은 방법을 제공

새로운 게임 배우기

게임에서 에이전트의 턴이 시작될 때 환경은 에이전트에게 현재 보드의 상황과 사용할 수 있는 이동 목록을 제공
어떤 경우에는 에이전트에게 사용할 수 있는 이동 목록을 제공하지 않는다.

강화학습의 구조

훈련을 시작할 때 환경을 초기 상태로 설정, 전체 훈련 주기를 에피소드라고 한다.

1단계: 에이전트가 행동을 선택

에이전트는 액세스할 수 있는 비공개 정보와 함께 정책이라는 알고리즘을 사용해서 행동 목록에서 행동을 선택
일반적으로 에이전트의 비공개 정보를 데이터베이스로 생각한다.
정책은 일반적으로 파라미터 집합에 의해 제어되는 알고리즘이다.
파라미터는 일반적으로 에이전트가 개선된 행동 선택 정책을 플레이하고 검색하면서 시간이 지남에 따라 변경
선택한 행동이 환경에 보고되어 환경이 행동을 수행한다.
에이전트는 환경에게 자신이 하고 싶은 행동을 전달하고,
환경은 그대로 따르고,
상태를 유지해 항상 현재 상황에 대한 정확한 그림을 보여 준다.

2단계: 환경이 응답

환경이 하는 일:
환경은 에이전트의 행동을 처리해 새로운 상태를 생성
환경은 새로운 상태를 저장하여 에이전트가 다음 행동을 선택할 때 새 환경을 반영, 가능한 작업을 결정
환경은 선택한 행동이 얼마나 좋았는지 알려주는 보상 신호를 제공

3단계: 에이전트가 자체 업데이트

에이전트는 보상 값을 사용해 비공개 정보와 정책 파라미터를 업데이트

큰 그림으로 돌아가기

궁극적인 보상을 공유하는 방법을 찾는 것 - Credit assignment problem
새로운 행동으로 위험을 감수하고 탐색할지, 아니면 안전하게 플레이해 이미 학습한 것을 이용할 것인지 결정 - Explore or Exploit dilemma

보상 이해

Discounted Future Reward, DFR (할인된 미래 보상): 신뢰 할당 문제를 해결

즉각적인 보상: 환경이 반응하기 전에 방금 수행한 이동의 품질을 알려줌
결과적 보상: 환경이 반응한 후 방금 수행한 이동의 품질을 알려줌

예측할 수 없는 요소가 있는 실제 환경은 확률적이라고 함
할인 계수를 사용해 환경의 확률 또는 불확실성에 대한 추정치를 수량화
할인 계수를 사용해 DFR을 생성할 수 있다.
단순히 전체 미래 보상처럼 행동 후에 오는 모든 보상을 합산하는 대신 즉각적인 보상으로 시작
미래의 각 단계에 대해 할인 계수를 한 번씩 곱해 후속 보상의 값을 줄인다.

강화학습 실 사례에서 0.8 또는 0.9의 할인계수 값을 선택한 다음 시스템이 얼마나 확률적이며 에이전트가 얼마나 잘 학습하는지 확인하여 값을 조정하게 된다.

플리퍼

L-러닝

L은 '엉망'의 L(ousy)이다.

기초

움직임이 얼마나 좋은지 학습할 때 값을 L-테이블에 저장하고 게임을 하면서 실행한 모든 움직임을 기록
게임이 끝나면 전체 게임의 움직임을 되돌아보고 각각의 값을 결정 - 이전 값과 새 값을 결합하는 방법을 업데이트 규칙이라고 한다.

L-러닝 알고리듬

에이전트가 각 움직임 후에 시작 보드, 에이전트가 취한 행동, 돌려받은 즉각적인 보상과 해당 움직임의 결과 보드로 구성된 작은 묶음을 유지한다.
행동할 때마다 보드가 표시되므로 테이블의 해당 행을 찾고 해당 행에서 가장 큰 L-값을 선택해 해당 열의 행동을 선택한다.

알고리듬 테스트

환경이 완전히 예측할 수 있는 상태로 유지되는 한 괜찮지만, 이러한 결정론적인 게임과 환경은 드물다.

예측 불가능성 처리

무작위 이벤트로 인해 한 번 나쁜 움직임으로 바뀌었기 때문에 이것이 훌륭한 움직임이라는 것을 "잊었다". 이 낮은 점수로 인해 해당 움직임을 다시 선택하지 않을 것이다.
항상 엉망으로 실패하는 것은 아니니 예측할 수 없는 상황에서 실패하는 방법만 수정하면 된다.

Q-러닝

두 가지 중요한 원칙으로 시작:

1) 처음부터 불확실성을 구축
2) 진행하면서 새로운 Q-테이블 값을 계산

Q-값과 업데이트

해당 셀의 할인된 값을 사용, 이는 0부터 1사이의 숫자로 할인 계수를 곱한다.
새 셀의 값을 이전 값과 새 값의 혼합으로 업데이트하는 것으로 혼합의 양은 지정하는 파라미터이다. (학습률)
학습률은 일반적으로 0.9 또는 0.99와 같이 1에 가까운 값으로 설정

Q-러닝 정책

정책 규칙은 환경 상태가 주어졌을 때 어떤 작업을 선택해야 하는지 알려준다.
예측할 수 없는 환경에서 최고의 보상을 가져다주는 움직임이 때로는 최고의 보상을 가져다 주지 않을 수도 있다.

이를 표현하기 위해,

1) Epsilon-greedy 또는 Epsilon-soft 접근 방식이나
2) Softmax 정책을 사용할 수 있다.

각 작업을 선택할 확률이 항상 주어진 상태와 관련된 모든 작업의 가장 최신 Q-값을 반영한다.
하지만, 수렴하지 못할 가능성이 있어 Mellowmax 정책이라는 약간 다른 수학을 사용하기도 한다.

하나로 결합

Figure 21-29: 앞의 모든 내용을 결합하고 행동 테이블을 업데이트 하는 방식

골치 아픈 문제

아직 생성되지 않은 데이터를 어떻게 사용할 수 있는가?
Q-테이블을 모두 0으로 초기화한 다음 학습을 시작해도 언젠가 수렴한다.

Q-러닝 실습

SARSA

엡실론-그리디 정책과 소프트맥스 정책 중,
다른 작업 중 하나를 선택하는 경우 다음 동작에서 가장 높은 점수를 받을 작업을 선택한다는 가정에 위배된다.

알고리듬

실제로 다음 행동으로 선택하지 않을 확률이 있을 때,
가장 높은 점수를 받는 다음 행동의 Q-값을 사용해 행동의 Q-값을 계산하는 실수를 피하자.
SARSA는 State-Arction-Reward-State-Action의 약어로 마지막 Action에 대한 추가 작업에 관한 것이다.
SARSA는 정책에 따라 다음 셀을 선택하고 (가장 큰 셀을 선택하는 대신) 행동 선택을 기억하여
다음 상태에서 잘못된 셀을 선택하는 문제를 해결
새로 이동할 때 이전에 계산하고 저장한 행동을 선택
즉, 행동 선택 정책을 적용하는 시점을 옮겼다.

Q-러닝과 SARSA 비교

큰 그림

요약