"딥 러닝? 우리 말로 하면 심화학습 쯤 되는 모양이지?"


전혀 관심을 두지 않았다가 최근에 다시 관심을 가질 수 밖에(?) 없는 딥 러닝은 사실, 내게 새로운 분야는 아니다. 언젠가 잠깐 언급한 '신경망 지능 국책 과제'의 일원으로 참여하여 징하게 비디오 보드를 개발했었던 경험이 바로 딥 러닝이다.


예수가 죽었다가 사흘만에 부활한 것처럼 딥 러닝은 과거의 인공신경망이라는 이름으로 인공지능과 함께 차세대 기술로 촉망받다가 폭망하고 그리고 오늘 날 딥 러닝으로 부활한 것이다.


딥 러닝이 부활하게 된 요소들은 크게 세가지로 나뉘는데 그 중 첫번째는 하드웨어의 발전이다.


펜티윰 프로세서로 대변되는 CPU가 IMB-PC 등에서 사용되는 것이라면 이미지 처리 장치, 그러니까 GPU(Graphic Processor Unit)의 고성능화가 딥러닝의 부활을 촉발했다는 것이다.


GPU의 발전에 대하여 언급한다면 과거에는 GPU를 사용하는 프로젝트를 할 때는 선정된 GPU의 데이터쉬트를 그냥 한번 훑어보고 곧바로 하드웨어 설계 그리고 소프트웨어 설계에 들어갔지만 최근의 GPU들은 그 기능을 이해하는 것만으로도  솔직히 며칠을 소비해야할 정도로 고기능화 되어 있다. 물론, GPU가 내게 어려운 이유는 오랫동안 GPU 분야의 부품들을 사용하지 않은 탓이기도 하지만 내부의 기능을 이해하는데 어려움을 겪는 이유는 바로 그래픽 처리, 즉 그래픽 연산의 심화에 있다.


두번째는 소프트웨어 알고리듬 기술의 발전이다. 요즘은 주민센터(동사무소)마다 주민등록등본 등 간단한 해정 상의 서류는 무인으로 발급하는 무인발급기가 설치되어 있는데 그 무인발급기에는 지문인식 모듈이 설치되어 있다. 그 지문인식 모듈에 오른손 엄지 손가락을 갔다 대면 지문을 인식하는데 그 지문의 주인이 발급하고자 하는 서류의 주인과 일치하는지를 판단하여 일치하면 요구한 서류를 프린트해서 출력해준다.


즉, 소프트웨어 알고리듬 중에 'recognition' 알고리듬의 발전이 딥 러닝을 부활시켰다는 것이다. 그리고 지문인식은 recognition 알고리듬 중 비교적 간단한 인식 소프트웨어이다. 과거에는 지문을 인식하는데도 하드웨어의 성능이 따라오지 못하거나 또는 알고리듬이 구현하는데 걸리는 시간 때문에 버벅거리는데(예로 ADSL 초창기에 비디오 화면을 인터넷으로 보면 버퍼링이 걸려서 화면이 끊기는 것처럼) 하드웨어의 발달과 소프트웨어 알고리듬의 발달로 인하여 이제는 얼마나 정교해지는가?의 문제만이 남았다. 


이런 recognition 기술은 예로 recognition 기술 중 'object recognition'이 있는데 비디오 화면에 찍힌 동물이 고양이냐? 강아지냐?라는 판별을 하는 정도였다면 최근에는 '어떤 고양이냐?'라는 비디오 상의 찍힌 동물이 어떤 동물인가?를 넘어 고양이의 속성까지도 분류하는 것이다.



무인발급기를 예로 들었는데 내가 서류를 발급받기 위하여는 주민등록번호 앞 여섯자리를 입력하면 된다.(뒷 일곱자리에 있는 성별을 위해 남/여를 입력했는지는 기억이 안난다) 그 후 지문인식 모듈에 내 오른손 엄지손가락을 넣어 지문을 스캔하면 잠시 후에 서류가 프린트되어 출력된다.


이 때 스캔된 지문과 서류를 요청한 사람이 동일한 사람인지를 판단하기 위하여는 빅데이터에서 검색의 결과로 알려준다. 즉, 딥 러닝이 부활하게 된 세번째 이유는 바로 이런 빅데이터의 구축과 그 빅데이터에서 원하는 정보를 검색하여 결과를 알려주는 것이다.



이런 생각을 해보자.

