
문득, 연구실에서 모델을 돌리다보니 생각이 났다. GPU가 90도를 넘고 파워가 부족해서 PC에서 씩씩 거리는 소리가 날 정도이다. 무든 드는 생각은 아날로그 연산이 더 빠르지 않을까 라는 생각이 들었다. 연구실에서도 컴퓨터를 살때 GPU를 필수적으로 구매를 한다. GPU 특성상 크고 무겁고 전력 소모도 크다. 과연 이게 괜찮을까 라는 생각이 든다.
그런 생각을 하고 어느정도 찾아다보니 이런 영상을 발견하게 되었다.
한국어 버전도 있으니 본인이 편한대로 듣길...

우리가 인공지능 모델에서 GPU를 쓰게 된 이유는 수많은 연산을 하기 위해서이다. CPU로 작업을 하면 한 함수, 한 변수를 연산하는데 너무 오랜 시간이 걸리지만 GPU는 이를 해결한다.
근데 정말 멍청한 질문 일수도 있지만 그렇다면 왜...
이에 대한 답은 사실 단순하다. 데이터를 우리가 직접 연산할 수가 없고, 정말 빠르게 연산을 하고 답을 얻어내고 활용하기 위해서이다. 자, 컴퓨터의 기초적인 지식이 있어야 좀 이해가 될 수도 있으니 참고바란다.
그러면 정말 근본적인 질문에서 시작을 하면, 왜 디지털로 하고 있는가? 이에 대한 답은 인공 신경망이 처음 나온 1957년으로 돌아가게 된다.
너무 가는거 아니야?
라고 생각할 수도 있다. 일단 들어봐...요...

1956년, 사람의 신경망을 기반으로 만든 퍼셉트론 을 발표한 프랭크 로젠블랫 (Frank Rosenblatt) 은 원래 코넬대학의 심리학자 였다. 그는 IBM 704 컴퓨터로 그의 이론을 시험하였다. 퍼셉트론 논문을 읽어본 사람이라면 알겠지만 그의 논문에서 시작에 이런 말을 적어두었다.
- How is information about the physical world sensed or detected, by the biological system?
어떻게 생체체계에서는 실제 세상의 정보들을 인지하고 알아챌 수 있는가?
- In what from is information stored, or remembered?
어떤 형태의 정보가 저장되고 기억되는가?
- How does information contained in storage, or in memory, influence recongnition and behavior?
어떻게 정보가 저장소 혹은 메모리에 저장되고, 어떤 영향을 받고 행동하는가?
그는 우리 신체, 사람의 뇌가 하는 신경망을 컴퓨터로 구현하고 싶었다. 퍼셉트론의 구조 또한 사람의 뇌 신경망을 기반으로 하게 되었다. 퍼셉트론을 발표하고 그는 원, 사각형, 삼각형을 구별해내는 신경망을 학습 하였다. 개인적으로는 그 당시에 이런 방법을 생각한게 굉장히 흥미롭다


정말 지금 우리가 하고 있는 방법을 근거로 하고 있다. 무슨 말인가 하면, 각 Pixel을 Feature로 받아 이를 각각의 뉴런, 노드로 옮긴다. 그리고 이를 거치면서 가중치를 곱하고 0과 1로 구분을 짓게 한다. 원을 1로 하고, 사각형을 0으로 한다면 원이 입력으로 들어오면 1이 나와야한다. 하지만 학습이 제대로 되지 않았다면 0이 나올 수도 있다. 이럴때에는 가중치에 잘못 출력된 만큼의 Feature를 더하고, 그리고 반대의 상황에서는 빼주고...
말로 적으니 좀 어렵다..
이와 같은 것을 반복하다보면 어느새 퍼셉트론 모델은 학습이 될 것이고 원과 직사각형을 구분 짓게 될 것이다.
지금 보기에는 굉장히 단순해보이지만 당시에는 정말 혁명적이고 어려운 기술 이었다. 다시 이 글의 근본적인 내용으로 돌아와서는 왜 우리는 컴퓨터를 통해 모델을 학습할까?
지금만 봐도 0과 1을 구분하기 위해서는 레지스터가 최소 1개 이상은 필요하다. 출력만 하는가? 아니다. 이를 연산하고 곱도 해야한다. 를 연산하기 위해서 곱을 위해서는 2개의 레지스터가 덧셈을 위해 2개의 레지스터 까지. 그렇게 20 * 20 이미지를 받는다고 하면 400개가 넘는 레지스터가 필요하다.
우리는 이제 더 이상 확실한 연산과 정확도를 보여줄 필요가 없다. 어차피 모든 것을 확률적으로 계산하고 "아마도 이것은 개 일 확률이 98% 이다." 라고 보여주는 시점에서 디지털 레지스터가 그렇게 많이 필요하진 않다. 되려 생각해보면 AIX가 설명을 할때에도 확률적인 예시로 보여주는 것 뿐이다.
GPU를 쓰는 이유도, CPU를 쓰는 이유도, 수 많은 Memory가 요구 되는 이유, 그리고 폰 노이만의 병목 현상이 얘기 되는 이유도 다 여기에 있다.
단순 행렬 곱을 위해서 너무 많은 에너지와 장비를 쓰고 있다.
요즘 나오는 GPU 를 보면 사실 학습에만 필요한 부분은 메모리와 전원 공급, 여러 레지스터들이 다 이다. 하지만 게이밍 GPU로 나오는 것이 대부분 이고 CUDA, cudnn 와 같은 학습을 위한 API를 활용하기 위해서는 엔비디아와 같은 게이밍 GPU를 구매하게 된다. 이들은 모두 전기를 굉장히 많이 소모하고 요구 되는 사양도 만만치 않다.
반대로 아날로그 컴퓨터는 그리 많은 사용을 요구 하지 않고 기계적으로 작동하기 때문에 전력도 많이 필요하지 않다. 더불어 GPU 처럼 무식하게 크게 만들필요도 없다. 단지 공정을 어떻게 하여 세밀하게 하냐가 중요하다. Video card 게이밍을 위한 기능이 필요 없다는 것이다. 행렬 곱, 덧셈, 뺄셈, 합성 곱, 내적 등 연산을 위한 기능만 제대로 발휘한다면 그 차이는 엄청날 것이다.
당장 우리는 아날로그 칩셋을 통해 학습을 할수는 없지만 나는 아날로그 컴퓨터의 시대가 꼭 올 거라고 생각한다. 환경을 생각하는 사람들과 인공지능 공학자들 간의 대립 혹은 충돌이 발생하게 되면서 언젠가는 이를 깊게 생각하게 될 것이라는 믿음이 있다.
1956년 다층 퍼셉트론을 발표한 프랭크 로젠블랫은 처음부터 모든 것을 맞게 하였다. 그는 아날로그 컴퓨터를 기반으로 하려 했으나 당시 사양과 그 만큼의 구현을 할만한 장비가 없어 IBM 704를 하였고 사실 그는 심리학자이자 아날로그 신호처리의 대가 였다.
너무 많이 앞서 갔던 것이다. 로젠 블랫이 지금의 인공지능을 보면 기뻐하면서 한편으로는 약간의 아쉬움을 느끼지 않을까 싶다.