Reinforcement는 머신러닝뿐만 아니라 여러 영역에서 사용된다. 대표적인 경우가 훈련시킬 때이다.
예를 들어, positive reinforcement는 강아지가 잘 했을 경우 상을 주는 방법이다.
사람의 경우에도 과거의 경험으로 인해서 환경과 직접적 상호작용을 하면서 학습을 한다.
즉, 수년간의 칭찬이나 꾸중 등이 누적되어서 삶을 사는 법을 배운다.
구체적으로 말하자면 reinforcement learning은 environment라는 환경, 세상이 있고, actor라는 어떤 행동을 하게 되는 주체가 있다. 이 actor가 어떤 행동을 할 때마다 환경이 달라지고, 이것을 observation이나 state라고 한다.
일련의 행동이 끝나고 나서 운이 좋으면 reward를 받을 수 있다.
Reinforcement learning은 사실 오래 전부터 연구되어왔다. 1997년에 나온 Machine Learning이라는 Tom Mitchell의 책에서도 다뤘을 정도이다. 예전에는 보통은 책의 맨 마지막이나 부록에 다뤘기 때문에 중요하게 생각되지 않았다.
이 reinforcement learning을 중요하게 부상시킨 것은 2013년 그리고 2015년에 나온 DeepMind 팀의 Atari Breakout Game에 대한 논문이다. 벽돌깨기 게임을 reinforcement 알고리즘이 자동으로 배우고 독창적인 방법으로도 점수를 잘 얻어서 결과적으로는 사람보다도 잘 하게 되었다고 한다. 단순히 이 벽돌깨기 게임뿐만 아니라 다른 게임들에도 적용될 수 있다는 것이 중요한 점이다. 한 가지 게임에 특화된 것이 아니라 마치 사람이 눈으로 게임 화면을 보면서 픽셀 정보를 받아들이듯 이 reinforcement 알고리즘도 학습을 해서 그 결과로 왼쪽으로 움직일지 오른쪽으로 움직일지 판단하는 식이다.
위 그래프는 게임별로 reinforcement 알고리즘과 사람 중에서 어떤 쪽이 게임을 더 잘하는지 게임별로 나열되어있다. 선 왼쪽으로는 reinforcement쪽이 더 잘하는 것이고 선 오른쪽으로는 아직까지는 사람이 더 잘하는 것이다.
하지만 각각의 게임들에 특화된 것이 아닌 한 가지 알고리즘으로 이 많은 게임들을 사람보다 더 잘한다는 것이 놀랄만한 것이다.
게임뿐만 아니라 알파고와 이세돌의 바둑 경기 결과, Robotics 분야에서의 관절 움직임 등을 reinforcement learning으로 좋은 결과를 얻을 수 있다고 한다. 그래서 활용 범위가 매우 넓다고 한다.
앞으로의 강의 스케쥴은 위와 같다.