스캔된 내 오른손 엄지손가락 지문을 가지고 빅데이터에서 검색할 때 키워드는 (아마)내 주민등록번호 앞자리 여섯자와 내가 살고 있는 동네. 그런데 2015년 기준 우리나라의 연간 출생률은 40만명 정도. 주민센터 수는 2007년 기준 2090개

따라서, 같은 날짜에 태어나 같은 동(도시의 경우)에 사는 사람 수는 40만명 ÷ 365일 ÷ 2090개(주민센터)으로 0.5명.


즉, 확률적으로 한사람의 인적사항만이 검색이 되니 검색에 걸리는 시간은 극히 짧고 단지 빅데이터에 있는 지문과 스캔되 지문의 일치 여부만 판정하면 된다.


그런데 만일, 내가 부산으로 출장을 가서 무인발급기에서 주민등록등본 발급을 신청한다면? 이 때는 40만명을 전부 대상으로 해야 하니까 내가 거주하는 동네에서 발급받는 경우보다는 훨씬 시간이 많이 걸린다. 검색시간을 단축시키기 위한 여러가지 알고리듬이 구현되어 있겠지만 최악의 경우, 지문의 일치를 일일히 대조한 후 불일치 판정이 나고 마지막 40만번쨰 가서야 지문 일치 판정이 나서 주민등록등본 서류를 발급 받을 것이다.


물론, 지문의 일치 여부를 확인하는 것은 그다지 어렵지 않아서 대규모의 지문 데이터에서 특정 지문이 일치하는 것을 판별하는 시간은 그렇게 오래 걸리지는 않는다. 무인발급기의 표시에 의하면 최대 3분이 걸린다라고 했으니까.


그런데 만일, 주민등록번호 앞자리 여섯자리를 입력하지 않고 무인발급기에 설치된 카메라에 서류 발급을 원하는 사람의 얼굴을 찍은 다음에 얼굴을 대조하여 얼굴이 일치하는 경우 서류를 발급하는 경우에는?


현재의 기술로는, 내가 알기에는, 내가 거주지역에서 주민등록등본을 발급받는 경우에 걸리는 시간보다 부산에 출장을 가서 발급받는 시간이 훨씬 오래 걸린다. 더우기 지문 인식의 경우에는 지문에 특장점 몇군데만 판단 일치하는지의 여부를 확인한 후에 일치하느 경우 좀더 디테일한 부분에서 일치 여부를 판단하는데 얼굴로 동일인물인지를 확인하는 경우에는 더 정교한 인식기술과 검색방법이 요구된다.


왜냐하면, 특히 홍체인식기술에서 해결하지 못하는 것처럼(5년전 기준) 빅데이터에 저장될 때 기준으로 살이 더 쪘거나 빠졌거나 또는 전날 음주나 폭식을 해서 얼굴이 부었거나 또는 사진 촬영각도에 따라 얼굴 이미지가 다른데 이 것을 전부 인식하여 일치 여부를 확인해야 하기 때문이다.



내가 딥 러닝에서 할 부분은 바로 하드웨어 구현. 그런데 사람이 '말타면 부리고 싶다'라고 슬슬..... 소프트웨어 쪽에 눈길이 간다. 그런데 아마 못할 것이다.


그 이유는 바로 내가 문예게에 몇 번 언급한 '공간인지능력의 부족' 때문이다. 무슨 소리인가 하면, 딥러닝을 다른 말로 표현하면 이렇게 되기 때문이다.


"1차원 그러니까 라인으로 구성된 비디오 이미지를 2차원 그러니까 넓이와 높이로 재구성하여 무엇인가를 하게 하는 것이 딥러닝의 출발점"


여러분이 쓰고 있는 스마트폰의 카메라는 1차원으로 데이터를 만들고 전달한다. 그리고 스마트폰의 CPU는 그 1차원의 데이터를 받아서 1차원으로 LCD에 표시한다. 단지 LCD는 구성을 2차원으로 보이게 만들었을 뿐이다.


즉, 내가 문예게에 '인류 최고의 발명은 바로 CR(carriage return)과 LF(Line Feed)라고 했는데, 비디오 데이터는 CR과 LF 없는 동일한 라인에 써진 아주 긴 텍스트 문장과 같고 그런 비디오 이미지에 가상적으로 CR과 LF를 넣어 2차원으로 형상화 시킨 것이라는 이야기이다. 그리고 나의 공간인지능력 부적은 CR과 LF를 넣어야 할 자리를 잘 찾지 못한다는 것이다.

나는 길치인데 다른 말로 표현하면, 비디오 데이터에서 헤맬 것이라는 점이다.

백이숙제는 "以暴易暴"를 남겼고 한그루는 "以"를 남기고 간다.