• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Computer Engineering, SeoKyeong University, Korea.)



Reinforcement learning, Deep Learning, Physics-based Simulation and Control, Proximal policy optimization

1. 서 론

로봇공학과 기계 제어 시스템 설계에서는 전통적으로 기구학(Kinematics) 및 역기구학(Inverse Kinematics, IK)을 이용하여 기계의 움직임을 수학적으로 해결하였다. 이러한 방법은 특정 목표 지점으로 기계 팔을 이동시키는 단기적인 목표를 가진 단순한 움직임을 구현하기에는 효과적이다. 그러나 복잡하고 변화하는 환경에서 기계가 적응해야 하거나, 연속적인 의사 결정이 필요한 장기적인 목표를 수행하는 문제에서는 한계를 보일 수 있다. 이는 전통적인 방법이 사전에 정의된 모델과 계산에 의존하기 때문에, 예측하기 어려운 상황이나 새로운 환경에 대응하는 데 어려움이 있기 때문이다. 이러한 문제를 해결하기 위해 강화학습(Reinforcement Learning)[1]을 도입하는 시도가 증가하고 있으며, 단순한 시뮬레이션부터 복잡한 산업용 로봇공학에 이르기까지 다양한 분야에 적용되고 있다. 강화학습은 환경과의 상호작용을 통해 최적의 행동 정책을 학습함으로써, 예측하기 어려운 상황이나 복잡한 환경에서도 적응력이 필요한 문제를 해결하는 데 효과적이다. 이는 규칙 기반의 전통적인 접근법이 미처 고려하지 못한 다양한 상황에 대한 대응 방안을 스스로 학습할 수 있기 때문이다. 따라서 강화학습은 로봇의 자율성과 유연성을 향상시킬 수 있으며, 장기적인 목표를 수행하는 데 있어서도 유리하다.

본 연구는 에어 하키(Air hockey) 물리 기반 시뮬레이션 환경에서 2 관절 팔이 다채로운 플레이 스타일을 동작하는 강화학습 모델을 제안한다. 에어 하키는 득점을 위해 퍽(Puck)을 상대방의 골 영역에 도달하도록 라켓으로 치는 단순한 규칙을 가진 스포츠 게임이다. 기존 에어 하키 시뮬레이션에서 라켓을 제어하는 알고리즘은 라켓 반경 내에 퍽이 진입하면 라켓을 퍽이 접근하는 방향으로 직선 이동시키는 단순한 구조를 가지고 있다. 이는 실제 사람의 제어 방법과는 큰 차이가 있으며, 고득점을 하기 어려운 단순한 움직임 때문에 제어 성능에 한계가 있다. 에어 하키와 관련된 기존 연구에서는 주로 모바일 게임이나 시뮬레이션에서 규칙 기반의 에이전트를 사용하여 COM 플레이어를 구현하였다. 이러한 에이전트는 퍽의 위치나 속도에 따라 미리 정의된 규칙에 따라 움직이기 때문에, 움직임이 단조롭고 생동감이 부족하며 인간 플레이어에게 쉽게 예측될 수 있다는 한계가 있다. 또한 게임 규칙이나 환경이 조금만 변경되어도 알고리즘을 수정해야 하므로, 다양한 상황에 유연하게 대응하기 어렵다. 본 연구에서는 기존 방법보다 다양한 상황에 적합한 행동과 다채로운 라켓의 궤적을 구현하기 위해 강화학습을 적용한다.

강화학습은 에이전트가 환경과 상호작용하면서 최적의 행동 전략을 찾아가는 학습 방법이다. 에이전트는 기계, 플레이어, 소프트웨어 시스템 등으로 행동을 학습하고자 하는 주체를 의미한다. 강화학습은 ‘AlphaGO’[2], ‘AlphaZero’[3]와 같이, 단순 규칙을 가진 게임 환경에서 인공지능의 이산적인 의사결정을 최적화하는 데 주로 이용되었으며, 전략적 행동과 장기적 예측 능력을 개선하는 데 효과적임이 입증되었다[4].

최근 강화학습의 적용 범위는 점차 확대되고 있다. 로봇공학에서는 강화학습을 통해 로봇이 복잡한 물리적 환경에서 독립적으로 작업을 수행하고 새로운 상황에서의 적응을 학습할 수 있게 되었다. 예를 들어, 로봇과 동일한 구조를 가진 사족보행 에이전트가 시뮬레이션 내에 다양한 지형을 경험하여 얻은 학습 파라미터를 실제 사족보행 로봇 제어에 적용하여 여러 지형에 적응한 로봇 제어를 구현한 연구가 있다[5,6]. 자율주행 분야에서도 강화학습은 차량의 주행 중 결정 과정을 최적화하고 예측 불가능한 도로 상황에 효과적으로 대응할 수 있도록 보완한다[7]. 또한, 거대 언어 모델의 발전과 함께 강화학습은 언어 처리 분야에서도 활용되고 있다. OpenAI의 ChatGPT 3.5에 사용된 InstructGPT는 강화학습 기반의 Fine-tuning 과정을 통해 기존 GPT보다 성능이 개선되었으며, 이 과정에서 사람의 피드백을 통해 학습하는 RLHF(Reinforcement Learning from Human Feedback) 방법을 사용하여 대화 능력을 개선하였다[8].

