웬디의 기묘한 이야기

글 작성자: WENDYS
반응형

머신러닝의 꽃 강화 학습(Reinforcement Learning) 이란?

머신러닝의 꽃이라 불리는 강화학습(reinforcement learning) 이하 RL은 앞서 설명한 지도 학습, 비지도 학습과는 다른 개념입니다.

 

https://wendys.tistory.com/169

 

[AI] 머신러닝 지도학습(Supervised Learning) , 비지도학습(Unsupervised Learning) 차이점과 장단점

머신러닝에서는 크게 지도 학습(Supervised Learning), 비지도학습(Unsupervised Learning), 강화 학습(Reinforcement Learning)으로 나눌 수 있습니다. 이 중 지도 학습과 비지도학습의 유형이 어떤 차이가 있고..

wendys.tistory.com

 

행동 심리학에서 나온 이론으로 분류할 수 있는 데이터가 존재하는것도 아니고 데이터가 있다 해도 정답이 따로 정해져 있지도 않으며, 자신이 한 행동에 대해 보상(reward)을 받으며 학습하는 것을 말합니다.

 

강화 학습의 구조

 

강화 학습은 에이전트(agent), 환경(environment), 상태(state), 행동(action), 보상(reward)의 개념을 사용하여 이해할 수 습니다.

 

게임을 예로들면 게임의 규칙을 따로 입력하지 않고 자신(Agent)이 게임 환경(environment)에서 현재 상태(state)에서 높은 점수(reward)를 얻는 방법을 찾아가며 행동(action)하는 학습 방법으로 특정 학습 횟수를 초과하면 높은 점수(reward)를 획득할 수 있는 전략이 형성되게 됩니다. 단, 행동(action)을 위한 행동 목록(방향키, 버튼)등은 사전에 정의가 되어야 합니다.

 

만약 이것을 지도 학습(Supervised Learning)의 분류(Classification)를 통해 학습을 한다고 가정하면 모든 상황에 대해 어떠한 행동을 해야 하는지 모든 상황을 예측하고 답을 설정해야 하기 때문에 엄청난 예제가 필요하게 됩니다.

 

바둑을 학습한다고 했을 때, 지도 학습(Supervised Learning)의 분류(Classification)를 이용해 학습하는 경우 아래와 같은 개수의 예제가 필요해지게 됩니다.

 

 

최근 AI계를 뒤흔든 알파고, 한돌 등 바둑들을 학습한다고 했을 때, 경우의 수는 어떻게 될까요??

19x19 바둑판을 기준으로 10의 171 제곱의 수 정도 된다고 합니다. 우주의 원자가 10의 90 제곱의 수라고 하는데 그와는 비교도 안될만큼 많은 수가 존재합니다.

 

바둑의 경우의 수는

208168199381979984699478633344862770286522453884530548425639456820927419612738015378525648451698519643907259916015628128546089888314427129715319317557736620397247064840935 가지입니다.

 

강화 학습(reinforcement learning)은 이전부터 존재했던 학습법이지만 이전에 알고리즘은 실생활에 적용할 수 있을 만큼 좋은 결과를 내지 못했습니다.

하지만 딥러닝의 등장 이후 강화 학습에 신경망을 적용하면서부터 바둑이나 자율주행차와 같은 복잡한 문제에 적용할 수 있게 되었습니다. 좀 더 자세히 설명하면 고전적인 강화학습 알고리즘은 앞으로 나올 상태에 대한 보상을 모두 계산해야 하는데 실제 세상과 같이 상태 공간이 크면 현실적으로 계산을 할 수 없습니다. 최근에는 계산하는 대신 신경망을 통해 근삿값을 구함으로써 복잡한 문제를 해결할 수 있게 되었습니다.

 

강화학습에 딥러닝을 성공적으로 적용한 대표적 알고리즘으로는 DQN과 A3C가 있는데요. 두 알고리즘 모두 딥마인드에서 발표했으며 다른 강화학습 알고리즘의 베이스라인이 되었습니다.

 

위의 바둑의 경우의수는 2016년 1월 20일에 드디어 계산되었습니다. 자세한 내용은 아래 링크에서 확인 가능합니다.

http://tromp.github.io/go/legal19.html

 

Counting Legal Positions in Go

19 208168199381979984699478633344862770286522453884530548425639456820927419612738015378525648451698519643907259916015628128546089888314427129715319317557736620397247064840935

tromp.github.io

 

반응형