출처(영문):

http://phys.org/news/2014-06-robot-casually-video.html





날이 갈수록 로봇은 똑똑해져가고 있습니다만, 


로봇이 전에 해본 적이 없는 명령을 수행하도록 하려면 각 단계별로 상세한 명령을 내려야만 하는 불편함이 있습니다.


'라면 끓여와'라고 명령을 내리려면, 일단 명령을 내리기 전에 라면을 어떻게 끓이는지 가르쳐주어야 하죠.


하지만 컴퓨터 프로그래머가 아닌 이상, 우리는 프로그래밍 코드가 아니라 자연어로 명령을 내립니다.



그러나 인간이 사용하는 자연어는 그 의미가 애매하며, 종종 인간은 명령을 내릴 때 상세한 부분을 빼먹는 경우가 있습니다.


일단 당신이 가정용 로봇에게 '라면을 끓여와'라고 명령하였다고 가정하여 봅시다.


문제는 당신이 로봇한테 가스렌지가 어디에 있다거나 라면을 끓이려면 물을 뎁혀야 한다고 알려주지 않았다는 점입니다.



코넬대학교의 컴퓨터과학과 Ashutosh Saxena 조교수는 인간이 자연어로 내리는 명령을 로봇이 이해할 수 있도록 하는 연구를 


진행 중입니다.


인간은 한 가지 명령을 다양한 문장으로 말하기 때문에, 로봇은 그 자연어 명령에서 누락된 정보가 무엇인지 파악하고 상황에 따라


명령을 유연하게 수행할 수 있어야 합니다.



로봇이 자연어 명령을 수행하는 원리는 다음과 같습니다.



먼저 로봇에 다음의 프로그래밍 코드를 입력합니다:


찾아(냄비), 잡아(냄비), 가져가(냄비, 수도꼭지), 채워(냄비, 물), 가져가(냄비, 가스렌지) 등등...



그 다음 로봇한테 명령을 내립니다:


"냄비에 물 채워. 가스렌지에 냄비를 올려놔. 물을 데워. 물이 끓으면 라면을 넣어"


로봇의 소프트웨어는 이 명령을 로봇만의 프로그래밍 언어로 변환합니다.



비록 상기 명령에는 '가스렌지를 켜'라는 단계가 누락되었지만, 로봇은 스스로 알아서 이 누락된 단계를 수행합니다.



연구진이 개발한 로봇에는 3D 카메라와 시각 소프트웨어가 내장되어 있어 주변 환경을 스캔하고 각 사물들을 인식할 수 있습니다.


로봇은 각 사물의 기능을 파악할 수 있는데, 예를 들면:



냄비에는 뭔가를 채울 수 있거나 도로 비울 수 있다.


가스렌지에는 뭔가를 올려놓을 수 있으며 또한 그 뭔가를 가열할 수 있다.



따라서 로봇은 먼저 냄비와 수도꼭지와 가스렌지를 인식한 다음, 


그것들이 가진 기능에 기반하여 라면을 어떻게 끓일지 계획할 수 있습니다.


만일 당신이 로봇한테 '물을 끓여'라고 명령을 내리면, 


로봇은 물을 끓이기 위해 상황에 따라 가스렌지나 전자렌지를 사용할 것입니다.


만일 당신이 냄비를 다른 장소로 옮겼다거나, 아니면 로봇을 다른 집의 부엌으로 옮겨 놓았다 해도,


로봇은 아무런 문제없이 명령을 수행할 수 있습니다.



또한 로봇은 다양한 유형의 질문을 메모리에 저장하고 있으며,


따라서 '냄비를 가스렌지로 가져가', '냄비를 가스렌지로 옮겨', '냄비를 가스렌지에 올려놔', '가스렌지로 다가가 냄비를 뎁혀' 같은


명령이 주어지면 로봇은 자신이 예전에 들은 명령과 해당 명령이 얼마나 일치하는지를 계산하여


만일 일치할 확률이 높으면 해당 명령을 예전의 명령과 동일하게 수행합니다.



또한 로봇은 마치 게임을 연상케 하는 시뮬레이션에 기반하여 명령을 어떻게 수행해야 할지 계획을 세웁니다.


물이 든 냄비를 수도꼭지로부터 가스렌지로 옮기는 행위를 시뮬레이션하여 그 자료를 로봇에게 보내면,


로봇은 그 자료를 이용하여 가스렌지와 수도꼭지가 어디에 있는지 상관없이 해당 행위를 수행할 수 있습니다.



연구진은 로봇을 테스트하기 위해, 로봇에게 '라면을 끓여올 것'과 


'아포가토(커피와 아이스크림을 섞은 이탈리아 디저트'를 만들어올 것'을 다음과 같은 형식으로 명령하였습니다:


"커피를 컵에 담아. 너가 원하는 아이스크림을 추가해(?? -_-). 마지막으로 산딸기 시럽을 넣어"



명령이 각각 다른 말로 내려졌고 주변 환경이 달랐음에도 불구하고 


로봇은 총 테스트 횟수의 64%에서 주어진 명령을 정확하게 수행하였습니다.


또한 로봇은 명령에서 누락된 몇몇 단계를 수행하는데 성공하였습니다.


이는 기존의 로봇 학습방법에 비해 2~3배 높은 정확도를 보인 셈입니다.




시뮬레이션을 통한 로봇의 학습





로봇 테스트 동영상