에이전트를 학습 환경에서 효율적으로 움직이게 하기 위해서는 학습을 통해서 에이전트가 제어지식을 획득해야 합니다. 학습 방법으로 머신러닝(ML; Machine Learning)이 효과적이며, 머신러닝 중에서도 특히 강화학습이 에이전트의 학습에 효과적입니다.
1. 머신러닝과 강화 학습
강화 학습은 머신러닝(기계학습; machine learning)의 일종으로, 기계가 취하는 행동에 서로 다른 보상(reward)을 제시하여, 보상을 가장 많이 받을 수 있는 방식이 무엇인지를 스스로 학습하도록 하는 방식입니다. 강화 학습은 비유하자면, 문제를 풀었을 때 채점을 해줌으로써 높은 점수를 얻는 답을 찾는 방식을 알아내도록 하는 것과 유사하다. 문제를 잘 해결하는 행동을 했을 때 보상을 해준다는 점에서, 행동주의 심리학의 용어를 따라 강화학습(reinforcement learning basics)이라고 부르며, 문제에 미리 답을 달아놓지 않는다는 점에서 지도 학습(supervised learning)과는 다릅니다. 또한 컴퓨터가 제시한 문제 해결 방식에 대해 피드백이 주어진다는 점에서 비지도 학습(unsupervised learning basics)과도 다릅니다.
강화학습은 개별 동작에 대한 평가를 얻지 못해 지도학습을 못할 경우에도 일련의 동작이 끝난 뒤에 얻은 보상을 근거로 학습을 진행하는 학습 방법입니다. 예를 들어 이족보행 제어지식을 획득할 경우 로봇의 여러 가지 상태에 대한 제어지식은 방대한데, 이것을 하나씩 지도학습으로 습득하는 일은 대단히 어렵습니다.
반면에 강화학습에서는 일정 시간 보행이 원활하게 진행되었을 경우 보행에 사용된 제어지식을 정리하여 보상해 주고 학습을 진행합니다. 이런 시행을 반복하는 동안 이족보행에 도움이 되는 제어지식에는 반복적으로 보상이 주어지게 되고 결과적으로 유용한 제어지식을 획득할 수 있게 되는 것입니다.
강화학습은 학습 환경에 노이즈가 있어도 학습을 일관성 있게 진행합니다. 또 학습 도중에 학습 목표가 변할 수 있는 동적인 환경에도 대응할 수 있습니다. 이러한 특징은 실세계에서 동작하는 에이전트인 로봇이 지식을 획득하는데 유용합니다.
2. 몬테카를로 방법
몬테카를로 방법(Monte Carlo Method)은 강화 학습을 구현하는 방법 중 하나입니다. 몬테카를로 방법은 불규칙한 시행에 기초한 탐색 방법입니다. 강화학습에 몬테카를로 방법을 적용할 경우 불규칙한 행동을 반복하여 일련의 행동이 끝난 후에 잘 된 행동의 계열을 정리해서 보상을 줍니다. 그때 개별 행동에 대한 평가는 얻을 수 없기 때문에 학습의 진행은 일련의 행동이 끝난 후에 그 경과가 좋았을 경우에만 한정하여 보상합니다. 시행을 몇 번이나 반복하면 잘 된 행동계열에 대한 평가는 높아지지만 그 외의 행동은 평가 점수를 얻지 못합니다. 따라서 좋은 결과를 얻는 행동 계열이 평가가 높아져 행동지식으로 습득되는 것입니다.
3. Q학습
강화학습을 구현하는 다른 방법으로 Q학습(Q Learning)이 있습니다. Q학습은 몬테카를로 방법과는 달리 한 가지 행동마다 학습을 진행할 수 있습니다.
Q학습의 틀에서는 어떤 국면의 행동 선택을 Q값(Q Value)에 따라 결정합니다. Q값은 앞으로 설명할 학습 순서에 따라 미리 결정해 둡니다. 실제 행동제어에서는 Q값이 가장 높은 행동을 취해 가장 좋은 최종 결과에 도달할 수 있습니다. Q학습에서는 다음과 같은 순서를 반복하면서 Q값을 학습합니다.
Q학습 순서
초기화 - 모든 행동에 대응하는 Q값을 난수로 초기화한다. 학습 루프 다음을 적당한 횟수만 반복한다. 1) 일련 행동의 초기 상태로 돌아간다. 2) 다음 행동을 Q값을 근거로 선택하고 행동한다. 3) 보상이 주어지면 보상에 비례한 값을 Q값에 더한다. 보상이 주어지지 않으면 다음 상태에서 선택 가능한 행동에 대응하는 Q값 중에서 최대값에 비례한 값을 Q값에 더한다. 4) 목표 상태에 도달하거나 사전에 설정한 조건에 이르면 1)로 돌아간다. 5) 2)로 돌아간다. |
위의 Q학습 순서를 이족보행의 제어지식을 획득하는 과정을 예로 들어 설명해 보겠습니다.
우선 초기화 순서에서는 학습 루프에 의한 지식 획득에 앞서 Q값의 초깃값을 난수로 결정합니다. 이 상태에서는 제어지식인 Q값은 엉터리 값이기 때문에 당연히 이족보행을 하지 못합니다. 하지만 학습 루프에 따라 반복해서 이족보행을 시도하면서 Q값을 조금씨 개선해 나갑니다.
먼저 학습 루프 1)에서 시작 위치에 이족보행 로봇을 세웁니다. 그리고 2)의 순서에 따라 각 관절에 주어진 회전력을 결정하고 로봇을 조금씩 움직입니다. 이 상태에서 보행은 막 시작한 상태이므로 3)의 조건 판정에서 보상이 부여되지는 않습니다. 그래서 이 상태에서 다시 다음 행동에 대응하는 Q값을 조사하고 그 최댓값에 비례한 값을 직전에 이용한 Q값에 더합니다.
계속해서 순서 4)로 이어지는데 막 보행을 시작해서 목표 상태에는 도달하지 못했고, 넘어지는 등 사전에 정한 조건에 해당하지 않기 때문에 다음 5)로 진행합니다. 5)에서는 순서 2)로 돌아가 학습 루프를 반복합니다.
학습 루프에서 반복하는 과정 중에 만약 넘어지는 등 미리 정해둔 조건이 발생하면 순서 4)에서 순서 1)로 돌아가 이족보행의 초기 상태로 복귀하여 다시 보행을 시작합니다. 만약 우연히 잘 걷게 되면 보상이 주어지고 갱신 식에 따라 Q값이 갱신됩니다.
이와 같은 학습 루프를 되풀이하면 최초 Q값이 엉터리라서 거의 걷지 못하고 Q값도 개선되지 못합니다. 그러나 우연히 걷게 되어 보상이 주어지면 보상이 주어지기 직전 행동에 대응하는 Q값이 증가하고, 이후 보상을 받을 가능성이 있는 행동에 대해 순서대로 Q값이 증가하면서 차차 일련의 Q값이 증가하게 됩니다. 마지막에는 잘 걸울 수 있는 행동 선택에 대응하는 일련의 Q값이 커져 이족보행의 지식 획득이 완료됩니다.
강화학습(reinforcement learning basics)은 게임을 해결하는 인공지능을 만들거나, 기계를 실시간으로 제어하는 등의 분야에 적합합니다. 자율 주행 차량 개발, 로봇 제어 등의 에이전트 소프트웨어 분야에서 널리 활용되고 있습니다. 또한 지도 학습이나 비지도 학습과 함께 쓰여서 더 효율적인 프로그램 개발에 활용되기도 합니다.
2023.06.09 - [인공지능(AI; Artificial Intelligence)] - 에이전트와 강화학습 (3) - 로봇(Robot)
'인공지능(AI)이란? - 기초 개념 및 이론' 카테고리의 다른 글
인공지능과 게임 - 바둑 (0) | 2023.06.13 |
---|---|
인공지능과 게임 - 체스와 체커 (0) | 2023.06.12 |
에이전트와 강화학습 (3) - 로봇(Robot) (0) | 2023.06.09 |
에이전트와 강화학습 (2) - 소프트웨어 에이전트 (0) | 2023.06.09 |
에이전트와 강화학습 (1) - 에이전트와 셀룰러 오토마타 (0) | 2023.06.08 |
댓글