본 논문에서는 에이전트가 학습할 물리 기반 에어하키 시뮬레이션 환경의 구현과 그 환경에서 강화학습을 적용하여 학습한 제어 모델을 구현을 중심으로 다룬다. 제어 모델은 수비적인 플레이 스타일을 중점적으로 학습하며, 이를 통해 다양한 환경에서의 대응 능력과 기본적인 제어 성능을 평가한다. 제어 모델의 구현과 성능 평가를 통해 강화학습 기반의 에어 하키 에이전트의 활용 가능성을 확인하고, 향후 연구 방향을 제시한다.

2. 강화학습을 활용한 물리 시뮬레이션 학습

2.1 강화학습

강화학습(Reinforcement learning)은 환경(Environment)에서 에이전트(Agent)가 행동을 수행하였을 때, 발생하는 보상을 최대화하는 방향으로 행동 정책을 수정하는 학습 방식이다. ‘환경’은 에이전트가 현재의 상태를 인식하고 정책에 따른 행동을 수행하여 다음 상태로 전이하는 과정을 반복적으로 수행할 수 있는 ‘순차적 행동 결정 문제’이다. 순차적 행동 결정 문제를 컴퓨터 프로그래밍에 적용하기 위해 일반적으로 마르코프 의사 결정 과정(Markov Decision Process)에 따른 구성요소를 정의하여 강화학습에 적용하고 있다.

