1. 강화학습 소개

괴도소녀·2021년 9월 26일
0

강화마을입주

목록 보기
1/2

강화학습 개요

강화학습의 개념

스키너의 강화 연구

강화학습에서 강화는 동물이 "시행착오(Trial and Error)"를 통해 학습하는 방법 중 하나이다. 이 개념을 처음으로 제시한 것은 스키너(Skinner)라는 행동심리학자이다.

스키너는 쥐 실험을 통해 동물이 행동과 그 결과 사이의 관계를 학습하는 것을 관찰했다.

  1. 굶긴 쥐를 상자에 넣는다.
  2. 쥐는 돌아다니다 우연히 상자 안에 있는 지렛대를 누르게 된다.
  3. 지렛대를 누르자 먹이가 나온다.
  4. 지렛대를 누르는 행동과 먹이와의 상관관계를 모르는 쥐는 다시 돌아다닌다.
  5. 그러다 우연히 쥐가 지렛대를 다시 누르면 쥐는 이제 먹이와 지렛대 사이의 관계를 알게되고 지렛대를 자주 누르게 된다.
  6. 이 과정을 반복하며 쥐는 지렛대를 누르면 먹이를 먹을 수 있다는 것을 학습한다.

즉, 강화라는 것은 동물이 이전에 배우진 않았지만 직접 시도하며 행동과 그 결과로 나타나는 좋은 보상 사이의 상관관계를 학습하는 것이다.

우리 주변에서의 강화

위의 쥐와 같이 사람도 무언가를 처음 배울 때 사전지식이 없는 경우가 많다.
아이가 처음 걷게 될때까지의 시도과정도 강화의 한 종류이다.

머신러닝과 강화학습

머신러닝은 인공지능의 한 범주이며, 컴퓨터가 스스로 학습하게 하는 알고리즘을 개발하는 분야이며, 머신러닝은 위의 그림과 같이 지도학습(Supervised Learning), 비지도학습(Unsupervised Learning), 강화학습으로 나뉜다.

  • 지도학습 : "정답"을 알고 있는 데이터를 이용해 학습
    ex. 회귀분석(regression), 분류(Classification)
  • 비지도학습 : 정답이 없는 상태로, 여러 개의 데이터가 주어지면 비슷한 카테고리끼리 묶어주는 식의 학습
    ex. 군집화(Clustering)
  • 강화학습 : "보상(Reward)"을 통해 학습. 보상은 컴퓨터가 선택한 행동(Action)에 대한 환경의 반응이다.

스스로 학습하는 컴퓨터, 에이전트

강화학습을 통해 스스로 학습하는 컴퓨터를 에이전트(agent) 라고 한다.

에이전트는 환경에 대해 사전지식이 없는 상태에서 학습을 하며, 자신이 놓인 환경에서 자신의 상태를 인식한 후 행동하며, 행동과 행동의 결과를 보상을 통해 학습하면서 어떤 행동을 해야 좋은 결과를 얻게 되는지 알아가게 된다.

강화학습의 목적은 에이전트가 환경을 탐색하며 얻는 보상들의 합을 최대화하는 "최적의 행동양식, 또는 정책"을 학습하는 것이다.

이로서 강화학습의 장점은 환경에 대한 정확한 지식이 없어도 학습할 수 있다는 점이다.
하지만 단점으로는 아는 환경이라도 환경에 대한 정보를 통해 계산하려면 많은 시간이 걸린다는 점이다.

강화학습 문제

강화학습은 결정을 순차적으로 내려야 하는 문제에 적용된다.

그림과 같이 현재 위치에서 행동을 한 번 선택하는 것이 아니라 계속적으로 선택해야 한다.

하지만 이렇게 순차적으로 결정을 내리는 문제의 해결책은 강화학습만이 아니라, 뒤에서 배우게 될 다이내믹 프로그래밍(dynamic programming)도 있다. 이 외에도 진화 알고리즘(Evolutionary Algorithm) 또한 사용할 수 있다.

순차적 행동 결정 문제

순차적으로 행동을 결정해야 하는 문제를 수학적으로 표현해보자면, 가장 간단한 방법은 시험을 통해 수학 실력을 수치화하는 것이다. 수치화하는 작업을 하지 않으면 에이전트의 입장에서는 학습을 하거나, 최적화에 어려움을 겪을 것이다.

순차적으로 행동을 결정하는 문제를 정의할 때 사용하는 방법이 MDP(Markov Decision Process)이며, 이는 순차적 행동 문제를 수학적을 정의해 에이전트가 순차적 행동 결정 문제에 접근할 수 있게 한다.

순차적 행동 결정 문제의 구성 요소

1.상태 state

공학에서 많이 사용하는 개념이다. 에이전트가 상태를 통해 상황을 판단하여 행동을 결정하기 때문에 충분한 정보를 제공해야 한다.

예를들어, 탁구를 치는 에이전트라고 하면, 탁구공의 위치만 알고 속도를 모른다면 탁구를 칠 수 없다. 그러므로, 탁구를 치는 것을 학습하려면 탁구공의 위치, 속도, 가속도 같은 정보들이 필요하다.

