앞서 나온 머신러닝 사례는 수치(집값)를 예측하는 것이었다. 이를 ‘숫자 예측’이라고 부르자. 그런데 머신러닝은 숫자 예측 이외에도 쓰임새가 다양하다. 그중 하나는 ‘이다/아니다’를 가리는 ‘식별’이다. 가장 대표적인 사례들로 ‘이메일이 스팸인가/아닌가’ ‘암인가/아닌가’ ‘비가 올 것인가/아닌가’ ‘특정 시청자가 영화 〈아바타〉를 좋아할 것인가/아닌가’ 등을 이미 인공지능이 예측하고 있다. 정확도도 매우 높다.

인공지능이 머신러닝으로 ‘식별의 규칙’을 학습하는 방법 역시 ‘숫자 예측’과 큰 틀에선 다르지 않다. 나름의 예측 방정식을 설정해놓고 이에 현실 데이터를 입력한다. 이를 통해 얻은 예측치를 현실의 실젯값과 비교해서 오차를 얻는다. 이 오차를 최소화하는 방향으로 가중치를 수정해나간다. 오차를 더 줄일 수 없는 시점의 가중치가 나오면 ‘식별 모델’을 완성시킨다.

그러나 ‘숫자 예측 모델’과 ‘식별 모델’ 사이엔 굉장히 중요한 차이가 있다. 식별 모델의 관심은 ‘이다/아니다’를 알아내는 것이다. 컴퓨터는 ‘이다(참)’를 1로, ‘아니다(거짓)’를 0으로 인식한다. 그러므로 식별 규칙을 학습하는 과정에서 나오는 예측값을 0과 1 사이의 수치로 환산(활성화 함수)한 다음 실제 결과(0 혹은 1)와 비교해서 오차를 얻는다. 그다음 과정은 숫자 예측 모델과 똑같다.

예를 들어, 어떤 IT 업체에서 ‘불법 기획부동산 업체가 보낸 스팸메일이다(1)/아니다(0)’를 식별하는 인공지능을 학습시키려 한다. 기획부동산 스팸이라면 아무래도 ‘투자’와 ‘부동산’이란 용어가 들어가 있을 터이다. 이메일에 ‘투자’와 ‘부동산’이 많이 나올수록 스팸일 가능성이 크다. 그래서 ‘부동산이 나오는 횟수(x1)’와 ‘투자가 나오는 횟수(x2)’란 두 개의 특성(원인)으로 ‘스팸이다/아니다(y)’를 예측하도록 인공지능을 학습시킬 수 있다. 〈그림 1〉과 같은 구조의 머신러닝 모델을 퍼셉트론(perceptron)이라고 한다(‘편향’은 설명의 편의를 위해 제외).

간단한 사례를 들어보자. 인공지능이 첫 번째 메일을 읽었는데 부동산이 2회, 투자는 3회 나왔다. x1은 2, x2는 3인 셈이다. 인공지능은 부동산 언급 횟수의 가중치(w1)와 투자 언급 횟수의 가중치(w2)도 대충 1과 4로 각각 설정한다. 이렇게 설정한 w1과 w2를 각각 x1과 x2에 곱한 다음 더한다. 예측값은 14(1×2+4×3)다. IT 업체 측은 예측값이 10 미만이면 0~0.7, 10~13이면 0.8~0.9, 14 이상이면 1로 변환시키는 연산장치(활성화 함수)를 설정해놓았다. 예측값인 14는 1로 변환된다. 스팸으로 예측된다는 이야기다. 그런데 이 이메일의 실젯값은 0으로 스팸이 아니다. ‘영끌’한 젊은이가 친구와 향후 경제 전망에 대해 토론하는 가운데 자신의 ‘부동산’ ‘투자’ 경험을 토로한 내용이기 때문에 해당 단어들이 다수 나온 것이다. 예측값(1)과 실젯값(0) 사이에 큰 오차(1-0=1)가 발생했기 때문에 인공지능은 w2를 4에서 예컨대 2로 수정한다. 이런 과정을 오차가 최소화되는 시점까지 반복해서 예측 모델을 완성한다. 두 가지 특성으로 하나의 결과를 식별하는 이 같은 모델이 성공적으로 작동한 결과를 그림으로 나타내면 〈그림 2〉와 같다.

여기서 동그라미는 스팸이고 별은 스팸이 아니다. 식별을 예측하는 중간의 빨간 선은 ‘스팸’과 ‘스팸 아님’을 정확히 가르고 있다. 이제 어떤 메일이 스팸인지 아닌지 알려면 위의 좌표에 넣어 빨간 선의 위(스팸)에 있는지, 아래(스팸 아님)에 있는지만 보면 된다. 까다로운 듯 보여도 결국 식별 역시 선긋기의 문제다.

복잡한 세상에 맞춰 진화하는 퍼셉트론

