인공지능/공부

강화 학습 복습 2

이게될까 2024. 3. 27. 18:36
728x90
728x90

1강 - 강화학습이란

강화학습 = Trial and Error을 통해 학습하는 방법

순차적 의사 결정 문제 = 시간 순서대로 주어진 상황에서 목적에 도달하기 위한 행동을 취하고, 그에 변화한 상황을 근거로 다시 행동을 취한다.

보상 == 피드백 = 의사 결정을 했을 때 잘 했는지 못했는지를 알려주는 수치(스칼라 값)
보상은 지연될 수 있으며, 어떤 행동으로 인해 보상으로 주어졌는지 판단을 나중에 할 수 있다. 

강화학습 목적 = 누적 보상의 최대화 

에이전트 == 학습자 = 현재상황 St에서 At를 결정한다. 그럼 그에 따른 보상 R(t+1)을 받고 다음 상태S(t+1)의 정보를 받는다.

환경 = 에이전트를 제외한 모든 요소

강화 학습의 장점 - 병렬성, 자가학습 

 

2강 - 마르코프 결정 프로세스

마르코프 프로세스 == MP = 상태(S)가 있고, 상태의 변화를 확률적(P)으로 정의한다.

미래는 오직 현재에 의해 결정되며, 즉 St이전의 S(t-1)은 영향을 주지 못한다. St는 한장의 사진도 될 수 있지만 10장의 사진도 될 수 있다. 어떻게 정의하느냐에 따라 다르다.

 

마르코프 리워드 프로세스 == MRP = MP에 보상(R)의 개념이 추가되었다.

감쇠인자(0~1)가 추가되어 미래의 보상을 얼마나 중요하게 여길지 알려주는 파라미터가 있다. -> 리턴이 과도하게 커지는 현상 방지, 미래의 불확실성 반영

 

에피소드 = S0 시작 ~ ST 끝 까지 가는 여정 

리턴 == Gt = t시점부터 에피소드가 끝날 때 까지 받는 보상의 합 -> 강화학습은 리턴을 최대화 하도록 학습

리턴

밸류 평가 = 현재 상태에서 미래에 받을 보상을 평가 == Gt의 기댓값(확률) 측정 

상태 가치 함수 = 임의 상태 S의 밸류 평가 

 

마르코프 결정 프로세스 == MDP = MRP에 액션(A)의 개념이 추가되었다.

상태 가치 함수 = 에이전트의 정책에 따라 리턴(G)이 바뀐다. => 정책의 현재 가치 파악 가능하다. 

정책 함수 = 현재 상태(S)에서 어떤 액션(A)을 취할지 선택해준다. => 액션의 결정 

액션 가치 함수 = 현 상태(S)에서 액션(A)의 가치 평가 => 어떤 액션이 좋은지 알려준다. -> 최선 액션의 나열 == 정책 

Prediction = 정책이 주어졌을 때 각 상태의 벨류를 평가하는 문제

Control = 최적 정책을 찾는 문제
MDP에서 최적 정책이 최소 한개 존재한다고 수학적으로 증명되어 있다.

 

 

3강 - 벨만 방정식

벨만 방정식 = 시점 t와 t+1사이의 벨류의 관계 및 가치 함수와 정책 함수 사이의 관계도 다룬다. 

기대 방정식 0단계
q를 이용해 v 구하기
v를 이용하여 q 구하기
v로 v 구하기
q로 q 구하기

여기서 우린 무조건 보상함수 (r)과 전이확률(P)를 알아야 한다.

대부분 MDP를 모르기 때문에 경험에 의한 학습을 진행한다. = model free

MDP를 알 때 = model based

최적 밸류 = 최고 값의 상태 가치 함수 v, 액션 가치 함수 q -> 최적 정책을 따를 때 보상의 총합이 가장 크다. -> 최적 정책을 따르면 최고 값의 상태 가치 함수, 액션 가치 함수를 얻을 수 있다.

최적q를 이용해 최적v 구하기
최적 v를 통해 최적 q 구하기

 

4강 - MDP를 알 때의 플래닝

반복적 정책 평가

여기서 k는 시점이다. 이전의 t와는 다르다.