마르코프 의사 결정 과정[9]에 따른 강화학습의 구성요소는 상태(State, $s$), 행동(Action, $a$), 정책(Policy, $\pi$), 상태변환확률(Transition probability, $P_{ss'}^{a}$), 보상(Reward, $r$)으로 구성된다. [그림 1]은 에이전트가 각 구성요소를 통해 학습 과정을 반복하여 환경으로부터 받는 누적 보상을 최대화하는 최적 정책 $\pi^{*}$를 찾는 과정을 표현한 것이다.

그림 1. 강화학습 과정 중 에이전트와 환경의 상호작용

Fig. 1. Interaction between an agent and environment in the process of reinforcement learning

../../Resources/kiee/KIEE.2024.73.12.2341/fig1.png

2.2 PPO 알고리즘

기존 A2C[11]는 얻은 보상과 가치의 추정에 따라 정책이 급변할 수 있어 학습 과정을 불안정하게 만들 수 있다. 이러한 단점을 보완하기 위해 정책의 변화 범위를 Trust Region으로 제한하는 TRPO(Trust Region Policy Optimization)[13]가 제안되었다. Trust Region은 이전 정책과 현재 정책의 행동 확률 분포에 대한 KL 분산(KL-Divergence)를 연산하여, 정책 변화의 제한 범위를 정의한 것이다. TRPO의 목적함수는 식 (1)와 같다. Hyper Parameter $\beta$를 조정하여 Trust Region의 크기를 조정할 수 있다. GAE(Generalized Advantage Estimation)는 N-step TD를 Advantage 연산에 적용한 방법이며, Advantage 추정의 분산을 줄이고 편향을 최소화한다.

(1)

$\rho_{t}(\theta)=\dfrac{\pi_{\theta}(a_{t}\vert s_{t})}{\pi_{\theta_{old}}(a_{t}\vert s_{t})}$

$L(\theta)= E_{t}\left[\rho_{t}(\theta)A_{\phi}^{GAE}-\beta{KL}[\pi_{\theta_{{old}}}(\bullet{\vert}s_{t}),\: (\pi_{\theta}(\bullet \vert s_{t})]\right]$

하지만 KL 분산의 연산량이 많아, 학습 시간이 오래 걸리고 성능이 떨어진다는 단점이 존재한다. PPO(Proximal Policy Optimization)[14]는 TRPO의 Trust Region을 기반으로 하면서 Clip 함수를 통해 연산량을 감소시킨 방법이다. Hyper Parameter $\epsilon$을 조정하여 정책의 변화 범위를 Clip 함수를 통해 $1-\epsilon$이상 $1+\epsilon$로 단순히 설정한다. PPO의 목적함수는 식 (2)와 같다.

(2)
$\left .\left . L_{t}^{CLIP}(\theta)= E_{t}\left[\min[\rho_{t}(\theta)A_{\phi}^{GAE},\: CLIP(\rho_{t}(\theta),\: 1-\epsilon ,\: 1+\epsilon)A_{\phi}^{GAE}]\right]\right .\right .$

PPO는 현재 정책을 사용하여 환경에서 $T$번의 행동 step을 경험하며 얻은 상태, 행동, 보상 데이터를 Buffer에 저장한 후, 그 데이터를 사용하여 식 (2)를 계산한다. 목적함수를 통해 정책을 업데이트할 때, 이전 정책과 현재 정책의 간극을 두기 위해 $K$ epoch만큼 파라미터 업데이트를 진행한다. 이러한 과정을 반복한 것을 표현한 것이 Algorithm 1이다. 학습데이터를 Buffer에 저장한 후, Mini-batch 방법으로 학습을 진행한다면, 데이터의 시간적 종속성을 완화할 수 있으며, 저장한 데이터를 여러 번 활용할 수 있어 데이터 활용의 효율성을 높일 수 있다. 본 연구에서는 위와 같이 다방면에서의 성능이 개선된 PPO를 활용한다.

2.3 시뮬레이션 기반 강화학습

강화학습은 환경과 상호작용하면서 관측한 데이터를 학습에 이용하는 방법이다. 환경은 실세계(Real-world)에서 발생한 데이터들의 집합 또는 시뮬레이션(Simulation)을 주로 활용한다.

../../Resources/kiee/KIEE.2024.73.12.2341/al1.png

단, 실세계에서의 강화학습은 여러 한계점을 가지고 있다. 첫 번째로는 에이전트가 특정 행동을 학습하기 위한 환경 조성 및 관측 데이터 수집에서 발생하는 비용적 문제이다. 에이전트가 학습에 필요한 초기 상태로 되돌리기 위한 사람의 물리적 개입도 인건비로 계산되어 비용적 문제에 포함될 수 있다. 두 번째는 하나의 에이전트로 학습하였을 때, 발생할 수 있는 시간적 소요가 크다는 문제점이다. 실세계에서 학습 시간 단축을 위해 여러 에이전트를 병렬적으로 학습하는 것은 시간적 소요는 감소하지만, 비용적인 부담이 증가하기 때문에 완전한 해결방안은 아니다. 마지막으로는 학습 환경에 관련된 공간적 제약이 존재한다는 점이다. 학습 공간이 좁으면 다양한 경험이 제한될 수도 있으며, 이는 학습 결과에도 영항을 미칠 수 있다.

실세계에서의 강화학습은 이러한 단점들 때문에 실현하기 어렵다. 이를 해결하기 위한 방안이 실세계를 모방한 시뮬레이션을 학습 환경으로 활용하는 시뮬레이션 기반 강화학습이다. 시뮬레이션에서 강화학습을 진행한다면, 에이전트의 물리적 손상 없이 안정적으로 학습이 가능하며 비용적, 시간적, 공간적 문제들을 해결할 수 있다. 이는 다양한 분야에서 적용되고 있는 방법이며, 대표적인 사례로 Airsim을 활용한 차량 및 드론 자율주행[15], Nvidia Isaac sim을 활용한 로봇 동작 제어[15], 의학 시뮬레이션을 이용한 인체 근육 메커니즘 분석[17], Unity ML Agents를 이용한 게임 AI 학습[18] 등이 있다. 또한 강화학습 알고리즘의 성능을 측정하기 위해 Open AI Gym과 같은 오픈 소스 물리 시뮬레이션 환경을 이용하며 예시는 [그림 2]와 같다. 본 연구에서는 효율적인 물리적 동작 학습을 위해 Unity ML Agents를 이용해 시뮬레이션 환경을 제작하고 Pytorch 기반 PPO 모델 학습을 진행한다.

그림 2. 강화학습에 활용되는 주요 물리적 제어 시뮬레이션 환경.

Fig. 2. Major physical control simulation environments used for reinforcement learning, from left to right

../../Resources/kiee/KIEE.2024.73.12.2341/fig2.png

3. 에어하키 플레이 동작 학습 모델

3.1 학습 과정 개요

학습 과정은 ‘모델 구성’, ‘에어 하키 모션 학습’, ‘성능 평가’로 크게 3단계로 진행한다. ‘모델 구성’은 A2C 기반 PPO 모델 학습 구조를 구성한 후, OpenAI Gym Mujoco에서 제공하는 2 관절 팔 환경인 Reacher를 활용하여 모델의 학습이 원활히 진행되는지 확인한다. 다음으로 ‘에어 하키 모션 학습’에서는 ‘모델 구성’에서 제안한 구조를 사용하여 에어 하키 환경 학습을 진행한다. 이후 ‘성능 평가’ 과정에서 학습된 모델의 성능을 평가하기 위해 기존 모바일 에어 하키 게임에서 활용하는 COM 플레이어 알고리즘 그리고 실제 인간과의 대결을 진행하여 공격 성공률, 수비 성공률을 측정한다.

3.2 A2C 기반 PPO 모델 구성

PPO는 Actor-Critic 구조를 기반으로 변형된 알고리즘이기 때문에 본 연구에서는 Actor-Critic에 Advantage를 추가한 A2C 구조를 우선 구성한 후, PPO 알고리즘에 필요한 요소들을 구조에 추가한다. PPO와 A2C 모두 Actor 신경망과 Critic 신경망 구조를 사용하며, 각 신경망의 입력층과 은닉층은 동일한 개수의 노드를 가지고 있다. 노드의 수는 512개, 256개, 64개로 출력에 가까워질수록 개수가 줄어들게 설정한다.

Actor 신경망에서는 현재 상태가 입력되면 신경망을 거쳐 행동 정규 분포의 평균 $\mu$과 표준 편차 $\sigma$가 도출된다. 2 관절 팔의 각 관절의 돌림힘(Torque)에 대한 행동 분포를 각각 표현하기 위해 평균과 표준 편차가 2개씩 도출되도록 한다. 활성화 함수는 입력된 상태 요소 중 음수 범위를 가지고 있는 요소가 존재할 가능성을 고려하여 1계층과 2계층에서는 Leaky Relu를 적용한다. 3계층에서는 돌림힘(Torque)의 행동 범위가 $-1\le T\le 1$이기 때문에 Tanh 함수를 적용하며, 표준편차는 음수가 될 수 없기 때문에 양수의 범위만 가지는 Softplus 함수를 적용한다. Critic 신경망에서는 상태가 입력되면 해당 상태의 가치함수 값을 추정한다. 가치함수의 값은 보상의 범위와 연관이 있으며 실수 범위에서 표현되기 때문에 모든 계층에서 활성화 함수를 Leaky Relu로 설정한다.

A2C를 기반으로 PPO로 확장한 구조가 [그림 3]이다. 기존 A2C에서 GAE를 계산하는 과정과 과거의 행동 확률 $prob_{t}$($\pi_{old}(s_{t}\vert a_{t})$), 추정 가치함수 값 $\hat{V}_{\phi}(s_{t})$을 저장하는 Mini-batch Memory를 추가한 형태이다. [그림 3]에서 제시된 PPO 학습 구조는 과정 ①, 과정 ②, 과정 ③ 순으로 동작한다. 각 과정은 번호의 오름차순으로 순차적으로 실행되며, 각 과정은 독립적으로 수행된다. 과정 ①에서는 Actor에서 도출된 행동을 환경에서 에이전트가 수행하며 Transition($s_{t}$, $a_{t}$, $prob_{t}$, $r_{t}$)을 Buffer에 저장한다. 총 $n$번의 행동을 수행하여 $n$개의 데이터를 수집하며, 본 연구에서는 $n$을 10으로 설정한다. 이후 과정 ②에서 수집한 각 Transition의 $A_{\phi}^{GAE}(s_{t},\: a_{t})$와 $\hat{V}_{\phi}(s_{t})$를 연산하여 Buffer에 저장한다. 마지막으로 과정 ③에서 저장한 데이터를 Mini-batch 방법으로 목적함수를 연산한 뒤, $K$ epoch의 파라미터 업데이트를 진행한다. 이후 이러한 과정을 반복적으로 수행하며 보상에 대한 기대치를 최대로 하는 행동 정책을 학습한다.

그림 3. A2C 기반 PPO 모델 구조

Fig. 3. Model structure of PPO based on A2C

../../Resources/kiee/KIEE.2024.73.12.2341/fig3.png

그림 4. A2C 기반 PPO 모델의 Reacher-V4 학습 결과

Fig. 4. Reacher-V4 Learning Results for A2C-Based PPO Models

../../Resources/kiee/KIEE.2024.73.12.2341/fig4.png

구성한 A2C 기반 PPO 모델의 무결함을 확인하기 위해 실제 Unity 물리 시뮬레이션 환경에 적용하기 전, 2 관절 팔과 유사한 Mujoco의 Reacher-V4 환경에서 학습을 진행한다. Reacher 환경은 2 관절 팔의 Endpoint(녹색)가 목표 지점인 Target(적색)에 가까워질수록 큰 보상을 받는 환경이다. 부드러운 관절의 움직임을 추가적으로 학습시키기 위해 이전 행동과 현재 행동의 차이를 음수 보상으로 제공하여 학습한 결과는 [그림 4]과 같다. [그림 4]의 좌측은 랜덤한 EndPoint와 Target 위치를 학습된 모델에 제공하였을 때, PPO 에이전트가 움직인 궤적을 실제 환경에서 나타낸 것이다. 우측은 매 프레임 별 Endpoint(FingerTip)의 위치를 저장하여 그래프로 나타낸 것이다. 두 그림의 궤적을 보면 시작지점으로부터 목표 지점까지 부드럽게 이동하고 있는 것을 확인할 수 있으며, 이를 통해 제안된 A2C 기반 PPO 학습 구조의 무결함을 확인할 수 있다. 우측은 매 프레임 별 Endpoint(FingerTip)의 위치를 저장하여 그래프로 나타낸 것이다. 두 그림의 궤적을 보면 시작지점으로부터 목표 지점까지 부드럽게 이동하고 있는 것을 확인할 수 있으며, 이를 통해 제안된 A2C 기반 PPO 학습 구조의 무결함을 확인할 수 있다.

3.3 에어하키 시뮬레이션 환경 구현

Unity 엔진에서 제공하는 게임적 요소 및 실제 물리적 환경과 유사한 구성요소들을 Python에서 동작하는 Pytorch 기반 강화학습 모델을 학습시킬 수 있도록 지원하는 Unity ML Agents를 활용하여 에어 하키 시뮬레이션을 제작한다. [그림 5]은 시뮬레이션 환경을 구현하는 과정이다. 좌측부터 우측 순서대로 단순 2 관절 팔 제작, 병렬 학습 환경 제작, 실제 에어하키 경기장 구현, 점수 및 골 판정 시스템 구현을 나타낸다.

환경에서 핵심적인 요소 중 하나인 2 관절 팔을 구현하기 위해 Unity에서 제공하는 물리적 요소인 Articulation Body를 사용한다. 기존 게임 구현에 주로 활용되는 Rigid Body 요소보다 Articulation Body가 현실적인 물리적 동작 연산에 효과적이며 Unity 소프트웨어 내부에서 회전 운동에 대한 표현이 가능하다. 2개의 각 관절(Joint)에서 돌림힘(Torque)를 가하면 팔이 움직이도록 구현하였다.

실제 에어 하키에서는 퍽을 바람을 통해 보드와의 마찰력을 줄여 퍽의 매끄러운 움직임을 구현하였다. 이를 모방하기 위해 보드와 퍽의 마찰력을 0으로 설정하였으며, 보드로부터 0.2 이격시키고 중력을 0으로 설정하였다. 퍽이 보드 밖을 나가는 것을 방지하기 위해 퍽의 Y축 이동을 제한하였다. 초기에는 단순히 공을 바깥으로 내보내기 위한 학습을 진행하기 위해 보드 주위로 벽을 설정하지 않았다.

다중 환경 학습을 활용하기 위해 하나의 2관절 팔과 보드, 퍽을 캡슐화하여 복제 가능한 형태인 Prefab으로 제작하였으며, 실제 에어 하키 모션 학습을 위한 에어 하키 보드와 점수 및 골 판정시스템을 단계적으로 추가하였다. 보드는 가로 길이 12, 세로 길이 22로 설정하였다.

그림 5. Unity ML Agents를 활용한 에어하키 시뮬레이션 환경 구현 과정

Fig. 5. Implementation process of an Air Hockey Simulation environment using Unity ML Agents. From left to right

../../Resources/kiee/KIEE.2024.73.12.2341/fig5.png

3.4 에어하키 환경에서의 MDP 요소 정의

상태를 정의하기에 앞서 마르코프 특성에 따라 현재 상태만으로 행동 및 보상을 결정할 수 있어야 한다. 이를 고려하여 에어 하키를 학습하기 위한 상태 및 행동을 제안한다. 상태는 총 9개, 행동은 2개의 요소로 구성되어 있으며 [표 1]과 같다.

표 1 에어하키 환경에서의 상태 및 행동 정의

Table 1 Definition of States and Actions in an Air Hockey Environment.

Element

Range

Coordinate

State $s$

Frist arm position x ($\sin\alpha$)

$-\pi\le\alpha\le\pi$

arm

First arm position y ($\cos\alpha$)

Second arm angle ($\beta$)

$-\pi\le\beta\le\pi$

arm

First arm angular velocity ($\omega_{1}$)

$-\infty\le\omega_{1}\le\infty$

arm

Second arm angular velocity ($\omega_{2}$)

$-\infty\le\omega_{2}\le\infty$

arm

Target position x ($x$)

$-6\le x\le 6$

board

Target position y ($y$)

$-11\le y\le 11$

board

Target velocity x ($v_{x}$)

$-\infty\le v_{x}\le\infty$

board

Target velocity y ($v_{y}$)

$-\infty\le v_{y}\le\infty$

board

Action $a$

Torque 1 ($T_{1}$)

$-1\le T_{1}\le 1$

arm

Torque 2 ($T_{2}$)

$-1\le T_{2}\le 1$

arm

상태 구성요소는 첫 번째 관절의 위치 좌표, 두 번째 관절의 각도, 각 관절의 각속도, 퍽(Target)의 위치와 속도이다. 첫 번째 관절의 각도 대신 위치를 사용하였을 때, 정책을 보다 단시간에 학습하는 것을 확인할 수 있었으므로 다음과 같이 구성하였다. 각 요소는 arm 좌표계와 board 좌표계, 두 기준에서 측정된 값이다.

행동은 각 관절의 돌림힘(Torque)이며 첫 번째 관절의 돌림힘을 $T_{1}$, 두 번째 관절의 돌림힘을 $T_{2}$로 정의한다. 돌림힘은 $-1\le T\le 1$ 의 범위를 가지며 $\vert T \vert =1$일 때, 초당 $360^{\circ}$를 회전한다. 회전력에 대한 제어는 Ariticulation body에서 제공하는 PD 제어기(PD Controller)를 통해 제어하며 이는 오버슈팅(Over-shooting) 현상을 방지한다.
(3)
$R = r_{1}+ r_{2}+ r_{3}+ r_{4}+ r_{5}$
(4)
$r_{1}= -0.3·((T_{1,\: t}-T_{1,\: t-1})^{2}+(T_{2,\: t}-T_{2,\: t-1})^{2})$
(5)
$r_{2}=\begin{cases} 1+0.3· v_{y}&{if}\;p_{T}\in\;{B}\;{and}\;v_{y}>0\\ -1+0.5· v_{y} &{if}\;p_{{T}}\in\;{R}\;{and}\;v_{y}<0\\ 0 & {otherwise} \end{cases}$
(6)
$r_{3}=\begin{cases} 20&{if} p_{T}\in{G}_{{away}}\\ -20&{if} p_{T}\in{G}_{home}\\ 0&{otherwise} \end{cases}$
(7)
$r_{4}=\begin{cases} 0.7&{if} p_{E}\in{C}\\ 0&{otherwise} \end{cases}$

본 연구에서 제안하는 보상$R$ 은 식 (3)과 같이 $r_{1}$부터 $r_{4}$까지 총 4가지의 기준에서 측정된 값들의 합으로 표현된다. 4가지 요소는 식 (4)-(7)으로 정의한다. $r_{1}$은 2 관절 팔의 안정적인 제어를 학습하기 위한 보상이며 이전 행동 돌림힘과 현재 돌림힘의 차이를 음수 보상으로 제공한다. 이를 통해 팔이 떨리는 현상과 불안정한 움직임을 완화할 수 있다.

$r_{2}$부터 $r_{4}$는 퍽(Target)과 라켓(EndPoint)의 위치가 어떤 영역에 포함되어 있는지 또는 속도의 방향과 크기에 따라 연산이 된다. 영역은 [표 2]와 같이 정의하며 모든 영역은 board 좌표계를 기준으로 한다.

표 2 Air Hockey 환경에서 보상 연산에 사용하는 각 영역 정의

Table 2 Definition of each zone used for reward calculation in the Air hockey environment

Area

Range

Coordinates

B

$[(x,\: y)\vert -6\le x\le 6,\: 0\le y\le 11]$

board

R

$[(x,\: y)\vert -6\le x\le 6,\: -11\le y\le -6]$

board

C

$[(x,\: y)\vert -3\le x\le 3,\: -11\le y\le -7]$

board

Ghome

$[(x,\: y)\vert -3\le x\le 3,\: y< -11]$

board

Gaway

$[(x,\: y)\vert -3\le x\le 3,\: y>11]$

board

Target와 Endpoint의 위치는 Z축 높이를 고려하지 않은 2차원 평면에서의 XY 좌표이며 각각 $ p_{T}$와 $ p_{E}$로 정의한다. $r_{2}$는 $ p_{T}$에 따른 에이전트의 유불리를 표현하는 요소이며, 에이전트 기준 상대방의 Court를 나타내는 ${B}$에 $ p_{T}$가 포함된다면 속도에 따른 양수 보상을, 자신의 Court ${R}$에 $ p_{T}$가 포함된다면 음수 보상을 지급한다. $r_{3}$는 점수 득실 여부에 따른 보상이다. 에이전트가 상대방의 골 영역 ${G}_{{away}}$에 Target을 이동시켜 득점할 경우 보상을 20, 에이전트의 골 영역 ${G}_{home}$에 Target이 이동되어 실점할 경우 보상을 –20 지급한다. $r_{4}$는 $ p_{E}$가 골대 앞 수비 영역(Crease) ${C}$에 위치하고 있는지에 대한 여부에 따라 지속적으로 보상을 지급한다.

상태, 행동과 보상에 대해 에어 하키 시뮬레이션 상에서 나타낸 것이 [그림 6]이다. [그림 6]의 좌측은 상태와 행동을, 우측은 보상을 연산할 때 사용하는 요소인 영역과 $ p_{T}$, $ p_{E}$를 표현한 것이다. board 좌표계와 arm 좌표계는 서로 다른 원점을 기준으로 하며 각 원점은 Y축은 일치하지만, X축은 11의 거리 차가 존재한다.

그림 6. 에어하키 환경에서의 상태 및 보상의 시각적 표현.

Fig. 6. Visual representation of states and rewards in the Air Hockey environment.

../../Resources/kiee/KIEE.2024.73.12.2341/fig6.png

그림 7. AirhockeySim의 대전 화면

Fig. 7. AirhockeySim's battle screen

../../Resources/kiee/KIEE.2024.73.12.2341/fig7.png

3.5 학습과 성능 평가를 위한 대전

앞서 제안한 구조의 모델에 대한 학습을 진행한다. 모델의 시작 상태는 퍽의 속도를 랜덤하게 설정하여 에이전트의 학습을 진행한다. 상대방이 존재하지 않은 상태이며, 매번 에이전트에게 다른 방향, 다른 속도로 퍽이 발사된다. 상대 혹은 자신의 골대에 퍽이 들어가는 순간 에피소드는 종료된다.

학습 이후 모델의 성능을 평가하기 위해 제작한 시뮬레이션을 대전이 가능하도록 [그림 7]과 같이 개조한 ‘AirHockeySim’에서 대전을 진행한다. 대전 상대는 자기 자신을 포함한 기존 모바일 게임에서 사용되는 컴퓨터 플레이어(COM) 알고리즘, 그리고 25명의 20-30대 사람과 대전을 진행한다. 대전 방식은 사람이 컴퓨터 마우스를 조작하여 노란색 라켓을 이동시켜 에어 하키 대결을 진행한다. 대결상황에서 형평성을 고려하기 위해 노란색 라켓의 이동범위는 에이전트와 동일한 범위에서 움직일 수 있도록 제한한다. COM 알고리즘은 단순히 퍽이 라켓 주변 일정 범위에 감지되면 라켓을 공에 가까이 위치시키는 공격 동작을 취한 뒤, 일정 시간 뒤에 골대 앞으로 수비하는 동작을 나타내며 Algorithm 2와 같다.

../../Resources/kiee/KIEE.2024.73.12.2341/al2.png

4. 에어하키 플레이 동작 학습 실험

4.1 실험 환경

[표 3]는 실험에서 사용한 고정적 수치인 하이퍼-파라미터(Hyper-parameter)의 항목과 실제 사용한 수치에 대해 명시한다. 하이퍼-파라미터의 설정은 100번의 실험을 거쳐 가장 안정적인 성능을 보인 수치로 설정하였다.

$\alpha$는 Actor 신경망과 Critic 신경망이 파라미터 업데이트를 진행할 때, 사용하는 학습률(Learning rate)이다. 본 실험에서는 두 신경망에 대한 학습률을 동일하게 설정하였으며 학습률을 다르게 설정하는 것은 학습 성능에 큰 영향을 미치지 못하였다. $\lambda$는 1에 가까울수록 GAE를 연산할 때, 장기적인 보상을 더 많이 고려한다. 에어 하키 환경은 긴 동작 끝에 학습 목표인 득점을 얻을 수 있기 때문에 1에 근사한 값으로 설정하며, 감가율 $\gamma$는 같은 이유로 1에 근사한 값으로 설정한다. 정책의 변동성 범위를 제한하는 $\epsilon$는 기존 PPO 모델에서 일반적으로 사용되는 0.9로 설정한다.

학습은 NVIDIA GeForce GTX 1660 Ti를 이용하여 진행하였으며, 에이전트는 16개의 동일한 환경에서 행동을 수행하며 학습한다. 10번의 행동을 할 때마다 3 Epoch의 Actor와 Critic의 파라미터 업데이트가 진행된다. 환경을 경험하며 수집한 데이터를 저장하는 Buffer의 크기는 20480이다. 16개의 환경에서 10번의 행동 동안 얻는 160개의 데이터보다 더 많은 용량의 데이터를 저장하는 이유는 과거의 데이터를 누적하여 학습에 활용하기 위함이다. 최대 20480개의 Transition을 저장할 수 있으며, 학습할 때에는 2048개 Transition으로 구성된 mini-batch를 이용하여 학습한다. Buffer의 크기를 160으로 설정하였을 때 보다 20480으로 설정하였을 때 학습 시간 소요가 약 18.7% 감소하였다.

표 3 실험에서 사용한 하이퍼-파라미터

Table 3 Hyper-parameters used in the experiment

Hyper-Parameter

Figures used

Learning rate ($\alpha$)

0.0003

Regularization in GAE ($\lambda$)

0.95

Clipping threshold ($\epsilon$)

0.9

Discounting rate ($\gamma$)

0.995

Batch size

2048

Buffer size

20480

Epoch in PPO

3

$N$-step in PPO

10

Number of Environment

16

4.2 Episode 내 최대 Step 설정

병렬적으로 다수의 환경에서 비동기적으로 행동이 이루어지므로 환경별 에피소드 종료 시점이 다르다. 때문에 학습 반복 단위인 에피소드의 최대 길이, 다시 말해 최대 행동 횟수(step) 설정이 필요하다. 일정 행동을 경험할 만큼의 step이 필요하지만 불필요할 정도로 길어질수록 학습에 효과적이지 못한 양상을 보였다. 최대 step을 300 step부터 1000 step까지 100 step 단위로 다양한 값을 설정해본 결과, 가장 성능이 좋은 600 step을 최대 step 단위로 설정하였다. 600 step 이전에 득점, 실점이 발생한다면 학습 단위는 조기 종료되며 새로운 학습 단위를 시작한다.

4.3 학습 과정 중 성능

학습은 2,000,000 step을 진행하였으며, 학습 시간은 약 2시간 소요되었다. [그림 8]은 20,000 step 째 학습 중인 모델의 성능과 학습이 완료된 모델의 시간별 관절 각도 변화를 나타낸 것이다. 그래프의 가로축은 300 step을, 세로 축은 첫 번째 관절 각도(angle1, $\alpha$)에서 두 번째 관절 각도(angle2, $\beta$)를 뺀 값이며, 그래프의 변폭이 클수록 2 관절 팔의 움직임이 빠른 것이다. 학습 중인 모델은 퍽을 치는 행동, 막는 행동이 불안정, 불확실하고 움직임이 둔한 경향을 보이지만, 학습이 완료된 모델은 관절의 각도 변화가 뚜렷하고 움직임이 비교적 빠른 것을 확인 할 수 있다.

그림 8. 학습 중인 모델과 학습 완료된 모델의 시간별 관절 각도와 Torque 변화

Fig. 8. Graphs of joint angle changes over time and Torque changes for the model in training and the model after training

../../Resources/kiee/KIEE.2024.73.12.2341/fig8.png

4.5 COM 알고리즘, 사람과의 대전 성능 결과

모델의 에어 하키 모션의 성능을 평가하기 위해 에어 하키 시뮬레이션 ‘AirHockeySim’에서 실제 대전을 진행한다. 대전 진행 방식은 에이전트 기준에서 공격 상황과 수비 상황이 각 500번씩 주어진다. 공격 상황은 퍽이 에이전트에게 주어지며, 우선적으로 공격할 기회가 주어진다. 수비 상황은 반대로 대결 상대에게 퍽이 주어지며, 에이전트가 수비를 한다. 모델이 자기 자신과 동일한 상대와 번갈아 가며 공격, 수비 대전을 수행하고, COM, 25명의 사람의 대전도 동일한 조건에서 시행된다. 단, 공격 상황과 수비 상황이 중첩되는 경우를 제외하기 위해 연속적으로 대전을 진행하지 않고 이산적으로 상황을 분리하여 진행한다. [표 4]는 각 모델의 공격 성공횟수와 수비 성공횟수를 기록한 표이다. 공격 상황과 수비 상황 각 500번을 진행하였으며, 중첩 상황은 제외하였다. 모델은 수비에서는 강세를 보였지만 공격 성공률이 낮다. 특히 사람과의 대전에서 제일 낮은 공격 성공률을 보였다.

표 4 모델의 공격 성공 횟수와 수비 성공 횟수

Table 4 Number of successful attacks and successful defenses of the model

Attack

Defense

Basic PPO

18/500

481/500

COM

83/500

391/500

Human (25 people)

9/500

368/500

5. 결 론

본 연구에서는 에어 하키 시뮬레이션 환경에서의 2 관절 팔이 다채로운 플레이 스타일을 구현하는 강화학습 모델을 제안하였으며, 이에 대한 성능 검증을 진행하기 위해 기존 에어 하키 게임에서 사용한 COM 알고리즘과 사람 25명과 겨루어 성능을 평가하였다. 공격 성공률과 수비 성공률에 대한 분석과 별개로 기존 성능 평가에 참여한 사람을 포함한 30명을 상대로 각 모델과 경기를 진행하였다. 경기 방식은 제한 시간 2분 내 더 많은 득점을 하는 플레이어가 승리하는 방식으로 진행하였다. 모델의 승률은 43.3% 으로 수비에는 강세지만 득점을 하지 못하여, 패배 확률이 더 높게 측정되었다. 이를 통해 추후 연구에서 공격적, 적극적인 정책을 학습하기 위해, 보상함수 수정, 학습 방법의 개선, 학습 완료 이후 적대적 에이전트를 두어 추가적으로 ‘경쟁 학습’을 진행할 예정이다.

본 연구의 강화학습을 이용하여 2 관절 로봇 팔이 복잡한 운동 패턴과 다양한 플레이 스타일을 학습할 수 있음을 보였다. 이는 로봇 제어 분야에서 강화학습의 적용 가능성을 제안하고, 기존의 규칙 기반 제어 방법이 가진 한계를 보완하는 데에 이론적으로 기여할 수 있다. 실질적으로는 강화학습을 통해 에어 하키 모션을 취하는 2 관절 팔을 학습한 결과, 기존의 단순한 메커니즘의 COM 알고리즘보다 참여자에게 더 다양한 플레이 스타일을 선보일 수 있었다. 이는 향후 게임 산업 및 디지털 서비스에서 강화학습이 활용될 경우, 사용자에게 보다 풍부하고 다채로운 경험을 제공할 수 있음을 보여준다.

강화학습을 통해 에어 하키 모션을 취하는 2 관절 팔을 학습한 결과, 기존 단순한 메커니즘의 COM 알고리즘보다 다채로운 플레이 스타일을 참여자에게 선보일 수 있었으며, 이는 향후 게임 산업 및 디지털 서비스에 강화학습이 활용된다면 소비자들에게 다양한 경험을 선사할 수 있을 것으로 기대된다.

Acknowledgements

This Research was supported by Seokyeong University in 2024.

References

1 
R. S. Sutton, and A. G. Barto, Reinforcement Learning: An Introduction, 2nd ed., MIT Press, pp. 1–552, 2018.URL
2 
D. Silver, J. Schrittwieser, and K. Simonyan, “Mastering the game of Go without human knowledge,” Nature, vol. 550, no. 7676, pp. 354–359, Oct. 2017.URL
3 
D. Silver, J. Schrittwieser, and I. Antonoglou, “Mastering chess and shogi by self-play with a general reinforcement learning algorithm,” in Advances in Neural Information Processing Systems (NeurIPS), Long Beach, CA, USA, Dec. 2017.URL
4 
O. Vinyals, W. Czarnecki, and M. Mathieu, “Grandmaster level in StarCraft II using multi-agent reinforcement learning,” in Advances in Neural Information Processing Systems (NeurIPS), Vancouver, Canada, Dec. 2019.URL
5 
J. Ibarz, J. Tan, and S. Levine, “How to train your robot with deep reinforcement learning: Lessons we have learned,” in Proceedings of the International Symposium on Robotics Research (ISRR), Hanoi, Vietnam, Oct. 2019.DOI
6 
S. Gu, T. Lillicrap, and S. Levine, “Deep reinforcement learning for robotic manipulation with asynchronous off-policy updates,” in Proceedings of the IEEE International Conference on Robotics and Automation (ICRA), Singapore, pp. 3389–3396, May 2017.DOI
7 
B. R. Kiran, I. Sobh, and V. Talpaert, “Deep reinforcement learning for autonomous driving: A survey,” in IEEE Transactions on Intelligent Transportation Systems, vol. 23, no. 6, pp. 4909–4926, Jun. 2021.DOI
8 
L. Ouyang, J. Wu, and P. Mishkin, “Training language models to follow instructions with human feedback,” in Advances in Neural Information Processing Systems (NeurIPS), New Orleans, LA, USA, Dec. 2022.URL
9 
M. L. Puterman, “Markov decision processes,” in Handbooks in Operations Research and Management Science, D. P. Heyman and M. J. Sobel, Eds., Elsevier, vol. 2, pp. 331–434, 1990.DOI
10 
R. J. Williams, “Simple statistical gradient-following algorithms for connectionist reinforcement learning,” in Machine Learning, vol. 8, no. 3–4, pp. 229–256, May 1992.DOI
11 
V. Mnih, A. P. Badia, and D. Silver, “Asynchronous methods for deep reinforcement learning,” in Proceedings of the International Conference on Machine Learning (ICML), New York, NY, USA, pp. 1928–1937, Jun. 2016.URL
12 
J. Peters, and S. Schaal, “Natural actor-critic,” in Neurocomputing, vol. 71, no. 7–9, pp. 1180–1190, Mar. 2008.DOI
13 
J. Schulman, P. Abbeel, and M. Jordan, “Trust region policy optimization,” in Proceedings of the International Conference on Machine Learning (ICML), Lille, France, pp. 1889–1897, Jul. 2015.URL
14 
J. Schulman, P. Dhariwal, and A. Radford, “Proximal policy optimization algorithms,” in arXiv preprint arXiv:1707.06347, Jul. 2017.DOI
15 
K. Kersandt, “Deep reinforcement learning as control method for autonomous UAVs,” MS Thesis, Universitat Politècnica de Catalunya, 2018.URL
16 
V. Makoviychuk, and M. Macklin, “Isaac Gym: High performance GPU-based physics simulation for robot learning,” in arXiv preprint arXiv:2108.10470, Aug. 2021.DOI
17 
N. Rudin, S. Hoeller, and R. Hafner, “Learning to walk in minutes using massively parallel deep reinforcement learning,” in Conference on Robot Learning (CoRL), PMLR, 2022.URL
18 
A. Juliani, V. Berges, and D. Lange, “Unity: A general platform for intelligent agents,” in arXiv preprint arXiv:1809.02627, Sep. 2018.URL

저자소개

문성욱(Seonguk Moon)
../../Resources/kiee/KIEE.2024.73.12.2341/au1.png

2024년 : 서경대학교 컴퓨터공학과 공학사

관심분야 : 강화학습, 시뮬레이션, 컴퓨터 그래픽스

조영완(Youngwan Cho)
../../Resources/kiee/KIEE.2024.73.12.2341/au2.png

1991년 : 연세대학교 전자공학과 공학사

1993년 : 연세대학교 전자공학과 공학석사

1999년 : 연세대학교 전자공학과 공학박사

2000년~2003년 : 삼성전자 책임연구원

2003년~현재 : 서경대학교 컴퓨터공학과 교수