강화학습이란 무엇인지, 어떤 종류가 있고, 강화학습이 적용된 예시를 살펴본다.
행동심리학과 머신러닝을 기반으로 하는 강화학습에 대해 공부하려면 강화학습이 해결하고자 하는 문제에 대해 정의를 먼저 해야 한다.
강화학습은 순차적으로 행동을 결정해야 하는 문제를 다룬다.
이러한 문제를 컴퓨터가 풀기 위해서는 수학적으로 정확히 정의해야 한다.
Why?) 왜 수학적 엄밀함이 요구되는가?
문제를 컴퓨터에게 정확하게 명령을 내리기 위해서이다.
여기에서는 강화학습의 개념과 강화학습 문제의 정의를 살펴본다.
강화학습의 개념
강화(reinforcement)란 동물이 시행착오를 통해 학습하는 방법 중 하나이다.
-> 더 정확히는, 이전에 학습되어 있지 않았지만 직접 시도하면서 점차 상관관계를 깨달으면서 학습하게 된다.
(주의!) 강화학습에는 "왜" 이런 보상이 주어지는 지를 이해하지 못 한다. 단지 보상을 주니까 보상 지향적인 행동패턴을 보이는게 강화학습이다.
e.g.) 아기가 걸음마를 배울 때
Tip) 머신러닝은 지도학습, 비지도학습, 강화학습 이렇게 3가지로 나뉜다.
강화학습의 지도/비지도학습과의 차이점은, 강화학습은 정답이 주어지지 않으면서 단순히 주어진 데이터만 가지고 학습하는 것은 아니기 때문이다.
(용어) 강화학습을 수행하는 컴퓨터를 특별히 에이전트(Agent)라고 부른다.
보상을 수치화할때, 양숫값은 상이되고 음숫값은 벌이된다.
-> 에이전트에게 적절한 상벌을 주어야 효과적인 강화학습이 가능하다.
강화학습의 가장 큰 장점은, 지도/비지도 학습에서의 훈련데이터같이 사전에 주어진 정보가 없어도 학습이 가능하다는 점이다.
강화학습의 문제
강화학습은 결정을 순차적으로 내려야 하는 문제에 사용된다.
-> 예를들어 미로찾기에서 한 칸 이동한 뒤 어디로 가야할 지 결정하고 그 다음 또 결정하고...
순차적으로 결정을 내려야 하는 문제를 정의할 때 사용하는 방법이 MDP(Makrov Decision Process)이다.
수학적으로 정의된 문제는 다음과 같은 요소로 이루어져 있다. 이 elements를 MDP라고 부른다.
1. State
에이전트의 상태를 말한다. 상태를 통해 상황을 판단해 행동을 결정하기 때문에 상태를 정확히 정의하고 상태의 정보를 충분하게 제공해야 한다.
-> 좀 더 정확하게 말하면 현재 처해진 환경으로부터 수집한 정보이다.
2. Action
특정 상태에 놓여져 있을 때 특정한 행동을 취하는 것을 말한다.
에이전트가 Action을 하면 환경은 상벌을 주고 다음 상태를 주입한다(알려준다).
3. Reward
보상은 강화학습만이 가지는 핵심 개념이다. 에이전트는 이 보상값을 통해 학습을 하게된다.
궁극적인 목표는 에이전트가 특정 구간에 대한 보상의 합을 최대로 하도록 행동하게 하는 것이다.
4. Policy
모든 State에 대해 각각 어떤 Action을 취해야 하는지 정해놓은 것을 Policy라고 한다.
강화학습의 대략적인 과정
(중요!) 강화학습은 거의 인공신경망과 같이 사용한다. State는 인공신경망의 입력으로 들어가며 결국 강화학습에서 학습이 되는 것은 인공신경망이다.
1. State를 인공신경망의 입력으로 넣는다
2. 인공신경망은 출력층을 통해 어떤 Action이 가장 적당한지 (확률분포 등을 통해)보여준다.
3. 보상을 이용해 인공신경망을 교정한다.
Tip) 사람과 강화학습하는 에이전트와의 차이점
사람은 하나를 학습하면 다른 곳에도 그 학습이 영향을 미친다.
그러나 에이전트는 각 학습이 완전히 다 별개이기 때문에 다른 학습을 하려면 항상 밑바닥부터 시작해야 한다.
[강화학습] 4. 근사함수와 인공신경망 (0) | 2023.09.23 |
---|---|
[강화학습] 3. 다이나믹 프로그래밍 (0) | 2023.09.22 |
[강화학습] 2. MDP와 벨만 방정식 (0) | 2023.09.20 |