[간단한 인공감정 모델의 구현]

- 우종하(deepseas(AT)sogang.ac.kr)
2004/03/16

 


    - 프로그램 [Down]

 

인공감정(Artificial Emotion)의 개요

감정이란 자기 자신이나 다른 사람이 어떤 사물 또는 사건에 대해 느끼는 것과 그로 인한 행동을 말한다. 지금까지 감정이란 지능과 마찬가지로 생명체에게서만 볼 수 있는 고유한 특성으로 여겨져 왔다. 하지만 최근들어 인공적인 감정 모델을 구축하여 컴퓨터에 가상적으로 부여하는 연구가 이루어지고 있다.

이러한 인공감정은 단순히 기계에 불과한 컴퓨터에 생명체와 같은 감정을 표현하게 하여 인간이 보다 친숙하게 컴퓨터와 상호작용을 할 수 있도록 도와줄 것이다. 또한 아이보 같은 인공 애완동물이나 로봇 같은 경우 보다 가깝고 애착을 느끼도록 할 것이며, 게임에 있어서도 NPC가 감정을 갖고 있다면 게임을 더욱 실제 세계와 같이 묘사하여 게이머들의 몰입도를 높일 수 있을 것이다.

 

인공감정 모델의 구현

대표적으로 OCC(Ortony, Clore, Collins) 모델을 비롯하여 여러 가지 감정 모델들이 만들어졌지만 그 개념이나 실제 구현이 매우 복잡하고 아직까지 완벽한 감정 표현은 불가능한 걸로 알려져 있다.

여기서는 아래 참고자료에 있는 'Evolving Pet Robot with Emotional Model'이란 논문에 나와있는 감정모델을 '인공감정 AE : 감정과 성격의 모방'에서 나온 요소를 변형하고 확장하여 구현해 보았다. 이 모델은 다른 감정 모델과 달리 매우 단순하며 수치적으로 계산하기 쉽다는 장점이 있다.

 

인공감정 모델의 구성요소

감정 모델의 구성요소는 위의 그림의 Emotion, Mood, Personality과 Feeling의 4가지로 이루어져 있다.

<Emotion>은 순간적인 감정으로 감정 모델의 기본이 되는 입력이다.

<Mood>는 일시적인 감정으로 Emotion에 의해 영향을 받는다. 그리고 시간이 지날수록 평소의 Mood로 돌아가는 성질이 있다.

<Personality>는 개체의 성격을 나타내는 요소로서 Mood에 의해 영향을 받고 쉽게 변하지 않는다.

<Feeling>은 위의 세 가지 요소들을 적절하게 조합하여 실제 표현되는 감정이라 할 수 있다.

 

프로그램 소개

위에서 제안한 인공감정 모델을 사용하여 간단한 프로그램을 구현해보았다. 컴퓨터는 Stable, Happy, Angry, Sad의 4가지 감정이 존재하고 각각의 감정 변수를 가지고 있다.

사용자가 칭찬(Praise)을 하면 Happy의 감정이 올라가고 꾸중(Scold)을 하면 Angry의 감정이 올라가며, 가만히 놔두면 Sad의 감정이 올라간다. 세 감정이 비슷할 경우 Stable의 감정으로 나타난다.

 

결과 분석

사용자와의 상호작용이 두 가지밖에 없고 각 행동마다 하나의 감정 변수에만 영향을 주며, 감정의 표현에만 그치고 이를 컴퓨터의 행동으로 연결하지 않아 매우 단순한 반응만을 보이고 있다. 하지만 상호작용의 방법과 감정 변수와의 연결을 추가하고, 감정에 따라 컴퓨터의 행동이 영향을 받도록 설정한다면 어느정도 실제 감정과 비슷한 표현이 가능할 것이라 생각한다.

그러나 이 감정 모델은 구조가 너무 단순하고 감정의 변화가 직관적이며 단조롭다는 단점이 있다. 그러므로 보다 완벽한 감정을 시뮬레이션 하기 위해서는 다른 접근 방법이 필요할 것이다.

 

[참고자료]

    - 인공감정 AE :감정과 성격의 모방, Ian Wilson
    - 논문, Evolving Pet Robot with Emotional Model, Naoyuki Kubota 외
    - 논문, 감정에 대한 인공지능 모델의 연구, 권기덕

 

[1]