History
강화학습의 시작은 크게 두 가지로 볼 수 있습니다.
- Trial and error
- Optimal control
Trial and error는 1.1에서도 강화학습의 중요한 특징이라고 언급했는데 바로 그 부분은 동물의 행동에 관한 심리학 연구에서 출발하였습니다. 심리학에서는 "강화"라는 개념은 상당히 보편적으로 알려져 있는 개념으로서 동물이나 인간이 행동 결과에 따라 행동을 변화시키고 발전시킨다는 이론입니다. 스키너라는 심리학자의 "스키너 상자 실험"이라는 것이 있습니다. 상자 안에 비둘기를 집어넣고 다음과 같이 실험을 하였습니다. http://blog.naver.com/PostView.nhn?blogId=babomaum&logNo=120014011465
스키너는 굶긴 비둘기를 방음이 잘 된 상자(스키너 상자)속에 넣는데, 이 상자의 한쪽 벽에 원판이 장치되어 있다. 비둘기가 원판을 쪼면 먹이통에 이‘T는 먹이가 떨어지게 설치를 해두었다. 이 스키너 상자에 비둘기를 넣으면 비둘기는 새로운 환경을 탐색하면서 여러 가지 반응을 나타낸다. 처음에 비둘기는 여러 가지 행동을 할 것이고, 그러다 우연히 원판을 쪼개 될 것이다. 그러면 먹이가 자동적으로 주어진다. 따라서 이런 과정이 몇 차례 계속되면 비둘기는 드디어 여러 반응을 생략하고 즉각적으로 원판을 쪼는 반응을 계속할 것이다.
[출처] [스키너] 스키너의 강화이론|작성자 하루하루
이와 같이 자신이 한 행동에 따른 보상으로 인해 더 좋은 보상을 받는 행동을 하도록 학습이 되는 것을 볼 수 있는데 이러한 학습방법이 강화학습의 모티프가 된 것입니다.
Optimal control이라는 말은 1950년대부터 사용되기 시작했는데 어떠한 비용함수의 비용을 최소화하도록 컨트롤러를 디자인하는 것을 말합니다. 뒤에서 배울 Bellman이 "Bellman equation"이라는 방정식을 만들어서 이를 통해서 optimal control문제를 풀었고 그러한 방법은 Dynamic Programming이라고 불립니다. 또한 Bellman은 MDP(Markov Decision Process)라는 수학적 모델을 만들어서 강화학습의 기초를 놓게 됩니다. 저도 Dynamic Programming과 MDP에 대해서 더 알고 싶어서 아래의 강의와 책을 참고할 예정입니다.
- Dynamic Programming 강의 : Approximate Dynamic Programming Lectures by D. P. Bertsekas
- MDP 책 : Markov Decision Processes: Discrete Stochastic Dynamic Programming
이러한 두 가지가 합쳐지면서 "강화학습"이 탄생하게 되었고 그 뒤로 Temporal difference Learning, Q Learning으로 발전해오다가 최근에 딥러닝과의 조합으로 엄청난 성과를 내고 있습니다. 다들 잘 아는 알파고는 강화학습 + 딥러닝으로서 Policy gradient with Monte-carlo Tree Search 알고리즘을 사용하였습니다.
로봇에 강화학습을 적용시켜 학습시키는 연구 또한 부지런히 수행되어 왔는데 앞으로 로봇의 발전에 큰 역할을 할 것으로 기대가 됩니다. 또한 이번에 구글이 강화학습을 사용해 전기료를 줄였다는 기사처럼 정말 많은 분야에 적용되어서 성능을 개선할 수 있다는 기대를 많이 받고 있습니다.
아래는 딥마인드가 구글 데이터센터의 전기 사용량을 줄인 기사입니다.