기사 원문 보기: Understanding the limits of convolutional neural networks — one of AI’s greatest achievements
긴 겨울이 지난 뒤 인공 지능은 딥 러닝과 인공 신경망의 발전으로 놀라운 여름을 보내고 있다. 정확히는, 딥 러닝에 대한 새로운 관심은 시각 데이터를 처리하기에 특성화되어 있는 CNN(Convolutional Neural Network)의 비약적인 발전에서 생겨났다.
하지만 만약 CNN에 근본적인 결함이 있다면 어떨까? 딥 러닝의 선구자인 제프리 힌튼이 주요 인공지능 회담 중 하나인 AAAI 회담에서 이에 대해 언급하였다.
앞선 그의 연설에서도 그랬듯이, 힌턴은 인간의 시각 시스템과 비교하였을 때 무엇이 CNN을 비효율적(혹은 다르게)으로 만드는지에 대한 기술적인 세부사항을 다루었다. 뒤에 나오는 내용은 그가 연설에서 제기한 내용의 핵심이다. 하지만 이에 앞서 현재의 기술이 어떻게 발전 되어 왔는지와, CNN이 AI에서 어떻게 핵심 기술이 되었는지 살펴보자.
컴퓨터 비전의 발전
인공지능 초기 개발단계에서 부터 과학자들은 세상을 인간처럼 볼 수 있는 컴퓨터를 만들려고 했다. 그러한 노력이 컴퓨터 비전으로 알려진 연구 분야를 탄생시켰다.
컴퓨터 비전 개발의 초기에는 특별한 인공지능이 포함되었는데, 이때 모든 것이 개발자들에 의해 정의되어야 했다. 문제는 시각장치의 모든 기능이 컴퓨터 프로그래밍으로 구현할 수 있는 것이 아니라는 것이었다. 그러한 접근은 결국 한정된 결과를 내놓았다.
다른 접근 방법은 머신 러닝을 사용하는 것이었다. 이전의 방법과는 달리 머신 러닝 알고리즘은, 사례를 통해 스스로 학습할 수 있었다. 하지만 초기의 머신 러닝 알고리즘은 여전히 이미지의 특징을 잡아내기 위해서 엔지니어들의 작업을 필요로 하였다.
반면에 CNN은 자체적으로 특징을 탐지하는 메커니즘을 개발하는 end-to-end AI모델이다. 잘 학습된 CNN은 계층적 방식으로 간단한 가장자리와 모서리부터, 얼굴, 의자, 자동차, 개처럼 복잡한 특징까지 자동으로 인식한다.
CNN은 1980년대 토론토 대학 힌턴 연구소의 연구원인 레쿤에 의해 처음 소개되었다. 하지만 방대한 양의 계산과 데이터로 인하여 사용이 제한되었었다. 30년이 지난 후에야 CNN이 제 기량을 펼칠 수 있는 컴퓨팅 하드웨어와 데이터 스토리지 기술이 개발되었다.
오늘날에는 대규모 계산 클러스터, 전용 하드웨어 및 방대한 양의 데이터 덕분에 CNN은 이미지 분류와 객체 인식에 있어서 많은 유용한 응용 프로그램을 개발할 수 있었다.
사물인식에 대한 CNN과 인간의 차이
“CNN은 모든 것을 학습합니다. 한 부분에서 효율적이라면, 다른 부분에서도 효율적이라는 것을 학습하여 큰 성과를 얻어냅니다. 이러한 학습을 통해 CNN은 각 요소를 종합하고, 다른 위치에 있는 것들도 훌륭하게 일반화 할 수 있습니다.” 힌턴이 AAAI 연설에서 말했다. “하지만 CNN의 방식은 인간이 사물을 인식하는 방식과는 많이 다릅니다.”
컴퓨터 비전의 주요 과제중 하나는 현실의 데이터가 분산되는 것을 해결하는 것이다. 인간은 물체를 각각 다른 각도, 배경, 밝기에서 구분 할 수 있다.
인간은 사물의 일부분이 가려져있거나, 색이 이질적일 때 보고 있는 것에 대한 누락된 정보를 채우기 위해 단서와 지식을 이용할 수 있다.
그러나 동일한 방식으로 사물을 인식하는 AI를 만드는 것은 매우 어려운 것으로 밝혀졌다.
“CNN은 변형에 대처할 수 있도록 설계되었습니다.”라고 힌턴은 말했다. 즉 잘 훈련된 CNN은 이미지에서 사물의 위치에 상관없이 사물을 식별할 수 있다는 것이다. 하지만 회전이나 크기 조정으로 인한 시점 변경이 생기면 어려움을 겪게 된다.
힌턴에 따르면 이를 해결하기 위한 방법 중 하나는 4D 또는 6D 맵으로 AI를 학습시킨 뒤 사물을 감지하도록 하는 것이다. “하지만 그 방법은 천문학적인 비용이 들게 됩니다.”라고 그는 덧붙였다.
현재로서 최선의 방법은 사물이 다양한 위치에 나타나있는 방대한 양의 이미지를 수집한 다음 이를 기반으로 사물을 일반화 할 수 있을 정도의 충분한 예시를 보여주고, 사용할 수 있는 정도가 될 때까지 CNN을 학습시킨다. 1400만 개 이상의 이미지를 가진 이미지넷(ImageNet)과 같은 데이터 세트가 그 목표를 이루기 위해 애쓰고 있다.
“이런 방법은 그다지 효율적이지 않습니다.” 힌턴은 말했다. “우리는 일반화를 간단하게 할 수 있는 신경망을 원합니다. 만일 무언가를 인식하도록 학습되었다면, 크기가 10배가 되던, 60도 회전을 하던 아무런 문제가 되지 않아야 합니다. 따라서 우리는 이점을 문제 삼지 않는 신경망을 만들고자 합니다.”
실제로 현재 컴퓨터 비전 시스템을 개발하는 이미지넷(ImageNet)에 결함이 있는 것으로 드러났다. 방대한 양의 데이터에도 불구하고, 가능한 사물의 모든 각도와 위치를 제공하지 못한 것이다. 사진들이 주로 이상적인 조명 조건에서 촬영되었고, 촬영된 사진의 각도가 다양하지 않았던 것이다.
이러한 방법은 지식을 쉽게 일반화 할 수 있는 인간의 비전 시스템에 적합하다. 실제로 인간은 특정 사물을 몇 가지 각도에서 보면 그 사물이 새로운 위치나 다른 시각적 조건에서 어떻게 보일지 상상할 수 있기 때문이다.
하지만 CNN은 더 구체적인 사례들을 필요로 하며, 인간의 창의성을 가지고 있지 않다.
딥 러닝 개발자들은 보통 신경망을 학습하기 전에 이미지를 뒤집거나 약간 회전시키는 ‘데이터 증강’이라는 과정을 도입함으로써 이 문제를 해결하고자 했다. 사실상 CNN은 각 이미지 마다 극히 작은 부분이 다른 이미지에 대해 학습하게 될 것이다. 이는 AI가 동일한 사물에서 생기는 변화를 일반화하는데 도움을 줄 것이다. 데이터 증강을 도입하여 AI를 더 탄탄하게 만들어 주는 것이다.
그러나 ‘데이터 증강’ 역시 뒤집어진 의자나 침대위의 구겨진 티셔츠와 같이 CNN과 다른 신경망들이 처리하지 못하는 것들을 해결하지는 못한다. 실상의 일들은 픽셀 조작으로는 처리할 수 없는 것이다.
이렇게 일반화를 할 때 생기는 문제점을 해결하기 위해 개발자들은 컴퓨터 비전에 기준을 정하고, 실제 세상의 복잡함을 더 잘 나타내는 데이터로 학습을 하는 노력을 해왔다. 그러나 당장의 AI 시스템 성능을 개선할 수는 있겠지만, 매번 달라지는 사물의 모습을 근본적으로 해결하지는 못한다. 사물을 보는 각도, 주변의 밝기, 새로운 색, 포즈 등 데이터에는 없는 것들이 항상 존재하기 때문이다. 이러한 새로운 상황들은 가장 발전된 AI조차도 곤란하게 만들 것이다.
차이점이 위험요소를 만든다.
위에서 제기한 점들을 미루어 보았을 때 CNN이 인간과 매우 다른 방식으로 사물을 인식한 것은 틀림없다. 그러나 이러한 차이점들은 일반화에 약점을 가지는 것과 사물을 학습하기 위해 더 많은 데이터들이 필요한 것에 국한되지 않는다. CNN이 내부적으로 발전하는 과정도 인간 두뇌의 신경망과 크게 다르다.
그 사실은 어떻게 알 수 있을까? “이미지에 인간은 알아보기 힘들 정도로 작은 변화를 주면, CNN은 그 이미지를 완전히 다른 것으로 인식한다. 이를 통해 CNN은 사실 인간이 이미지를 인식하는 것과는 전혀 다른 방법으로 인식하고 있다는 것으로 받아들였다.” 힌턴은 말했다.
미세하게 수정된 이미지는 AI 커뮤니티에서 “대립되는 예시(adversarial examples)”라고 불리며 연구가 활발히 진행되고 있다.
“CNN이 잘못된 것이 아니라, 그저 다른 방식으로 하고 있을 뿐이며, 일반화 하는데 에 있어서 약간의 차이를 가진다.” 힌턴은 말했다.
하지만 많은 사례들이 이러한 ‘대립되는 변화’가 치명적인 단점이 될 수 있다는 것을 보여준다. 판다를 깁슨으로 잘못 인식하는 정도는 귀엽게 봐줄 수 있다. 하지만 자율 주행 자동차에서 정지신호를 놓치거나, 악질 해커가 안면인식 보안 시스템을 우회하거나, 구글 포토가 인간을 고릴라로 분류하게 된다면 문제가 생길 것이다.
이러한 취약점에 탄력적으로 반응할 수 있는 AI 시스템을 만들기 위한 많은 연구가 진행되었다. 그러나 이 점은 오히려 인간의 시각 시스템은 수 세대에 걸쳐 진화하며 우리 주변의 세계를 인식하고 있으며, 또한 인간의 시각 시스템을 수용하기 위해 세상을 만들어 왔다는 사실을 상기시켰다. 컴퓨터 비전 시스템이 근본적으로 인간의 시각 시스템과 다른 방식으로 작동하기 때문에, 라이더와 레이더와 같은 기술적 보완이 뒷받침 되지 않는 한 컴퓨터 비전 시스템은 예측 불가능 하고 신뢰성이 떨어질 것이다.
좌표 변환과 부분-전체 관계의 중요성
힌턴이 연설에서 제기한 또 다른 문제점은 CNN이 사물의 일부분은 인식할 수 없다는 것이다. CNN은 사진을 뚜렷한 패턴으로 배열된 픽셀의 덩어리로 인식한다. CNN은 전체와 일부분의 관계에 대한 정보를 가지고 있지 않다.
사물의 구성에 대한 이해는 이상하게 생긴 찻주전자와 같이 전에 보지 못했던 것들을 이해하는데 도움을 준다.
또한 CNN인간처럼 사물을 좌표화 하지 못한다. 기본적으로 인간은 사물을 보면, 머릿속으로 사물의 특징을 분석한다. 예를 들어, 그림의 오른쪽 얼굴을 뒤집으면 왼쪽의 얼굴이 나오는 것을 볼 수 있다. 하지만 실제로, 당신은 왼쪽의 얼굴을 보기 위해 이미지를 뒤집을 필요는 없다. 머릿속에서 좌표를 조정하면 사진의 방향과는 상관없이 두 얼굴을 모두 볼 수 있을 것이다.
”당신이 어떤 사물에 어떤 좌표를 정해주던지 당신은 이에 맞춰서 인식할 수 있습니다. 그러나 CNN은 그렇지 않습니다. 당신이 CNN에 어떤 것을 입력해도, CNN에는 하나의 지각 능력밖에 없고, 그 지각능력은 좌표에는 영향을 받지 않습니다. 저는 이것이 CNN이 사람들과는 전혀 다른 방식으로 사물을 인식하고 있다는 사실에 관련이 있다고 생각합니다. “
컴퓨터 그래픽에서 영감을 얻다.
힌턴은 연설에서 컴퓨터 비전을 개선하는 편리한 방법 중 하나는 그래픽을 뒤집어서 학습하는 것이라고 언급했다. 3D 컴퓨터 그래픽 모델은 사물의 계층 구조로 구성된다. 각 개체에는 상위 개체와 비교하여 변환, 회전 및 척도를 정하는 변환 매트릭스가 있다. 각 계층에서 최상위 개체의 변환 매트릭스는 계층의 좌표와 방향을 정한다.
자동차의 3D 모델을 예로 들어보자. 물체에 있는 변환 매트릭스는 (X=0, Y=0, Z=90)를 기준으로 회전하는 좌표 (X=10, Y=10, Z=0)를 자동차의 중심으로 정한다. 자동차는 휠, 스티어링 휠, 전면유리, 변속기, 엔진 등 많은 물체로 구성되어 있는데, 각각에는 자동차를 기준으로 좌표와 방향을 정해주는 고유의 변환 매트릭스가 있다. 예를 들어 좌측 전면 바퀴의 중심이 (X=-1.5, Y=2, Z=-0.3)에 있다고 하자. 좌측 전면 바퀴의 좌표는 변환 매트릭스와 상위 객체의 좌표를 곱하여 얻을 수 있다.
이런 바퀴와 같은 사물들을 구성하는 하위 개체들도 있을 수 있다. 예를 들어 바퀴는 타이어, 림, 허브 너트로 구성되어 있는데, 이것들도 모두 각자의 변환 매트릭스를 가지고 있다.
이렇게 계층구조로 나누어 각 사물에 좌표를 부여하게 되면 그 사물의 포즈나, 방향, 관측점에 관계없이 사물을 쉽게 찾고 시각화 할 수 있게 된다. 개체를 렌더링 하는 경우 3D 사물의 변환 매트릭스와 상위 개체의 변환매트릭스가 곱해진다. 그런 다음 (다른 매트릭스의 곱)에 따라 방향을 맞춘 다음 출력 가능한 픽셀로 전환되기 전에 좌표로 변환된다.
”컴퓨터 그래픽으로 작업 중인 사람에게 ’다른 각도에서 보여줄 수 있나요? ‘ 라고 한다면 ’그러고 싶지만, 그 각도에서 학습 시킨 게 아니어서 보여줄 수가 없네요. ‘ 라고 말하지는 않을 것이다. 그들은 3D 모델로 간단하게 다른 각도에서 보여줄 것이다. 그들은 대상을 관찰하는 위치와는 전혀 관계없이 모델을 전체와 부분으로 모델화하기 때문이다. “ ”나는 이런 아름다운 방법을 사용하지 않는 것은 미친 짓이라고 생각합니다. “
힌턴은 새 프로젝트인 캡슐 네트워크에서 이에 도전한다. 캡슐 네트워크에서는 고유의 규칙이 필요하겠지만, 기본적인 구조는 이미지를 가져와서, 그 이미지의 사물을 부분화 하고, 각각 좌표화 시켜준 다음 모듈형 구조를 만드는 것이다.
캡슐 네트워크는 2017년 공개된 이후 아직 여러 차례 반복 작업을 거치고 있다. 하지만 만약 힌턴과 그의 동료들이 성공한다면, 우리는 인간의 시야를 컴퓨터에 반영하는 것에 한걸음 가까워 질 것이다.
유익한 정보 감사합니다. 잘 읽었습니다.