2. 행동 action

에이전트가 어떠한 상태에서 취할 수 있는 행동으로서 "상","하","좌","우"와 같은 것을 칭하며, 게임에서의 행동은 게임기를 통해 줄 수 있는 입력이다.

3. 보상 reward

에이전트가 학습할 수 있는 유일한 정보가 보상이다. 보상이라는 정보를 통해 에이전트는 자신이 했던 행동들을 평가할 수 있고, 이로 인해서 어떤 행동이 좋은 행동인지 판단이 가능하다.

4. 정책 policy

모든 상태(state)에 대해 에이전트가 어떤 행동을 해야 하는지 정해놓는 것이 정책이다.
제일 좋은 정책은 최적 정책(optimal policy)라고 하며, 에이전트가 최적정책을 따라 행동했을 때, 보상의 합을 최대치로 받을 수 있다.

강화학습의 예시 : 브레이크 아웃

딥마인드에 의해 다시 빛을 본 아타리 게임

아타리의 고전 게임인 브레이크 아웃에 의한 강화학습을 살펴보자.

브레이크아웃의 MDP와 학습 방법

1. MDP
  • 상태: 브레이크 아웃에서 에이전트가 환경으로부터 받아들이는 상태는 게임 화면이다. 이때 게임 화면은 흑백화면이기 때문에 2차원 픽셀 데이터이다.
  • 행동 : 제자리, 왼ㅉㄱ, 오른쪽, 발사가 가능하고 발사는 게임을 시작할 때 사용한다.
  • 보상 : 벽돌이 하나씩 깨질 때마다 보상을 +1 씩 받고 더 위쪽을 깰수록 더 큰 보상을 받는다. 아무것도 깨지 않을 때는 보상으로 0을 받고, 공을 놓쳐서 목숨을 잃을 경우에 보상으로 -1을 받는다.

2. 학습

처음은 게임이나 상황에 대해 전혀 모른다.
무작위로 제자리, 왼쪽, 오른쪽으로 움직이다 에이전트가 우연히 공을 쳐서 벽돌을 깨면 게임(환경)으로부터 +1의 보상을 받는다. 공을 놓친다면 게임으로부터 -1의 보상을 받게 된다.

이러한 상황이 반복되서 공을 떨어뜨리지 않고 벽을 깰 수 있는지 학습할 수 있다.

강화학습을 통해 학습되는 것은 인공신경망이다.
인공신경망으로 입력이 들어오면 그 상태에서 에이전트가 할 수 있는 행동이 얼마나 좋은지 출력으로 내놓는다. 에이전트가 할 수 있는 행동이 얼마나 좋은지가 행동의 가치가 되고 이것을 큐함수(Q function)이라고 한다(3장에서 다룬다고 한다).

위 게임 문제에 사용한 인공신경망을 DQN(Deep Q-Network)이라 하며, 위 그림에서 에이전트라고 표시된 상자이다.

DQN으로 상태가 입력으로 들어오면 그 상태에서 제자리, 왼쪽, 오른쪽 핼동의 큐함수를 출력으로 내놓으며, 출력으로 나온 큐함수에 따라서 행동한다. 즉, DQN이 출력한 큐함수를 보고 큰 가치를 지니는 행동을 선택하며, 그 행동을 취할시 환경(게임)은 에이전트에게 보상과 다음 상태를 알려준다.

이 예제에서의 에이전트는 다음과 같은 흐름으로 학습한다.

  1. 에이전트는 4개의 연속된 게임 화면을 입력으로 받는다.
  2. 처음에는 아무것도 모르므로 임의로 행동을 취한다.
  3. 그에 따라 보상을 받게 되면 그 보상을 통해 학습한다.
  4. 결국 사람처럼 혹은 사람보다 잘하게 된다.

정리

강화학습의 개념

좋은 행동을 점점 더 많이 하는 것을 말하며, 이런 강화의 개념을 컴퓨터에 학습에 도입한 것이 강화학습이다.

강화학습의 문제

컴퓨터가 어떠한 문제를 풀기 위해서는 문제를 수학적으로 정의해야 하며, 순차적 행동 결정 문제는 MDP로 정의할 수 있으며, MDP는 상태, 행동, 보상, 정책으로 구성되어 있다.

고전적인 강화학습은 한정된 양의 상태를 가진 환경에 대해서만 학습할 수 있었으나, 최근 인공신경망이 강화학습과 함께 사영되면서 바둑이나 로봇 학습과 같은 방대한 양의 상태를 가진 환경에서도 학습이 가능해 졌다.

예시 : 브레이크 아웃

에이전트는 DQN이라는 인공신경망을 사용해 각 행동이 얼마나 좋은지 알 수 있으며, 이 정보를 큐함수(Q Function)라고 하며, 에이전트가 큐함수에 따라 행동하며 환경(여기선 게임)으로부터 오는 보상으로 스스로를 강화한다.

0개의 댓글