기본적으로


지도학습과 비지도 학습 같은 기본 개념부터 소개한다고 하는데


강화학습에는 ML/DL 개념을 다루는데, 보통의 책들은 RL이라는 개념부터 시작함


RL은 무엇일까?


이것정도는 뭐 찾으면 금방 이해할거임 프붕이들은 전반적으로 나보다 똑똑하니까



22a8c334abc236a14e81d2b628f17269f36298


RL(Reinforcement Learning)-강화학습


고전적인 강화학습의 모델은 위의 짤로 요약할 수 있음.


단축어와 용어는 다음과 같음


일반적으로 에이전트(Agent)는 제어자임


가령 게임이 있고 플레이어가 있다치면, 그 플레이어를 대신하는 것이며 게임상에서 흔히 유저가 움직일 수 있고 유저처럼 움직이게 하려는 것이 에이전트임


액션(A_t) 액션은 기본적으로 유저가 플레이허라때 인풋으로 넣는 값들과 비슷한 것. 가령 게임에서 공격,점프, 움직임 이렇게 있으면 이 3개가 액션으로 분류 할 수 있음.


환경(Environment) 환경은 보상을 제공하는 객체임. 일부 게임의 규칙등이 여기에 해당


보상(R) 보상은 목표가 분명할때, 목표에 가까울때 점수를, 목표에서 벌어지면 감정을 받음. 궁극적으로 높은 이익에 부합하는 것이 강화학습의 핵심임


상태(S) 상태는 환경의 상태라고 이해할 수 있음


일반적으로 작동원리는


전략적 결정에 따른 액션-> 액션을 감지하며 환경 상태 회득->최종적인 보상 계산을 받ㅇ음.


그리고 나서 계속해서 전략->행동 수행->인식->보상을 얻는 과정을 계속 따름


근데 또 많은 애들은 지도학습(SL)과 RL의 차이점이 존재한다는 것을 인지를 못함

그럼 어떤 차이가 존재할까?

-SL에는 어떤 출력에 해당하는지 알고리즘에 알려주는 레이블이 존재함.

-RL에는 주어진 상황에서 어떤 행동을 수행해야하는지 알려주는 레이블이 존재하지 않음. 결국 일련의 액션 수행후 최종적으로 피드백되는 보상만이 존재하며, 현재 선택의 점수 판정 유무만 판단함


따라서 RL의 목표는 동적환경과 상호작용할때, 전략 가치의 극대화이고, SL의 목표는 훈련 데이터 세트에서 최적의 모델함수를 찾는 것.


RL도 갈래가 크게 2가지로 나뉨


Value Function 기반 접근법 - Value Function 여기선 가치함수라고 말하겠음. 가치 함수 기반 접근법은 최적의 가치 함수를 찾기 위한 수단으로 State 또는 State에서 Action으로의 행동에 대한 가치를 풀어 최적의 가치 함수를 찾고, 가치함수에 의해서 최적 전략을 추출하는 방식


전략기반 접근법(AI Strategy Policy-Based Methods) - 전략 평가를 우선 수행, 현재 탐색된 전략 함수 평가 후, 평가값을 얻은 후, 전략 개선 수행->전략이 수행할때가지 이 단계를 반복함


일반적으로 로봇 제어쪽은


연속 동작 시나리오에 적합한 PG(Policy Gradient)와 Actor-Critic(액터-크리틱 알고리즘)을 쓰고,

Actor는 매개변수화된 정책, 즉 Polclicy Function을 학습하고, Critic는 상태-행동의 페어를 평가하는 Value Function을 학습함.


따라서 Actor-Criti는 기본적으로 정책 기반과 가치 기반을 결합한 하이브리드 방식임.

Actor는 정책을

Critici은 가치함수를 학습함


이걸 개선하는게 TRPO 알고리즘., PRO 알고리즘임


따라서 일반적으로 PRO 알고리즘은 Actor-Critic 아키텍쳐라고 할 수 있음.


근데 이렇게 아무리 말을 해도 RL이 어떤 수학적 논리를 전제로 하는지 모르기때문에 뭔 말인지 모를꺼임


RL은 기본적으로 마르코프 결정 과정(MDP,Markov Decision Process)을 기반으로 함


마르코프 의사 결정 과정이란?


내가 이해한바로 쉽게 요약하자면

확률론적 과정을 마르코프 의사결정 과정이라고 말함



3db4c368efc23f8650bbd58b3687726ae933


상태가 확정적으로 다음 상태로 넘어가면 좋겠지만 실제로 인간은 그러지 않음.


프붕이가 매일 1딸을 친다고 하자. 근데 내일 2딸을 칠 확률이 100% 확신할 수 있어? 없지?


