오늘은 컴퓨터 비전에 관해서 이야기해 볼까 해요. 영화를 보면 기계가 아군을 인식하고 적군만 골라서 공격을 하는 모습 보신 적이 있으실 겁니다. 이것이 가능한 것이 컴퓨터 비전입니다. 또는 자율주행 자동차에서 가장 중요한 기능 중 하나가 컴퓨터 비전이죠. 요즘 궁금한 물건이 있으면 사진을 찍어서 확인하는 것도 가능하지요? 이것이 가능한 것도 컴퓨터 비전입니다. 그럼 어떻게 이렇게 구별을 해낼까요? 컴퓨터가 똑똑해서 그럴까요? 아닙니다. 컴퓨터는 일을 잘할 뿐이지 똑똑하지는 않습니다. 가르쳐준 것 이상으로는 알지 못하기 때문이죠. 그럼 어떤 메커니즘으로 컴퓨터가 눈을 가지게 되었는지 알아보겠습니다.



시각으로서 기능을 하기 위해서는 우선 물체를 인식할 줄 알아야 하고 전체적인 영역구별이 가능해야 합니다. 뭐 예를 들어 도로와 인도 같은 곳을 구별해낼 줄 알아야 합니다. 그리고 영상이 들어오면 이 영상을 묘사 즉, 해석할 줄 알아야 합니다. 그리고 또한 가능해야 하는 것이 영상은 2D지만 3D로 구조화가 가능해야 합니다. 우리가 사진을 보더라도 2D지만 멀고 가까운 것이 머릿속에서 그려지는 것처럼 말이죠.

이렇게 모든 것이 가능하기 위해서는 이른바 학습이 필요합니다. 이 모든 것을 가르쳐 주어야 컴퓨터가 시행할 수 있을 것입니다. 그러면 어떻게 가르칠까요? 학교에서처럼 가르칠 수 있을까요? 아닙니다. 학습이라는 거창한 단어를 사용했을 뿐이지 학습다운 학습이라 할 수 없습니다. 따라서 컴퓨터의 학습은 딥모델과 빅데이터로 이루어집니다. 딥모델은 교육방법이라고 보시면 되고 빅데이터는 책이라고 생각하시면 됩니다.

빅데이터는 광범위한 대량의 사진, 영상들이며 여기에 각각의 물체에 대한 정보가 태깅되어 있는 정보를 사용합니다. 그러니깐 사과를 가르치기 위해서는 사과 사진에 사과라고 태깅되어 있는 수많은 사진을 사용하는 것입니다.

그렇다면 딥모델은 무엇일까요?
우선 처음부터 생각하면 이미지를 입력받았다고 생각해봅시다. 이 입력받은 이미지를 미세하게 쪼개어서 숫자를 부여한다고 생각해봅니다. 예를 들어 3×3크기의 C라는 이미지가 들어왔고 1, 0, -1로 표현이 가능하다고 가정합니다. 그러면 C는 
처럼 표현이 가능합니다. 그럼 이 C라는 행렬에 어떠한 값을 곱하였을 때만 기준값보다 크게 나오도록 설정을 한다면 다른 입력값들과 구분을 지을 수 있습니다. 쉽게 말하면 C만 통과되는 층을 만드는 것입니다. 이런 식으로 구별해냅니다. 그럼 C만 걸러내는 필터를 어떻게 만들까요? 3×3에서 1, 0, -1이 모두 가능하니깐 각 자리마다 가능한 수 3가지 총 9개 자리수 이므로 39 이 됩니다. 이미지의 경우 훨씬 크니까 경우의 수는 훨씬 많겠죠. 모두 다 해볼 필요는 없지만 필터링이 가능하다고 생각되는 범위 안에서의 행렬 곱을 정해주기 위해 지속적으로 수를 바꾸며 확인할 것입니다. 그리고 만약 그 값을 찾게 되면 컴퓨터에 이것을 구별하는 메커니즘으로서 알려주게 되는 것입니다.
하지만 현실적으로 이러한 행렬 곱은 하나가 아니고 여러 개입니다. 하나로만 필터링을 완벽히 해내기는 어려워 그렇습니다. 그렇기에 여러 개를 사용하는데 이를 hidden layer라고 합니다.
그래서 단순하게 말하면 컴퓨터는 입력값에 hidden layer에 해당하는 여러 행렬 곱을 곱하여 원하는 출력값을 얻도록 학습을 하는 것입니다. 즉, 컴퓨터 입장에서는 수의 배열만 외우고 있는 것이지요.

컴퓨터의 물체 인식 능력은 앞으로 안 쓰이는 분야가 없을 것입니다. 각종 산업현장, 생활 속, 의료분야, 연구 분야 등 모든 분야에서 사람의 역할을 충족시킬 것입니다. 하지만 컴퓨터가 확인한 인식능력을 완전히 믿을 수 있을까요? 현재 1000개 정도의 물체를 인식할 수 있는 상태인데 데이터가 부족한 표본의 경우는 물체 인식을 하지 못합니다. 예를 들어 흑인의 사진이 부족하여 빅데이터가 구별하는 능력이 떨어진다고 합니다. 그래서 옛날에 구글 자동태깅이 흑인여성분을 고릴라로 태깅한 적이 있다고 합니다. 또한 인간이 학습자료를 주고 답을 주는 형태인 수동적인 학습방법으로는 인간을 뛰어넘지는 못할 것이라는 것이 연구자들의 견해입니다. 이러한 점만 봐도 컴퓨터가 인간의 모든 능력을 다하기에는 부족한 점이 많다고 생각합니다. 그렇기 때문에 보조적인 역할을 컴퓨터가 하며 최종결정은 인간이 하는 시대가 결론적으로 오지 않을까 생각합니다. 하지만 컴퓨터가 스스로 학습이 가능하고 답을 낼 수 있다면 그 때는 어떻게 될지 모르겠군요.
그리고 누군가 악의를 가지고 컴퓨터에게 빅데이터로 나쁜정보만 태깅하여 학습을 시킨다면 나쁜 AI가 생길 가능성도 있지 않을까 생각해봅니다. 그런데 일일이 나쁜정보를 태깅하려면 빅데이터를 새로 다 만들어야 하는데 이런짓을 할까요?ㅎㅎ

(https://www.youtube.com/watch?v=VOC3huqHrss)


+ Recent posts