이처럼 컴퓨터가 여러 특성을 ‘입력’받아 하나의 예측값(이다/아니다)을 ‘출력’하면서 가중치 수정을 통해 식별 규칙을 만들어나갈(학습할) 수 있다는 발상은 이미 1940~1950년대에 나왔다. 이른바 퍼셉트론이다. 당시에도 ‘잘 작동한다’는 신뢰가 크지는 않았던 것 같다. 1960년대 말에는, 마빈 민스키 당시 MIT 교수가 퍼셉트론으론 컴퓨터가 식별 능력을 제대로 학습할 수 없다는 점을 입증해버렸다. 컴퓨터가 수행하는 단순한 연산(좌표평면에 직선 하나를 긋는 것에 비견된다)만으론 풀 수 없는 논리 문제가 있다는 것이었다.

세상 자체가 그리 단순한 곳이 아니기 때문일 터이다. 사람들 역시 예컨대 선과 악의 특성 자체는 잘 알고 있지만 타인의 구체적 행위를 선악으로 식별(분류)할 땐 헷갈리는 경우가 제법 많지 않은가. 이 기사의 사례를 연장하자면, 부동산과 투자가 언급되는 횟수가 모두 굉장히 많아도 실제로는 ‘스팸 아님’일 수 있다. 예를 들어 수신자가 거래하는 유명 증권사에서 보낸 보고서 메일이라면 〈그림 3〉에서처럼 ‘부동산’과 ‘투자’가 모두 많이 포함(오른쪽 윗부분)되어 있을 것이다. 스팸은 당연히 아니다.

〈그림 3〉에서 직선 하나로 ‘스팸이다(○)/아니다(☆)’를 가를 수 있을까? 절대 불가능하다. 이처럼 퍼셉트론으론 식별도 제대로 할 수 없다는 점이 입증되면서, 인공지능에 대한 투자와 연구자가 격감하는, 이른바 ‘인공지능의 겨울’이 1970년대 초에 시작되었다. 그런데 〈그림 3〉에 선을 그어 분류하는 것은 정말 불가능할까? 기존 관념을 탈피한 〈그림 4〉처럼 차라리 스팸(○)이 밀집한 부분의 양측에 직선을 두 개 그어 분류해버리면 어떨까?

실제로 좌표평면에 선을 두 개 긋는 것에 비견되는 방식으로 머신러닝을 수행하면 식별(분류) 문제를 해결할 수 있다는 것이 입증된다. 퍼셉트론을 여러 층으로 쌓는 해법(다층 퍼셉트론)이었다. 이전의 퍼셉트론은 입력층이 출력층으로 바로 이어졌다. 〈그림 1〉의 퍼셉트론을 보면, 입력 수치들에 각각의 가중치를 곱한 다음 더하는 간단한 연산을 한 차례 수행한 뒤 출력층으로 내보낸다. 해당 그림에서 연산이 수행되는 동그라미를 노드라고 부른다.

세상의 복잡성을 감안할 때 이렇게 간단한 연산으로 식별(분류) 문제를 푸는 것은 애당초 불가능했을지도 모른다. 그래서 입력층과 출력층 사이에 새로운 연산의 층들을 삽입하는 시도로 이어졌다(〈그림 5〉). 물리적 장치를 반도체 회로 따위에 넣은 것이 아니라 컴퓨터 코딩을 통해 일련의 연산들을 추가하고 서로 연결시켰다는 의미다. 추가된 연산 단위를 은닉층(hidden layer)이라고 부른다.

퍼셉트론의 입력과 출력 사이에 다른 퍼셉트론이 들어가면서 노드가 하나에서 3개로, 가중치는 2개에서 6개로 늘었다. 가중치에 대한 수정도 그만큼 증가했다. 은닉층에도 가중치가 있기 때문이다. 〈그림 5〉에서는 은닉층이 한 층에 불과하지만 여러 층을 겹겹이 배치할 수도 있다. 이 그림은 설명의 편의를 위해 머신러닝의 연산 구조를 단순화한 것에 불과하다. 미국의 테크 자이언트들이 보유한 LLM(초거대 언어 모델)의 가중치(매개변수) 수가 최소 수십억 개에서 1700억여 개에 달한다니 말이다. 복잡한 세상의 복잡한 문제들을 풀기 위해 복잡한 계산 방식을 도입했는데, 이는 최근까지의 성과를 볼 때 꽤 성공적인 듯하다.

이런 다층 퍼셉트론에 더해 2010년대 들어서는 가중치 수정을 획기적으로 개선하는 알고리즘 등 새로운 아이디어들이 실현됐다. 컴퓨터의 연산능력도 비약적으로 커졌다. 인공지능은 그동안 감히 도전하기 어려웠던 이미지와 음성은 물론 텍스트까지 성공적으로 학습할 수 있게 되었다. 그 최근의 성과가 바로 LLM과 이에 기반한 챗지피티 등의 챗봇들이다.

기자명 이종태 기자 다른기사 보기 peeker@sisain.co.kr
저작권자 © 시사IN 무단전재 및 재배포 금지
이 기사를 공유합니다
관련 기사