레플리
글 수 27

강화학습 기반의 지능적인 가상캐릭터

조회 수 615 추천 수 0 2016.03.24 03:45:49


VCharacter.jpg

 

소스코드 : 첨부파일

 

 

 

강화학습 기반의 지능적인 가상캐릭터

 

대학원 졸업논문으로 만든 프로젝트이다. 평소 관심분야였던 학습을 중점과제로 다루었다. 학습에도 여러 가지 방법이 있지만 여기서는 강화학습을 사용하였다. 기본적으로 자율적인 행동을 하면서 사용자의 명령 및 지시에 따라 특정 행동을 학습하는 가상캐릭터를 구현하였다. 간단한 감정모델도 가지고 있어 내부 감정상태를 표현한다.

 

 

 

신경망 기반의 마우스 제스처 입력

 

마우스 제스처를 사용하여 가상캐릭터에게 명령을 내릴 수가 있다. 마우스의 패턴을 구분하기 위해 신경망을 사용하였다. 마우스 움직임을 벡터 데이터로 변환한 다음 이를 신경망의 입력으로 하여 패턴을 학습할 수 있게 하였다. 이를 통해 O, X 등 다양한 마우스 제스처를 인식할 수 있다.

 

 

 

Emotion-Mood-Personality 감정모델

 

사용자와의 상호작용을 하면서 가상캐릭터에게 보상과 벌칙을 줄때 감정상태가 변하게 된다. 가상캐릭터는 안정, 기쁨, 슬픔, 화남의 4가지 감정을 가지고 있다. 현재 감정에 따라 학습이나 행동에 영향을 줄 수 있다.

 

 

 

강화학습을 이용한 가상캐릭터의 학습

 

강화학습은 특정 행동에 대해 보상과 벌칙을 줌으로써 경험에 의한 학습을 하는 알고리즘이다. 가상캐릭터나 주변환경의 상태와 가능한 행동에 대한 상태집합을 만들고 특정 행동을 했을 때 보상값이 전체 상태집합으로 퍼저나가면서 학습이 진행된다. 여기서는 강화학습 중에서도 대표적인 Q-Learning을 사용하였다.

 

마우스 제스처를 이용하여 학습을 시킬 수 있는데, 간단한 앉기 동작에서부터 공을 물고 특정 장소로 움직이는 연속적인 행동까지 학습이 가능하다. 복잡한 행동을 학습시키기 위해서는 간단한 동작들을 미리 학습시키고 이를 순차적으로 연결시키며 학습을 수행하는 것이 효과적이다.

 

 

 

결과 분석

 

프로젝트를 기획하면서 실제 애완동물과 같은 가상캐릭터를 구현하고 싶었다. 단순히 미리 정해진 행동만을 수행하는 것이 아니라 사용자와 상호작용을 하면서 주변환경을 인식하고 새로운 것을 배우며 감정을 표현하는 등 복잡한 행동을 수행할 수 있어야 한다. 그래야 사용자가 금방 싫증을 내지 않고 감정적인 교류를 가지며 가상캐릭터에 애착을 가질 수 있다.

 

하지만 실제로 구현을 하면서 복잡한 행동을 전체 상태로 구성하는 것이 힘들었다. 가상환경 안에서 보다 유연하게 행동을 하도록 하고 싶었지만 시간에 쫓기다 보니 특정 정해진 패턴 안에서만 학습이 가능하게 만들 수 밖에 없었다. 또한 가상캐릭터에게 학습을 시키는 방법이 너무 불편하여 프로그램에 쉽게 적응하기가 힘든 단점이 있었다.

 

많은 한계가 있었고 부족한 점이 많았던 프로젝트였지만 가상캐릭터의 행동이나 학습에 있어 좀 더 개선이 된다면 좋은 결과가 있을 것 같다.

List of Articles
제목 글쓴이 날짜 조회 수sort
스타2 강화학습 튜토리얼 [2] 깊은바다 2018-02-04 1522
새로운 강화학습 방식인 니마시니 알고리즘 깊은바다 2018-06-03 1575
딥 강화학습 쉽게 이해하기 [2] 깊은바다 2017-02-28 1928
딥 강화학습으로 퐁 게임 학습 file 깊은바다 2017-03-13 1960
MDP 기반의 스케줄링 구현 file [1] 깊은바다 2016-03-24 2117
tensorflow-js로 만들어본 RL 예제: 2. Deep-sarsa 깊은바다 2018-07-27 2511
강화학습 기반의 자율적인 행동 학습 file 깊은바다 2016-03-24 2515
강화학습 관련 노하우 정리 깊은바다 2019-07-29 2666
DQN 강화학습으로 슈퍼마리오 인공지능 구현 깊은바다 2017-10-30 2716
텐서플로우에서 DQN 강화학습으로 캐치게임 구현 file 깊은바다 2017-03-18 6845
강화학습 Q-Learning과 DQN에 대한 설명 깊은바다 2017-03-27 9923
신경망 Q-Learning으로 구현한 오목 게임 깊은바다 2017-03-29 15617