questionet

강화학습이란? 본문

Deep learning/강화학습

강화학습이란?

orthanc 2021. 3. 2. 22:14

이 페이지는 '바닥부터 배우는 강화학습'의 내용을 정리한 것이다.

강화학습이란?
: 순차적 의사결정 문제에서 누적보상을 최대화하기 위해   
시행착오를 거쳐 행동을 교정하는 학습과정.   

순차적 의사결정sequential decision making이란?   
: 달성해야할 목표를 이루기 위해    
거쳐야 하는 단계들이 여러가지가 있는 문제의 경우   
각 단계에서 내리게 되는 의사결정과정.   
   
이전 단계에서의 결정에 따른 행동은    
상황의 변화를 낳고   
변한 상황은 다시    
다음 단계에서의 행동에 영향을 준다.   

순차적 의사결정과정 문제란?
: 목표를 달성하고 난 다음   
그 목표에 이르기까지의 행동들을 단계별로 돌이켜 보면   
순차적일 수밖에 없다.   
   
바꿔 말해   
어떤 목표를 달성하기 위해선   
매 단계에서 다음단계로 가기 위한 행동이   
순차적으로 이뤄져야 한다.   
   
왜냐하면 매 순간 내리는 모든 결정은    
이후의 결정에 영향을 주기 때문이다.    
   
이런 식으로 접근, 해석할 수 있는 문제는 모두   
순차적 의사결정 문제다.   
   
달리 말하면,
1. 이후의 결정에 영향을 주지 않는 결정은 순차적 의사결정이 아니다.
   
2. 서로 다른 두 개 이상의 목표가 있을 때 (각 목표가 서로 독립적일 때)   
각 목표를 위해 하는 행동들이 순차적으로 이뤄져도   
그것들은 순차적 의사결정에 의한 행동이 아니다.
(이하 '보상은 스칼라다' 와 연결)  
   
   
보상이란? 보상의 세 가지 특징은?   
: 의사결정을 얼마나 잘하고 있는지 알려주는 신호.   
강화학습의 목적은 과정에서 받는 보상의 총합,누적 보상 cumulative reward 을 최대화 하는 것이다.   
   
   
1. 보상은 행동의 결과가 좋았냐, 나빴냐를 알려주지 그 행동의 방법이 옳으냐, 틀리냐를 알려주지 않는다 
   
어떤 행동을 했을 때   
그 행동이 다른 행동보다 목표에 더 가깝게 행동한 것이라면 크게 보상하고    
목표와 멀어지게 행동하면 적게 보상한다.   
   
구체적으로 어떻게 행동해야 보상을 받게 할 수 있는지는 알려주지 않는다.   
   
즉,   
옳은 행동을 하든 틀린 행동을 하든    
목표에 더 가까운 행동이면 보상한다.   
   
그럼으로써 보상이 낮았던 행동들은 덜 하고,   
보상이 높았던 행동들은 더 하면서   
자신의 행동을 조금씩 수정해 나간다.   
   
2. 보상은 스칼라scalar다.
따라서 오직 하나의 목적만을 가져야 한다.   
   
만약 여러가지 목적들을 달성하고 싶은 경우엔   
그것들을 잘 섞어서 하나의 스칼라로 표현해줘야 한다.   
   
한 가지 방법은 가중치를 두는 것이다.   
목표가 x, y, z 라면   
0.5x + 0.25y + 0.25z 같은 식으로 표현할 수 있다.   
     
강화학습은 스칼라 형태의 보상이 있는 경우에만 적용할 수 있다.   
만일 어떤 문제를 하나의 목표 달성 문제로 귀결해낼 수 없다면   
그 문제에 강화학습을 적용하는 건 적절하지 못할 수 있다.   
     
서커스단에 고용된 알파클라운alpha clown이    
저글링을 하면서 외발자전거를 타는 행동을 해야한다고 해보자   
그럼 두 가지 목적이 있는 것이 아닌가?   
   
이건 tricky한 질문이다.   
알파클라운이 저글링만 하는 베타클라운이나 외발자전거만 타는 감마클라운보다   
저글링과 자전거 타기를 동시에 더 잘할 순 없다.   
   
다시 말해, 알파클라운에게는 두가지 목표가 있는 게 아니라      
두가지 행동을 동시에 해내기만 하면 되는 한 가지 목표가 있는 것이고   
따라서 가중치 분배 방법으로 해결하면 된다.       
(우리가 저글링하면서 자전거를 타는 광대를 보고 환호하는 건   
두 개를 동시에 해내서이지 각각을 잘해서가 아니다)   
   
하나의 문제 안에서 다양한 방법으로 보상을 설정할 수 있다.      
자전거를 탈 때 1m 갈 때마다 +1을 주든가   
1초 안넘어지고 탈때마다 +1을 주든가   
목적과 누적보상의 값이 의미하는 바가 잘 대응되도록 정하면 된다.   
   
3. 보상은 희소sparse 할 수 있으며 지연delay될 수 있다.
   
희소한 보상 : 행동을 10번해야 보상 1번   
지연된 보상 : 행동을 10번해야 첫번째 행동에 대해 보상   
      
매 단계의 행동에 대한 보상이 즉각적으로 이뤄지면 학습이 쉬워진다.   
그런데 보상이 희소하거나 지연되면, 그 보상이 어떤 행동 덕분이지 불분명해져서   
학습이 어려워진다   
   
이 문제를 해결하기 위해 밸류 네트워크(value network) 같은 아이디어가 등장했다.   
      
보상이 희소하거나 지연될 수 있는 건   
강화학습이 다루는 문제가 순차적 의사결정 문제이기 때문이다   
   
chapter1 결론
  
Agent  
: 강화학습의 주체 = 학습하는 대상 = 환경 속에서 행동하는 개체   
   
Environment  
: 에이젼트를 제외한 모든 요소 
= 에이젼트가 어떤 행동을 했을 때 그 결과에 영향을 아주 조금이라도 미치는 모든 요소 
= 상태 변화를 일으키는 역할   
      
State
: 상태에 대한 모든 정보를 숫자로 표현해 기록한 것   
   
환경 속에서 에이젼트가 어떤 행동을 하고 나면, 에이젼트의 상태가 바뀐다.   


틱tick이란?   
에이전트가 St 에서 at를 시행하고, 이를 통해 환경이 St+1로 바뀌면,   
즉 에이전트와 환경이 한 번 상호작용하면, 하나의 루프가 끝난다.   
이를 틱이라고 한다.   
     
순차적 의사결정 문제에서는 시간의 흐름을 이산적discrete으로 생각하고   
그 시간의 단위를 틱 혹은 타임 스텝time step 이라고 한다.   
    
강화학습의 매력   
   
1. 병렬성
똑같은 목적을 달성하려 하는 에이전트들을 동시에 학습 시킨다   
각 에이전트들이 얻은 경험을 공유하면   
하나의 에이전트가 할 때보다 훨씬 빠르게   
보상이 큰 행동들은 자주 하고, 작은 행동들은 덜 하도록 학습시킬 수 있다.    
   
2. 자가학습
자기만의 방식으로 문제를 풀 수 있게 된다.   

'Deep learning > 강화학습' 카테고리의 다른 글

MDP를 모를 때 Prediction  (0) 2021.05.04
Comments