지난달까지 휴머노이드 로봇의 팔, 다리, 몸통, 머리 등 기계 구조를 만든 뒤 전력까지 공급했습니다. 이제는 로보트 재권V가 눈을 뜨고 세상을 바라볼 때가 됐습니다. 그래서 이번 호에서는 로보트 재권V에게 세상이 어떻게 생겼는지 가르쳐 주려고 합니다.
항상 그래왔듯 로봇을 설계하기 전에 우리 인간은 어떤지 먼저 살펴보겠습니다. 인간은 어떻게 세상의 모든 사물을 알아보는 걸까요. 인간은 눈을 뜨자마자 엄마, 아빠 또는 자신을 보호해 주고 있는 사람과 눈을 맞추기 시작합니다. 그리고 곧 가족을 알아봅니다. 말을 배우고 나서는 쉴 새 없이 주변 사람들에게 물어봅니다. 누가 강요하는 것도 아닌데 말이죠. 눈앞에 보이는 사물들이 무엇인지 궁금해 하고 그 사물의 이름을 알려고 합니다.
이미지 데이터 많을수록 유리
어쩌면 인류는 살아남기 위해서 또는 더 잘 살기 위해서 사물을 빠르게 구분하도록 진화한 게 아닐까요. 사냥을 나갔을 때 저기 멀리서 달려오는 것이 호랑이인지 토끼인지 빠르게 알아본 사람은 그렇지 못한 사람보다 생존할 확률이 더 높았을 것 같습니다. 호랑이라면 가장 먼저 도망간 사람이 살았을 확률이 높을 테고, 토끼였다면 가장 먼저 쫓아가서 토끼를 잡은 사람이 굶어 죽지 않았을 겁니다.
길에서 ‘휙~’ 하고 고양이가 재빠르게 옆을 지나갈 때 여러분은 어떤 반응을 보이시나요. ‘어! 고양이다!’라며 옆을 지나가는 생물체가 고양이라는 사실을 순식간에 인지하는 말을 한 경우가 있었을 겁니다. ‘우와, 귀여워~’라며 고양이의 모습에 대한 느낌을 말한 경우도 있었을 겁니다. 그 짧은 순간에 어떻게 귀여운 모습까지 알아봤는지 정말 신기할 따름입니다.
그런데 그렇게 순식간에 눈앞에 지나간 생물체가 고양이인지 강아지인지 인간의 눈은 어떻게 아는 걸까요. 우리가 수백 종의 고양이와 수백 종의 강아지를 다 외우고 사는 것도 아닌데 말입니다.
반면 컴퓨터의 인공지능(AI)은 2012년 이전에는 고양이와 강아지를 구분하는 임무를 정말 힘들어했습니다. 컴퓨터는 논리적인 추론(계산)을 통해 결론을 내리는 구조를 취하고 있습니다. 그래서 고양이와 강아지의 형태를 논리적으로 구분하는 것은 불가능해 보였습니다. 둘 다 털이 많고, 네 다리로 걸으며, 꼬리를 흔들고, 귀도 쫑긋합니다.
이것을 논리적인 코딩으로 구분하기는 어렵습니다. ‘털이 많은가?’라는 첫 질문에서부터 고양이와 강아지 모두 ‘그렇다’는 대답을 할 수밖에 없기 때문입니다. 그런데 사람은 어떻게 그렇게 둘을 잘 구분하는 것일까요.
사람은 경험과 학습을 통해 사물을 익혀 나갑니다. 그리고 비슷하게 생긴 사물들을 하나로 묶어서 일반화하기도 합니다. 그럼 컴퓨터도 논리적으로 판단하는 것을 버리고 사람처럼 학습을 통해 사물을 알아보게 하면 어떨까요.
이런 생각을 한 사람들이 오래전부터 신경망(Neural Network)이라는 것을 연구했습니다. 인간의 뇌 속에 있는 수많은 뉴런과 시냅스가 반복적으로 연결돼 이뤄지는 신경의 구조를 컴퓨터의 코드로 구현한 신경망 프로그램을 만들려고 노력했습니다. 그리고 인간이 학습하듯이 컴퓨터의 신경망 프로그램도 학습을 통해서 사물을 알아볼 수 있게 하려고 했습니다.
컴퓨터 신경망 프로그램에 고양이와 강아지 사진을 한 장 씩 입력해 주고 신경망 프로그램에게 퀴즈를 풀 듯 사진의 동물이 고양이인지 강아지인지 맞추게 합니다. 그때 답이 맞으면 맞게 만든 과정을 강화시키고, 틀리면 틀리게 만든 과정을 약화시킵니다.
이런 식으로 고양이와 강아지 사진을 대량으로 입력해 퀴즈를 풀게 하면 신경망 프로그램의 정확도를 높일 수 있습니다. 정확하게는 신경망 프로그램을 담당하는 변수들이 이 과정을 통해 계속 업데이트되는 것이라고 할 수 있습니다.
결국 고양이와 강아지 사진이 많이 입력돼 학습을 열심히 한 신경망 프로그램은 나중에 어떤 사진을 보더라도 사진 속 동물이 고양이인지 강아지인지 잘 알아볼 수 있습니다. 이를 바로 ‘딥러닝(Deep Learning)’이라고 부릅니다.
데이터는 석유와 비슷
현재 딥러닝을 비롯한 학습 기반의 각종 인공지능 프로그램들은 눈부시게 발전하고 있습니다. 우리나라처럼 딥러닝이라는 컴퓨터 관련 전문용어가 대중적으로 잘 알려진 나라도 지구상에 또 없을 겁니다. 2016년 서울에서 이세돌 9단이 인공지능 ‘알파고’와의 대국에서 패하면서 딥러닝이라는 용어가 많이 알려졌죠.
알파고와 같은 인공지능이 사물을 잘 알아보게 만들기 위해서 가장 먼저 필요한 일은 인공지능 프로그램에게 열심히 사진 데이터를 입력해 주는 것입니다.
비록 아직까지는 인공지능 프로그램의 학습 능력이 인간의 유추 능력에는 못 미치는 수준이어서 사진 몇 장만 보고 어떤 사물인지 구분해 내지는 못합니다. 대신 컴퓨터는 아주 성실하기 때문에 수천, 수만, 수십만 장의 사진을 입력해도 묵묵히 열심히 학습합니다. 사람은 같은 일을 여러 번 반복하면 지쳐서 포기하는데 말이죠.
아무튼 우리도 로보트 재권V에게 가능한 많은 사진을 가져다줘야겠습니다. 일단 저의 사진을 가능한 많이 입력해 주려고 합니다. 그래야 자기를 만들어준 사람이 저인지 알아보고 제가 시키는 일을 잘 해내지 않을까요.
또 어떤 사진부터 보여줘야 할지 고민이 됩니다. 이 세상에 존재하는 모든 사물을 잘 알아봐야 할 텐데, 어디서부터 시작해야 할까요. 사실 이 부분이 가장 큰 문제입니다. 로봇에게 학습을 시켜줘야 하는데, 로봇에게 학습을 시키기에 필요한 데이터가 너무 부족합니다. 그래서 최근 인공지능 연구는 인공지능에게 필요한 데이터를 확보하는 것이 가장 중요한 일 중 하나로 꼽힙니다.
최근에는 데이터를 석유에 비유하기도 합니다. 석유는 그 자체로는 별 값어치가 없지만 석유를 잘 정제해서 휘발유와 경유를 만들고 플라스틱 등 각종 석유화학물질을 만들면 산업을 가동시키는 원동력이 됩니다.
마찬가지로 소셜네트워크서비스(SNS)에 떠돌아다니는 사진을 비롯한 동영상은 그 자체로는 큰 의미가 없을 수 있지만, 이 데이터들을 가공해서 인공지능 프로그램에 학습시키면 데이터로 입력된 사물을 알아볼 수 있게 될 겁니다. 그리고 이런 일이 가능해진다면 인공지능은 우리가 지금까지 상상하지 못했던 새로운 일을 하게 될 겁니다.
결론적으로 로보트 재권V가 세상을 인식한 뒤 이 물건이 뭔지, 주인이 누구인지 알아보기 위해서는 우리가 열심히 사진 데이터를 모아서 입력해줘야 합니다. 혼자 하기보다는 여럿이 데이터를 공유하면 더 좋을 것 같습니다. 독자 여러분도 힘을 보태 주세요. 그리고 로보트 재권V가 열심히 공부할 수 있도록 만들어 주려고 합니다. 이제 우리 모두가 로보트 재권V를 똑똑하게 만드는 선생님이니까요. To be Continued.