: "어떤 환경에서 어떤 행동을 했을 때 그것이 잘된 행동인지 잘못된 행동인지를 판단하고 보상/벌칙을 주는 과정을 반복해서 스스로 학습하게 하는 분야"
환경: 에이전트가 관측할 수 있는 정보
에이전트: 환경에서의 행동주체. 에이전트는 환경에 대해 여러가지 행동을 반복하면서 최적의 행동을 학습
: 환경과 상호작용하는 에이전트를 학습시키는 것. 에이전트는 상태(State)라고하는 다양한 상황 안에서 행동(Action)을 취하며, 학습을 진행한다. 에이전트의 행동에 대한 응답으로 보상(Reward)를 돌려받는다.
상태(State): 에이전트가 가질 수 있는 모든 상태의 집합(S). 개별 요소(s)는 에이전트가 위치하거나 위치할 수 있는 상태를 의미
행동(Action): 에이전트가 위치하고 있는 상태(St)에서 가능한 행동의 집합(A). 개별 요소는 특정 시점에서 특정 행동(a)을 하는 것을 의미
(시간): 상태나 행동에 대한 시점정보. 현재상태를 나타낼 때 St로 표현, 현재시점에서 가능한 행동을 At로 표현
: 미래상태는 현재상태로만 결정되며, 현재상태까지의 과정(과거상태)은 고려할 필요가 없다. 정확하게는 과거와 현재상태를 모두 고려했을 때와, 현재상태만 고려했을때에 대해 '미래 상태가 나타날 확률'이 동일하다는 의미.
(필요X이지, 영향X가 아니다) ('영향'이 '필요'보다 더 큰 개념이라고 생각. 예를 들어 체스판에서 상대가 수를 둔 상태에서, 나는 상대가 s-1, s-2번 상황에서 무엇을 놨는지와 관계없이 지금 놓인상태에서 최적의 수를 찾아야하는 것이지, s-1,s-2번째 수의 영향을 받지않는 것이 아님.)
(영향O여도 필요X 상태로 만들면 마르코프 상태로 만들 수 있다. 즉, 과거 정보를 알아야한다면(필요O) 마르코프하지않지만, 같은 상황이여도 과거 정보를 아는 상태(필요X)로 만들어주면 마르코프상태가 될 수 있음)
-마르코프O
예시 체스게임
: 과거의 행동정보 필요X. 이미 놓인 판으로 내가 모든 알기 때문에 현재 상황에서의 최선의 수 탐색가능 (알기 때문에 필요X)
-마르코프X
예시 사진만으로 된 운전자의 상황
: 과거의 행동 정보 필요O. 속도, 방향과 같은 추가 벡터 정보없이는(혹은 1~2초 전 사진), 운전자가 엑셀을 밝아야할지, 브레이크를 밝아야할지 판단할 수 없음. (운전자는 과거 행동의 영향을 받지만(항상 영향O), 필요O 상황이라면 마르코프하지않고, 필요X 상황이면 마르코프하다(영향과 필요의 개념 분리).
= (필요X라는 말은, 이미 알기때문에 필요가 없다는 의미로도 볼 수 있다. 즉, 과거 정보가 없는 상황(필요O) -> 아는 상황(필요X)로 만들어주는 것을 통해 환경을 마르코프한 상태로 설계해 강화학습을 진행할 수 있다.)
: 미리 정의된 어떤 확률 분포를 따라서 상태와 상태 사이를 이동(전이)하는 프로세스(확률, 상태)
-예시
-아이가 취할 수 있는 상태(state)는 5가지(S0~S4)
-1분마다 상태에서부터 다음 상태로 상태전이(state transition)되는 것으로 가정
-최초의 상태는 S0(누워있는 상태)
-S0에서 S1로 갈 확률은 40%, S2로 갈 확률은 60% (확률의 합은 항상 1)
-S4에 도달하는 순간 마르코프 프로세스는 끝
: Markov Process에서 Reward
개념이 추가된 프로세스. 즉, 각 상태마다 '좋고 나쁜 정도'가 추가된 확률모델
G
로 표기한다.-가치함수(v): 현재상태가 s일때, 앞으로 발생할 것으로 기대되는(E) 모든 보상의 합. 모든 경우의 수를 계산하기 어려우므로, 샘플 에피소드를 추출해서 평균값을 계산하는 방법 등을 사용
: Markov Reward Process에서 Action
개념이 추가된 프로세스. 즉 에이전트의 '의사결정'이 추가된 확률모델
(P: S상태에서 S’상태가 될 확률 -> S상태에서 에이전트가 a를 선택(행동)했을 때 S’상태가 될 확률)
(R: 보상도 마찬가지로, 왼쪽 '조건'부분에 At=a가 추가. 즉, 액션(A)을 선택하는 것에 따라 보상이 달라짐)
환경
은 바꿀 수 없지만, 제자리에 있을지(a0), 다음칸으로 이동할지(a1)를 선택하는 것에 따라, 다음상태가 어떤 상태가 되느냐
S(s0,s1,s2)의 확률이 달라진다.): 에이전트가 놓인 상태 가치를 표현한 함수. 상태(s) 에서 얻을 수 있는 리턴(G)의 기대값. 즉각적보상(①)과 잠재적 보상의 합(②)
(문제해결방안-DP,몬테카를로,시간차,함수)
: 행동에 대한 가치를 표현한 함수. 상태(s)에서 특정 행동(a)을 취했을 때 얻을 수 있는 리턴(G)의 기대값.
-a2가 추가되어 늘어, A가 2개에서 3개가 되는 것만으로도 에피소드 샘플이 복잡해지고, 가능한 경우의 수가 늘어난다(S가 느는 것도 마찬가지).
-이처럼 가치함수를 계산하는 방법은 O(N^3)의 시간복잡도가 필요하기 때문에, 상태, 액션 수가 많아질수록 복잡해진다. 가치함수를 계산하는 대표적인 방법은 아래 4가지가 있다. (딥러닝의 SGD, 배치, 미니배치와 비슷한 역할로 이해)
: 상태-가치함수와 행동-가치 함수의 관계를 나타내는 방정식
: 가치함수(v)는 특정 상태(s)에서의 미래 보상을 포함한 가치를 나타낸다. 이때, 어떤 정책에 따라 행동하는 것이 보상의 합(G)을 높일 수 있을지를 고려한 다음상태로의 이동이 벨만 기대방정식.
MDP의 상태가치함수 도출
-현재 시점에서 미래에 기대되는 보상들의 총합
-St+1에 대한 기대값을 더하는 재귀적 형태
벨만기대방정식
0단계: 다음단계의 Reward(즉각적보상)과, 감쇠인자를 곱한 다음상태의 상태가치함수를 더함. 행동가치함수도 같은 맥락
1단계:
->현재상태(s)에서
어떤 행동을 선택할 확률
에, 각 행동(a)에 대한 행동가치함수를 곱한 값의 합
->a1을 선택할 확률이 0.6, a2를 선택할 확률이 0.4이고, a1에 대한 행동가치함수의 값이 1, a2에 대한 행동가치 함수의 값이 2일때의 '상태가치함수'
->행동가치 함수는 같은 매커니즘에서,
어떤 행동을 선택할지 확률
대신 어떤 행동을 했을 때 어떤 상태로 전이될 확률
과 상태가치함수를 곱한 값의 합.
->a1을 선택했을 때 s에서 s1으로 갈 확률이 0.7, s2로 갈 확률이 0.3이고, s1에 대한 상태가치함수의 값이 1.5, s2에 대한 상태가치함수의 값이 -1일때의 '행동가치함수'
2단계:
->상태가치함수: 각 행동에 대한 행동가치함수 값을 대입
->행동가치함수: 다음 상태에 대한 상태가치함수 값을 대입
: 강화학습에서 추구하고자하는 목표는 최적의 가치함수 값을 찾는 것이 아닌, '최대의 보상을 얻는 정책을 찾는 것'이다. 즉, 최대희 보상을 얻기 위한 정책을 찾기 위해 최적의 가치함수(가치 함수 값이 가장 큰 값)를 찾는 것이다.
큐러닝, 몬테카를로 트리 탐색에 대한 내용은 실습 내용이므로, 내용 읽으면서 코드 실행해보면 이해하기 어렵지 않으실 겁니다.