SF / 과학 포럼
SF 작품의 가능성은 어떻게 펼쳐질 수 있을까요? 그리고 어떤 상상의 이야기가 가능할까요?
SF에 대한 가벼운 흥미거리에서부터 새로운 창작을 위한 아이디어에 이르기까지...
여기는 과학 소식이나 정보를 소개하고, SF 속의 아이디어나 이론에 대한 의견을 나누며, 상상의 꿈을 키워나가는 곳입니다.
( 이 게시판은 최근에 의견이나 덧글이 추가된 순서대로 정렬됩니다. )
출처(영문):
http://phys.org/news/2014-06-robot-casually-video.html
날이 갈수록 로봇은 똑똑해져가고 있습니다만,
로봇이 전에 해본 적이 없는 명령을 수행하도록 하려면 각 단계별로 상세한 명령을 내려야만 하는 불편함이 있습니다.
'라면 끓여와'라고 명령을 내리려면, 일단 명령을 내리기 전에 라면을 어떻게 끓이는지 가르쳐주어야 하죠.
하지만 컴퓨터 프로그래머가 아닌 이상, 우리는 프로그래밍 코드가 아니라 자연어로 명령을 내립니다.
그러나 인간이 사용하는 자연어는 그 의미가 애매하며, 종종 인간은 명령을 내릴 때 상세한 부분을 빼먹는 경우가 있습니다.
일단 당신이 가정용 로봇에게 '라면을 끓여와'라고 명령하였다고 가정하여 봅시다.
문제는 당신이 로봇한테 가스렌지가 어디에 있다거나 라면을 끓이려면 물을 뎁혀야 한다고 알려주지 않았다는 점입니다.
코넬대학교의 컴퓨터과학과 Ashutosh Saxena 조교수는 인간이 자연어로 내리는 명령을 로봇이 이해할 수 있도록 하는 연구를
진행 중입니다.
인간은 한 가지 명령을 다양한 문장으로 말하기 때문에, 로봇은 그 자연어 명령에서 누락된 정보가 무엇인지 파악하고 상황에 따라
명령을 유연하게 수행할 수 있어야 합니다.
로봇이 자연어 명령을 수행하는 원리는 다음과 같습니다.
먼저 로봇에 다음의 프로그래밍 코드를 입력합니다:
찾아(냄비), 잡아(냄비), 가져가(냄비, 수도꼭지), 채워(냄비, 물), 가져가(냄비, 가스렌지) 등등...
그 다음 로봇한테 명령을 내립니다:
"냄비에 물 채워. 가스렌지에 냄비를 올려놔. 물을 데워. 물이 끓으면 라면을 넣어"
로봇의 소프트웨어는 이 명령을 로봇만의 프로그래밍 언어로 변환합니다.
비록 상기 명령에는 '가스렌지를 켜'라는 단계가 누락되었지만, 로봇은 스스로 알아서 이 누락된 단계를 수행합니다.
연구진이 개발한 로봇에는 3D 카메라와 시각 소프트웨어가 내장되어 있어 주변 환경을 스캔하고 각 사물들을 인식할 수 있습니다.
로봇은 각 사물의 기능을 파악할 수 있는데, 예를 들면:
냄비에는 뭔가를 채울 수 있거나 도로 비울 수 있다.
가스렌지에는 뭔가를 올려놓을 수 있으며 또한 그 뭔가를 가열할 수 있다.
따라서 로봇은 먼저 냄비와 수도꼭지와 가스렌지를 인식한 다음,
그것들이 가진 기능에 기반하여 라면을 어떻게 끓일지 계획할 수 있습니다.
만일 당신이 로봇한테 '물을 끓여'라고 명령을 내리면,
로봇은 물을 끓이기 위해 상황에 따라 가스렌지나 전자렌지를 사용할 것입니다.
만일 당신이 냄비를 다른 장소로 옮겼다거나, 아니면 로봇을 다른 집의 부엌으로 옮겨 놓았다 해도,
로봇은 아무런 문제없이 명령을 수행할 수 있습니다.
또한 로봇은 다양한 유형의 질문을 메모리에 저장하고 있으며,
따라서 '냄비를 가스렌지로 가져가', '냄비를 가스렌지로 옮겨', '냄비를 가스렌지에 올려놔', '가스렌지로 다가가 냄비를 뎁혀' 같은
명령이 주어지면 로봇은 자신이 예전에 들은 명령과 해당 명령이 얼마나 일치하는지를 계산하여
만일 일치할 확률이 높으면 해당 명령을 예전의 명령과 동일하게 수행합니다.
또한 로봇은 마치 게임을 연상케 하는 시뮬레이션에 기반하여 명령을 어떻게 수행해야 할지 계획을 세웁니다.
물이 든 냄비를 수도꼭지로부터 가스렌지로 옮기는 행위를 시뮬레이션하여 그 자료를 로봇에게 보내면,
로봇은 그 자료를 이용하여 가스렌지와 수도꼭지가 어디에 있는지 상관없이 해당 행위를 수행할 수 있습니다.
연구진은 로봇을 테스트하기 위해, 로봇에게 '라면을 끓여올 것'과
'아포가토(커피와 아이스크림을 섞은 이탈리아 디저트'를 만들어올 것'을 다음과 같은 형식으로 명령하였습니다:
"커피를 컵에 담아. 너가 원하는 아이스크림을 추가해(?? -_-). 마지막으로 산딸기 시럽을 넣어"
명령이 각각 다른 말로 내려졌고 주변 환경이 달랐음에도 불구하고
로봇은 총 테스트 횟수의 64%에서 주어진 명령을 정확하게 수행하였습니다.
또한 로봇은 명령에서 누락된 몇몇 단계를 수행하는데 성공하였습니다.
이는 기존의 로봇 학습방법에 비해 2~3배 높은 정확도를 보인 셈입니다.
시뮬레이션을 통한 로봇의 학습
로봇 테스트 동영상
사실 자연어의 불명확함은 꼭 기계와의 의사소통에 있어서만 문제되는 것은 아니죠.
무의식적인 목적어의 생략이 때때로 업무 등에 있어서 돌이키기 어려운 비극(야근과 철야로 이어지는)을 자주 낳는다는 것을 생각하면, 후일에는 '당신의 컴퓨터와 소통하는 올바른 커뮤니케이션 기술'과 같은 책들이 서점가에 돌풍을 일으키는 상상을 해봅니다(웃음)
물론, 생략을 유추하는 과정 등이 인간 청자에 비해서 명확한 알고리즘으로 이루어지는 만큼
소통기술도 좀 더 명확하게 마무리 될 수 있을 것 같지만 말이죠.