여기서 M모델이라는 걸 도입하는데 M모델에서는 상태를 가정함


1.M^2 모든 상태는 다음 전이 상태가 될 수 있는 총 상태전이가 존재함

2. 각 상태 전이에는 상태 전이 확률이라는 확률 값이 있는데, 이는 한 상태에서 다른 상태로 전이할 확률과 동일함


따라서 모든 M^2 확률은 상태 전이 행렬도 표현가능함.



즉 여기서 마르코프 과정이 이제 State(상태)마다 상태를 가정함.


24ae9e36ebd518986abce89545867768
무작위 프로세스가 특정 순간의 상태에 이전 순간의 상태에 의존하는 경우


즉 어떤 행위가 상태가 되기전에 어떤 상태여야하는 경우 '마르코프' 속성을 가진다고 함


즉 P(S_t+1|S_t)는 현재 상태는 이전 상태에 의존하고, 실제로는 이전상태에 대한 정보를 가짐


마르코프 속성을 갖는 무작위 프로세스를 마르코프 프로세스라고 함


마르코프 프로세스는 보상함수 R과 감쇠인자 γ를 바탕으로 얻을 수 있음. 이를 MRP 라고 함



24aec368f5dc3f8650bbd58b36837568e0

어떤 State(상태)에서 얻을 수 있는 보상은 '지속적'이기때문에 모든 보상 감쇠의 합을 보상이라고하는데, 이는 즉각적인 순간의 보상과

모든 지속적 보상(일반적으로 state가 뒤로 갈 수록 보상이 줄어드는 것을 고려하기때문에 위의 식과 같은 가중치 합을 나타냄


즉 보상감쇠는 미래의 보상에 대한 현재 가치의 중요도를 결정함.


γ이 0에 가까울 수록 에이전트는 즉각적 보상에 집중,

γ가 1에 가까울수록 장기적인 보상을 고려함. 이를 통해서 에이전트가 미래의 보상을 얼마나 중요하게 여길지 조절


좀 쉽게 예시를 들어줌


니가 오늘 선택지로 프로그래밍 하기, 딸딸이 치기, 식사하기 하면


오늘 프로그래밍 하기가 니 인생에 더 도움된다는거 알꺼임. 왜?

프로그래밍을 하면 프로그래밍으로


앱 서비스 개발->대박->돈으로 예쁜 마누라와 결혼해서 폭풍 ㅆㅆ를 할 수 있는 등의 좋은 일이 있음.


자, 그럼 프로그래밍은 아주 높은 보상을 얻는 것임


그래서 프로그래밍으로 인해서 저 많은 작용들이 연쇄적으로 작용하지만 뒤로 갈수록 저 처음 시작한 프로그래밍 요소가 모든것에 기여하지 않은 것은 알거임.

대박 쳐서 돈이 늘고 자신감을 얻어서 마누라도 얻는 게 프로그래밍을 시작함으로써 얻은 것은 어느정도 영향은 있지만 그게 프로그래밍 하기 선택지의 일때문이라고 만할 수 없는거

그리고 모든 이러한 보상들이 '프로그래밍 하기'로 인해서 생기는 영향이 아닌 것은 알거임


그렇기때문에, 초기에 보상을 점점 감소시키는 감쇠함수를 도입하는거


그럼 프붕이들은 의문점이 들거임. 그게 보상이란 뭔 상관인데 씹덕새끼야


어떤 상태의 예상 보상을 이 상태의 가치(Value)라고 하며, 모든 State의 값은 소위 앞서 말한 ValueFunction(가치함수)를 형성하는데


아래와 같은 형성이 됨



22adc868f5dc3f8650bbd58b3683736f5b


이게 뭔 식이냐


우선 식을 2부분으로 나눠라


22adc874abc236a14e81d2b628f1756cc473

->이 식은 현재 상태에서 얻은 즉각적 보상을 나타냄


22adc875abc236a14e81d2b628f1756f33b2

->현재 상태에 도달하기까지 지속적으로 얻었던 보상을 나타내고, 이는 State에서 시작하는 전환확율을 기반으로 얻어냄.

결국 마지막에서는


22adc377abc236a14e81d2b628f1756ad4e3

이렇게되는거.


아마 이 이후 이야기로는 이 식의 마지막 도출 과정에 대해서 의문을 가질거임. 왜? 대부분 책에서는 설명을 안하니까


그럼 마지막 과정을 어떻게 도출하는가

Bellman equation이라는 방정식을 쓰는데


나중에 시간 나면 계속 써봄

내일 노가다해야되서 자러감 수고