파이썬과 케라스로 배우는 강화학습 | 강화학습 개요
파이썬과 케라스로 배우는 강화학습 Chapter 1 정리
책 정보 📖
- 책 제목: 파이썬과 케라스로 배우는 강화학습
- 글쓴이: 이웅원, 양혁렬, 김건우, 이영무, 이의령
- 출판사: 위키북스
- 발행일: 2020년 04월 07일
- 챕터: Chapter 1. 강화학습 개요
책소개
강화학습의 기초부터 최근 알고리즘까지 친절하게 설명합니다! ‘알파고’로부터 받은 신선한 충격으로 많은 사람들이 강화학습에 관심을 가지기 시작했다. 하지만 처음 강화학습을 공부하는 분들을 위한 쉬운 자료나 강의를 찾아보기 어려웠다. 외국 강의를 통해 어렵게 이론을 공부하더라도 강화학습을 구현하는 데는 또 다른 장벽이 있었다. 이 책은 강화학습을 처음 공부하는 데 어려움을 겪는 독자를 위해 이론부터 코드 구현까지의 가이드를 제시한다.
특히 이번 개정판에서는 텐서플로 버전업에 맞춰서 코드를 업데이트하고 전반적인 이론 및 코드 설명을 개선했다. 그리고 실무에서 많이 활용될 수 있는 연속적 액터-크리틱 알고리즘을 추가했다.
주요 내용
강화학습의 개요
강화학습(Reinforcement Learning)은 인공지능 분야에서 주목받고 있는 머신러닝의 한 분야다. 간단하게 강화학습의 기본 개념부터 실제 적용 사례까지 자세히 알아본다.
강화학습이란 무엇인가?
강화의 개념
강화학습의 ‘강화’는 행동심리학에서 나온 개념이다. 이는 시행착오를 통해 학습하는 방법 중 하나로, 배우지 않았지만 직접 시도하며 행동과 결과로 나타나는 좋은 보상 사이의 상관관계를 학습하는 것이다.
머신러닝 속 강화학습의 위치
머신러닝은 인공지능의 한 범주로 컴퓨터가 스스로 학습하게 하는 알고리즘이다. 주어진 데이터를 토대로 스스로 성능을 높여가는 것이 목적이며, 크게 세 가지로 나누어진다.
지도학습 (Supervised Learning)
- 정답을 알고 있는 데이터를 이용해 컴퓨터를 학습시킨다
- 컴퓨터가 도출한 답과 정답의 차이를 통해 지속적으로 학습한다
- 분류, 회귀분석이 대표적이며, 딥러닝의 MNIST와 같은 이미지 분석에도 이용된다
비지도학습 (Unsupervised Learning)
- 정답이 없이 주어진 데이터로만 학습한다
- 군집화가 대표적인 비지도학습에 해당한다
강화학습 (Reinforcement Learning)
- 정답이 주어지지 않지만 보상을 통해서 학습한다
- 보상은 컴퓨터가 선택한 행동에 대한 환경의 반응으로 간접적인 정답의 역할을 한다
에이전트와 강화학습의 메커니즘
에이전트의 정의
강화학습을 통해 스스로 학습하는 컴퓨터를 에이전트라고 한다.
에이전트의 학습 과정
에이전트는 다음과 같은 방식으로 행동한다:
- 환경에 대한 사전지식이 없는 상태에서 학습을 시작한다
- 자신의 상태를 인식한 후 행동한다
- 행동 결과에 따른 보상을 획득한다
- 보상을 통해 다음 행동을 지정하고 반복하여 좋은 행동을 지속적으로 학습한다
강화학습의 목적과 장점
목적: 에이전트가 환경을 탐색하며 얻는 보상들의 합을 최대화하는 것으로, 최적의 행동양식 또는 정책을 학습하는 것이다.
장점: 환경에 대한 사전지식 없이 학습이 가능하다.
강화학습 문제의 수학적 정의
순차적 행동 결정 문제
강화학습은 결정을 순차적으로 내려야 하는 문제에 적용된다. 이를 순차적 행동 결정 문제라고 부른다.
순차적 결정을 내리는 문제를 해결하는 데에는 다이내믹 프로그래밍, 진화 알고리즘 등도 있지만, 강화학습은 이들 방식의 한계를 극복할 수 있다.
MDP(Markov Decision Process)
순차적 행동 결정 문제를 수학적으로 표현하기 위해 MDP라는 방법을 활용하여 문제를 정의한다.
MDP의 구성 요소
- 상태(State)
- 에이전트의 정보 같은 정적 정보뿐만 아니라 동적인 요소, 에이전트 외의 환경의 상태 정보 등을 말한다
- 상태라기보다는 관찰에 가깝다
- 행동(Action)
- 어떠한 상태에서 에이전트가 취할 수 있는 행동이다
- 처음에는 정보가 없기에 랜덤하게 행동을 취한다
- 보상을 통해 점점 행동을 발전시킨다
- 보상(Reward)
- 에이전트가 학습할 수 있는 유일한 정보다
- 행동을 평가할 수 있게 되고 좋은 행동을 판단하는 기준이 된다
- 에이전트에 속하지 않는 환경의 일부로 에이전트는 어떤 상황에서 얼마의 보상이 나오는지 미리 알 수 없다
- 정책(Policy)
- 순차적 행동 결정 문제에서 구해야 할 답이다
- 모든 상태에 대해 에이전트가 어떤 행동을 해야 하는지 정해놓은 것이 정책이다
- 제일 좋은 정책을 최적 정책이라 하며 최적 정책에 따라 행동하면 보상의 합을 최대로 받을 수 있다
실제 적용 사례
로봇의 학습
무수한 상태를 가지는 로봇이 가지는 경우의 수는 사실상 무한대다. 로봇에 강화학습을 적용하기 위해서는 정보를 함수와 같은 형태로 근사하는 인공신경망을 사용해야 한다.
브레이크아웃 게임 학습
강화학습의 대표적인 예시로 브레이크아웃 게임이 있다.
MDP 구성
- 상태: 게임 화면
- 행동: 제자리, 왼쪽, 오른쪽 이동
- 보상: 게임 점수
학습 과정
인공신경망을 통해 학습하며, DQN(Deep Q-Network)을 사용한다.
인공신경망은 입력이 들어와 출력이 나가는 시스템으로, 현재 상태에서 에이전트가 할 수 있는 행동이 얼마나 좋은지 출력으로 내놓는다. 행동이 얼마나 좋은지가 행동의 가치가 되고 이것을 큐함수라고 한다.
심층 신경망 학습 과정
- DQN으로 상태가 입력으로 들어온다
- DQN이 제자리, 왼쪽, 오른쪽 행동의 큐함수 출력을 내놓는다
- DQN이 출력한 큐함수를 보고 큰 가치를 지닌 행동을 선택한다
- 에이전트가 행동을 취하고 환경이 보상과 다음 상태를 알려준다
- 에이전트가 환경과 상호작용하며 DQN을 더 많은 보상을 받도록 조금씩 조정한다
강화학습의 특징과 한계
인간과의 유사점과 차이점
유사점: 에이전트와 사람 모두 화면을 보고 학습한다는 점이다.
차이점: 에이전트는 게임의 규칙을 전혀 모른다는 것이다.
장단점
장점: 게임의 규칙을 모르는 상태에서 학습할 수 있다.
단점: 초반의 느린 학습이 단점이 될 수 있다.
현재의 한계
사람은 하나를 학습하면 다른 곳에서 해당 학습을 이용하기도 하지만, 아직 강화학습 에이전트는 각 학습을 별개로 취급해 항상 바닥부터 학습해야 한다는 한계가 있다.
마무리
앞으로 배울 내용인 큐함수, MDP, DQN에 대해 기대가 된다. 또한 간단한 예제들을 실행하게 되면서 에이전트가 학습해 나가는 과정을 지켜볼 수 있을 것을 고대하고있다.