본문 바로가기

소프트웨어 & 잡다

[머신러닝] 한손으로 큐브 퍼즐을 푸는 로봇

 루빅 큐브를 푸는 로봇 손. 출처: BBC

오늘 정말 놀라운 뉴스를 접했다. Open AI 팀이 한손으로 큐브 퍼즐을 풀수 있는 로봇 손에에 대한 연구 결과를 발표 한 것이다. 사실 컴퓨터 공학을 전공했고, 15년째 소프트웨어 엔지니어로 일하고 있지만 머신러닝쪽 개발은 해본 적도 없고 지식도 별로 없기에 머신러닝과 로봇 기술이 얼마나 발전하고 있는지 상당히 둔감한 편이다. 그런데 오늘 뉴스를 보고 정말 놀랐다.

큐브를 푸는 로봇은 예전부터 있었고, 이런 로봇들은 0.5초도 안되는 시간에 풀어버린다. 큐브를 푸는 알고리즘 자체는 사실 머신러닝을 이용하지 않더라도 로직으로 충분히 가능하기 때문에, "큐브를 푸는 로봇" 이라는 것은 놀라운것이 1도 없다. 사실 예전에 있던 로봇은 말이 로봇이지 그냥 무식하게 생긴 기계다.

0.38초 만에 퍼즐을 푸는 로봇. 출처: 유튜브

 

하지만 이번에 공개된 로봇은 차원이 달랐다. 놀라움을 넘어서서 섬뜩하기까지 하다. 

첫째로, 저 로봇은 큐브가 뭔지 배운적이 없고, 목표 결과만 알고 스스로 해법을 익힌 것이다. 즉 모든 면이 같은 색이어야 한다는 "목표"는 있었지만, 그걸 위해 뭘 해야 할지는 몰랐다. 요즘 머신러닝 기술들에 비하면 뭐 그리 대단한 것 같지는 않다. 그러나 주목해야 할 것은, 솔루션에 도달하기 위해 해야 하는 동작들이다. 로봇은 손가락 하나하나와 손바닥, 손가락 옆면등을 움직여가며 퍼즐을 돌리는 방법부터 스스로 터득했다는것이다. 손의 고무 부분에 큐브가 닿는 느낌등을 모두 인지하여 큐브를 만지작 거리는것부터 배우고, 사람이 실제로 큐브를 돌리듯이 돌린다. "손" 이라는것을 어떻게 움직이는 지 등은 전혀 프로그래밍 되어 있지 않았다. 원하는 결과와 주어진 물체만을 가지고, 그 미세한 손의 동작과 큐브 퍼즐 해법을 스스로 익힌 것이다.

둘째, 로봇은 사람이 옆에서 방해해도 큐브 맞추는 일을 끝까지 진행했다는 것이다. 예를들어 큐브 옆에 아래처럼 장애물을 가져다 대도 유연하게 대처하며 큐브를 끝까지 맞췄다는 것. 심지어 손가락 두개를 묶는다거나 당긴다거나 해도 개의 치 않고 끝까지 임무를 수행 했다는 점이 대단히 놀라운 점이다. (이부분은 동료한테 들은 것인데, 뉴스나 리서치 페이퍼에서는 찾아볼 수 없었다.)

귀찮게하는 기린을 무시하며 큐브 퍼즐을 푸고 있는 로봇 손 (출처: BBC)

머신러닝과 로봇공학이 이정도 단계까지 왔는지 모르고 하찮은(?) 소프트웨어 개발이나 하고 있었다니. 뭔가 마음이 조급해지는 기분도 들면서, 머신러닝을 공부해야겠다는 생각이 강하게 들었다. 머신러닝으로 할 수 있는 것의 경계가 점점 뚜렷해지면서, 머신러닝이라는 분야는 일반적인 소프트웨어 개발에서 매우 높은 수준까지 블랙박스 화 되어 있다. 따라러 애초부터 포지션 자체가 머신러닝 연구나 머신러닝 알고리즘 개발쪽 잡을 택하지 않는 이상, 일반적인 소프트웨어 엔지니어들은 API를 이용해서 결과를 사용하는 것이 전부이게 마련이다. 양쪽 모두 다루는 기회는 거의 없는 것 같다. 조금 더 빠르게 머신러닝쪽을 공부 했더라면 어땠을까 하는 아쉬움이 남는다.

Open AI 는 연구논문을 공개했다. 궁금하신 분은 아래 링크에서 확인해 보시길.

TITLE: SOLVING RUBIK’S CUBE WITH A ROBOT HAND

https://d4mucfpksywv.cloudfront.net/papers/solving-rubiks-cube.pdf

 

재미있게 읽으셨다면 댓글과 하트 버튼으로 응원해주세요. 로그인 없이도 눌러집니다. 😀