내가 처음으로 AI란 단어를 들었던 것은 1993년이다.
한국에서 전자공학과 학부를 졸업하긴 했는데, 당시엔 AI나 인공지능이란 과목도 없었고, 수업 중에 그 것을 언급하신 교수님도 없었다.
지금처럼 인터넷이나 다양한 채널을 통해 새로운 기술이나 트랜드를 배울 기회도 없었다. 학부를 졸업후 군대를 마치고 난 미국 텍사스에 있는 주립대로 유학을 갔다. 전기 엔지니어E링 석사과정으로 입학했다. 특별히 전공분야에 관심이 가는 영역은 없었다.
당시엔 삼성반도체도 지금처럼 엄청난 위상도 아니었고 시작단계여서 반도체에 큰 관심도 없었다. 스마트폰은 커녕 핸드폰도 없었다. 단순히 통신모듈이나 컴퓨터 설계, VLSI 반도체 설계, 전자소재 정도 외엔 전공분야도 세분화되어 있지 않았다.
막연히 유학을 가서 뭔가 전공분야에 박사를 받는다면, 대학교수를 하거나 연구소에 연구원이 되는 것이 미래에 대한 생각이었다.
유학 첫 학기 때 과목을 선택하기 위해 수강신청 과목 리스트를 보다가 아주 생소한 단어를 접하게 되었다. 인공신경망(neural network)이다. 다른 과목들은 제목을 보면 대충 어떤 내용들인지, 그리고 어떤 전공분야에 관련된 것인지 알겠는데, 인공신경망이란 단어는 신기했다.
신경으로 네트워크를 만드나? 지금 생각해보면 참으로 순진하고 무식한 한 유학생이 혼자 방에 앉아 누구에게 특별히 물어볼 선배도 없고 친구도 없는 상황에서 상상으로 과목을 들여다보다가, 호기심으로 수강신청을 하게 되었다. 이 호기심으로 선택한 과목이 나의 마지막 커리어 진로를 인공지능, AI로 향하게 만드는 계기가 되었다.
뉴럴 네트워크라는 것은 사람의 뇌신경, 즉 뉴런이라고 불리는 뇌세포와 뇌신경이 서로 얽히고 설켜 있는 복잡한 구조를 네트워크 형태로 모방해, 컴퓨터에서 사람이 학습하고 판단하는 것을 알고리즘으로 구현하는 것을 말한다.
사람의 뇌에는 약 860억개 정도의 뇌세포가 있다고 한다. 이 뇌세포들끼리 가지를 쳐서 연결해주는 구조를 시냅스라고 부르는데 시냅스 연결은 약 100조개가 있다고 한다.
즉 860억 개의 뇌세포 사이를 100조 개 가량의 시냅스가 실타래처럼 얽혀 있는 것이다. 그 100조개의 시냅스에 우리가 보고 듣고 느끼고, 경험하고, 배우고 기억하는 모든 것들이 저장되어 있다.
어떤 형태로 되어 있는지를 완벽하게 해석할 수 없지만, 수많은 신경전달물질의 화학작용과 또 전기작용 등이 반응하여 기억을 하고 연산하고 답을 내고 반응하고 움직이게 하는 모든 것들을 만들어 낸다.
이 시냅스가 더 많고 복잡하고 효율적으로 반응할수록 소위 지능이 높고 똑똑한 사람이 되고, 반응에 문제가 생기고 뇌세포들이 노화되거나 죽어가게 되면, 많은 지능적인 문제가 생기게 된다.
이러한 뇌신경의 구조를 컴퓨터로 옮겨 뇌세포를 노드라는 것으로 정의하고 이들 사이사이에 가중치라는 값들로 정의해서 노드들 사이 사이를 인위적으로 연결해주고 가충지를 조절하면서 마치 뇌세포와 시냅스가 학습과 기억을 이루어 내는 구조를 퍼셉트론이라고 부른다.
이 구조를 처음으로 제안한 사람은 1958년 코넬대학교의 연구원이었던 프랭크 로젯블랜이다. 그는 아주 단순한 한 개층의 노드와 가중치를 가지고 몇 가지 연산을 하고 문제를 풀 수 있는 정보를 가중치 조정을 통해 정의할 수 있다고 하여 세간의 엄청난 관심을 보였다.
1969년 MIT의 마빈 리 민스키 교수가 한 개 층의 퍼셉트론으로는 다차원 방정식의 문제를 풀기엔 너무 단순하기에 이를 여러 층으로 쌓아 놓는 다층 퍼셉트론(MLP) 구조를 제안하였다.
그러나 그 것은 이론적인 구조일 뿐 여러 층으로 쌓여 있는 퍼셉트론의 가중치들을 조정하고 학습시킬 수 있는 방법이 없었다. 그러다 드디어 그 실마리가 풀렸다. 1974년 하버드대학의 박사과정 학생이었던 폴 워보스란 사람이 오류역전파(Back Propagation of error)라는 알고리즘을 고안하였다.
이를 통해 MLP에 학습데이터를 제공하고 반복함으로써 무작위로 정해진 각 계층의의 가중치 값과 학습데이터 입력 값들을 곱한 값들의 결과와 이미 정해진 출력 결과 값과의 오류를 지속적으로 줄이기 위한 방향으로 가중치 값들의 조정을 했다.
이를 통해 인간의 학습의 방식을 모방한 인공신경망의 학습 모델이 완성이 되었다.
그림에 있는 3개층 구조의 MLP가 가장 정형적인 인공신경망의 모습이다. 내가 93년 인공신경망이라는 과목을 접하였을 때가 딱 여기까지 인공지능에 있어서 진도가 나간 상태였다.
1974년에 오차역전파(Back Propagation) 알고리즘이 제안된 이후로 다양한 복잡한 문제에 시도가 있었다. 사실 그리 큰 진전은 없었다. 하지만 나는 컴퓨터가 사람의 뇌구조를 모방해 사람이 할 수 없는 여러가지 어려운 연산문제나 학습하여야 하는 문제들을 푼다는 것에 매료돼 연구를 계속 진행해 인공신경망으로 박사학위를 취득하였다.
당시 나의 논문은 ‘이미지 처리 및 퍼지 신경망에 의한 코르크 품질 분류 시스템(Cork Quality Classification system by Image Processing and Fuzzy Neural Network)’이다. 흔히 쓰는 코르크 와인 병마개의 품질을 8개의 등급으로 나누는 작업을 사람의 손을 거치지 않고 자동화하기위한 연구를 진행했다.
사람이 와인 코르크 마개의 등급을 구분하는 모든 경우의 수들을 산정하기 위해 수많은 8개 등급 코르크 마개 이미지들을 추출하고 특성(feature)들을 뽑아냈다.
이 것을 인공신경망의 기본 구조인 MLP 프로그램에 넣고 수만번을 반복해서 학습시킴으로써 인간이 구분하는 것과 비슷하게 코르크 마개를 8등급으로 구분하는 프로그램을 만들었다.
내가 프로그램을 만들어 내고도 참으로 신기했다. 책으로 배우던 여러 이론들을 코르크 와인 병마개라는 실생활에 밀접한 아이템을 가지고 도전하였는데, 그 결과가 어느 정도 만족스럽게 나온 것이다.
나의 논문 연구를 위해 스페인의 코르크 마개 공장에서 거의 만장에 가까운 각 8개 등급의 코르크 마개 이미지 사진을 찍어서 보내주었고, 그 이미지를 여러가지 이미지 처리 단계를 거쳐 가장 최적의 특성을 정의하고 뽑아내느라 거의 2년의 시간이 걸렸다.
하지만 이론적인 논문들만 있던 그때 그나마 실생활에서 쓸 수있는 응용분야의 논문으로 인정을 받아 1996년 박사학위를 받을 수 있었다. 그러나 그 이후로도 실제적인 응용분야에 있어서 인공신경망이라는 분야에 더 이상의 진보는 없었다.
나도 박사를 받고 나서는 그다지 내 전공분야에 큰 흥미를 이어가지는 못하고 더 이상 인공신경망에 관련된 연구를 한 것이 아니라 갑자기 나의 커리어 방향을 틀고 미국계 경영전략 컨설팅 회사에 들어가면서 완전히 전혀 다른 길을 걸었다.
인공지능에 대한 역사를 설명할 때 항상 뉴럴윈터( AI의 침체기)라는 말이 나오는데 그 것이 1996년부터 2000년대 초반까지 진행되었다고 한다. 아이러니하게도 딱 내가 박사를 받은 해부터 인공지능의 침체기가 시작이 된 것이다.
그러던 중 2006년에 새로운 인공지능의 시대가 열리기 시작하였다. 그 것은 딥러닝의 아버지라고 불리는 토론토 대학의 제프리 힌트 교수가 제한된 볼츠만 머신(RBM)이라는 획기적인 비지도형 기계학습 알고리즘을 고안하면서부터 시작됐다.
이전까지는 지도학습이라는 이미 정답이 정해져 있는 학습데이터를 가지고 반복적으로 인공신경망을 학습시키는 방법이 주였다.
RBM 방식은 정답이 없는 학습데이터들을 가지고 먼저 학습을 시킨 후 그 결과를 가지고 다시 오차역전파 알고리즘으로 학습을 시키는 구조다. 이전까지의 학습을 시키기 위해 복잡한 전처리 과정을 통해 학습데이터를 만들어야 하는 번거로움을 없앤 획기적인 방식이었다.
또한 인공신경망의 구조상에 있어서도 이전과는 달라서, 여러 단의 MLP를 쌓아서 한꺼번에 학습을 시키는 방향으로 전체 신경망의 사이즈와 연산, 그리고 연결을 시키는 가중치를 대폭 늘려서 학습량과 기억을 할 수 있는 정보의 양을 늘렸다.
마치 쥐의 뇌의 사이즈 및 세포수와 비교해 인간의 뇌의 그 것이 훨씬 크고 복잡하며 지능이 높은 것과 거의 유사한 개념으로 보면 된다.
이후에 제프리 힌튼 교수의 RBM과 유사한 복잡하게 얽켜진 다층 구조의 복잡한 인공신경망 구조와 비지도형 학습 방식의 그리고 특징 추출 등의 전처리 과정이 필요 없는 소위 딥러닝이라고 불리는 다양한 알고리즘들이 봇물같이 터져 나오기 시작하였다.
합성곱 신경망(CNN), 순환 신경망(RNN), 생성적 대립 신경망(GAN)이 가장 대표적이고 많이 쓰이는 알고리즘이다.
CNN은 합성곱 신경망이라고도 불리며 가장 많이 쓰이는 딥러닝 알고리즘의 대표주자이다. 주로 이미지나 영상인식과 처리에 쓰인다. MLP 구조의 인공신경망을 여러 층인 다층 구조로 쌓아 놓고 컨볼루션 과정과 서브샘플링 과정을 진행한다.
컨볼루션 과정에서 데이터를 특징으로 추출하여 패턴을 파악하고 풀링 과정이라고도 불리는 서브샘플링 과정은 차원축소 과정으로 컨볼루션 과정을 거친 층의 사이즈를 줄여주는 방식으로 학습을 한다.
이미지 인식에 필요한 복잡한 특징 추출 과정을 생략하고 이미지 자체를 CNN 신경망에 입력하기만 하면 자동적으로 학습의 과정을 거쳐 원하는 결과들을 얻을 수 있는 것이 특징으로 딥러닝의 새시대를 열어주었다.
CNN을 통해 개와 고양이의 사진을 구분하거나 자율주행차의 카메라를 통해 주변의 사람과 자동차 등을 인식하고 피해하는 등 이미지를 인식하는 기능에 기본으로 장착되어 있다고 보면 된다. 가장 가까운 것으로는 우리의 핸드폰에 있는 얼굴인식을 통해 잠금장치를 해제기능이다.
순환 신경망(RNN) 은 시계열적으로 변하는 데이터에 대한 기억이나 인식에 쓰이는 특화된 알고리즘이다. 주로 음성이나, 많은 IOT 센서 데이터들처럼 시간 흐름에 따라 변화하는 데이터를 처리하는 데 특화된 신경망이다.
여러 개의 신경망을 순차적으로 데이터가 뉴런들이 순환 구조로 연결되어 과거 정보를 기억하는 동적 시스템으로 다양한 길이의 순차적인 데이터를 처리한다. RNN은 다른 신경망처럼 경사하강을 이용한 오류역전파 알고리즘을 사용하는데 시간이 지날수록 신호가 급변하거나 사라지는 장기적 의존성 문제가 존재하는 문제들에 쓰인다.
관련기사
- [기고]AI 플레이북 어떻게 작성할까? (하)2022.05.16
- [기고] AI 플레이북, 어떻게 작성할까? (상)2022.05.02
- [기고] AI의 시대, 앞서는 자와 뒤처지는자(하)2022.04.18
- [기고] AI의 시대, 앞서는 자와 뒤처지는자 (상)2022.04.04
RNN은 음성 인식, 언어 모델링, 번역, 이미지 주석 생성 등의 다양한 분야에서 굉장한 성공을 거두었다. 또한 좀 더 RNN의 기억을 오래 가도록 만들기 위한 알고리즘으로 LSTM (Long-Short Term Memory)가 고안되었고, RNN의 성능을 대폭 증가시켰다.
앞으로의 글에서 좀 더 다양한 딥러닝의 알고리즘들을 알아보고, 왜 갑자기 2010년 이후에 AI가 꽃을 피우게 되었는지 알아보도록 하겠다.
*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.