그리드 월드에서 4방향을 다 갈 수 있다고 하면 4방향의 테이블의 가치v가 확률 p에 곱해지고(그리드 월드라면 보통 1이다.), 감쇠인자에 곱해져서 보상과 더한 뒤 또 4방향이므로 정책의 0.25를 곱해서 나오게 된다.

이 행동이 k가 무한에 수렴한다면 최적의 정책이 구해지게 된다.

최적의 정책 = 최고의 v를 계속해서 따라가기 => 여기선 Greedy policy : 미래를 생각하지 않고 당장 다음 칸의 가치가 가장 큰 것을 선택

정책 평가 = 고정된 정책에 대해 각 상태의 가치 v를 구한다.

정책 개선 = 정책 평가의 결과에 따라 새로운 그리디 정책 선정

수렴할때 까지 반복한 것을 또 최적의 정책을 찾을 때 까지 반복해야 하므로 반복 횟수가 너무 많다!

정책 평가 부분 간소화

빠르게 정책 평가하여 정책 새건이 빨라지지만 진동이 커진다. Like SGD

 

벨류 이터레이션

모든 액션에 대한 최대값을 사용한다.

 

 

5강 - MDP 모를 때 벨류 평가하기

모든 상태에서의 보상을 모른다 => 가보기 전(경험)에는 모른다. 

몬테카를로 학습 == MC = 여러번 경험하여 확률을 알아낸다. (대수의 법칙 Law of large numbers) 

보상 r과 전이 확률 P를 모르는 상황 == MDP를 모른다 = model free

가치 함수 계산 = St에서 여러번 리턴을 구한 후 평균 취하기

벨류 계산

여기까진 한꺼번에 업데이트하고, 조금씩 업데이트 하는 방식도 있다.

a = 1/n, 1-a = (n-1)/n

a는 초기엔 크고, 점점 작아지는게 효과적이다.

 

Temporal Difference 학습 == TD => 에피소드가 끝나지 않아도 계산할 수 있다.

추측을 추측으로 업데이트하자, 미래의 추측으로 과거의 추측을 업데이트

여기도 S(t+1)을 현재 상태로 본다. 업데이트를 반복하다보면 수렴한다.

TD : 상태의 변화가 일어나자마자 테이블의 값을 업데이트 

명확한 종료 조건이 없거나, 하나의 에피소드가 길어지면 TD를 사용한다.

 

편향성 (bias) - MC가 우세 

MC : 여러개의 평균을 구하므로 편향되지 않는다.

TD : 충분히 진행되기 전에 편향되어 위험하다. 

 

분산 (variance) - 변동성 - TD가 우세

MC : 에피소드가 끝나야 업데이트하기 때문에 다양한 값을 가질 수 있어 분산이 크다. 

TD : 한 샘플만 보고 업데이트하기 때문에 분산이 적다. 

 

n - step TD = TD에서 여러 스텝을 진행하고 난 뒤 추측치를 이용

스텝을 무한으로 간다면 MC와 비슷해진다. => N이 클수록 bias는 줄고, variance는 커진다. 

 

6강 - MDP 모를 때 최고의 정책 찾기

몬테카를로 컨트롤 

반복적 정책 평가

반복적 정책 평가를 사용할 수 없는 이유 : r과 P를 모른다. => 벨만 기대 방정식을 사용할 수 없다.

벨만 기대 방정식

정책 개선 단계에서 그리디 정책을 만들 수 없다. => 전이확률 P를 모르기 때문에 액션 a를 취했을 때 어떤 상태 S에 도달할 지 모른다.

 

해결 == 평가 자리에 MC, V대신 Q 사용, 확률적 그리디 사용

1. MC를 통해 v를 구할 수 있다.

2. v 대신에 액션가치 함수 q를 이용한다. => MC를 통해 q를 구하여 새로운 그리디 정책을 만든다.

3. 확률적 그리디를 사용하여 다양한 경험을 통해 최적 길을 찾는다.

입실론은 처음에는 크다가 점점 작아진다. => 학습을 진행하면서 값이 정확해지면 랜덤값이 필요없기 때문이다.

 

 

728x90