한국인의 무의식 - 5
머신러닝(machine learning)은 컴퓨터에 명시적으로 프로그래밍을 하지 않고 학습을 할 수 있는 능력을 부여하는 컴퓨터 과학의 하위 분야입니다. 머신 러닝의 과정은 사람이 실제 학습을 하는 과정, 특히 언어 또는 절차 기억(procedural memory)의 신경회로 형성과정과 매우 유사하며, 절차기억은 무의식의 작동 기제와 유사합니다.
도표에서 위의 그림은 일반적인 프로그램을 의미합니다. 예를 들어 2X + 3 = Y라는 수식을 프로그래밍한 후 X의 값을 input으로 넣으면 Y의 값이 산출됩니다. X 값에 1을 넣으면 Y 값으로 5가 산출되고, X값에 2를 넣으면 Y 값이 7이 산출됩니다.
머신 러닝은 이와는 다르게 input과 output을 컴퓨터에게 제시하여 수식을 컴퓨터가 스스로 만들어내도록 하는 방법입니다. 예를 들어 (1,5) (2, 8) (3, 11) 등 (X, Y)에 해당하는 일련의 숫자 세트를 입력하면 aX + b = Y라는 수식에서 X로부터 Y 값을 산출할 수 있는 a=3, Y=2라는 수식을 스스로 만들어냅니다.
이러한 머신 러닝이 초기 연구에 사용된 분야는 숫자 판독이었습니다. 우편물에 손으로 쓴 숫자를 일일이 타이핑하여 컴퓨터에 입력하는 작업은 많은 노동력이 필요한 일입니다. 숫자를 스캔하였을 때 컴퓨터가 자동으로 인식하여 전산에 입력할 수 있으면 간편하겠지만, 아래와 같이 사람마다 글씨체가 다르기 때문에 손으로 쓴 숫자를 구별하는 프로그램을 만드는 것은 어렵습니다.
머신러닝에서는 각 숫자를 스캔한 그림을 input으로 컴퓨터에 제공하고 사람이 직접 입력한 숫자를 output으로 제공하였습니다. 그리하여 수많은 그림과 결과값을 입력받은 컴퓨터가 스스로 손글씨를 분석하여 0-9의 숫자를 분류해낼 수 있는 수식을 만들어내게 하였습니다.
이후 머신러닝 기술은 꾸준히 발전하여, 안면 인식, 스팸 분류, 신문기사 카테고리 분류 등 다양한 분야에 응용되고 있습니다. 머신러닝 중 수식의 숫자를 늘린 것을 딥러닝(Deep learning)이라고 하는데, 이를 머신 러닝에서는 층(layer)이라고 표현을 하며 이를 도식화하면 아래와 같습니다. 인풋과 아웃풋 사이의 수식을 컴퓨터에 제공하지 않았기 때문에 Hidden layer라고 표현합니다.
딥 러닝은 다음과 같이 Hidden layer의 숫자가 1보다 큰 경우입니다. 연산을 한 번만 거치는 것이 아닌 여러 차례 거친 후 답을 도출해 내는 것입니다. 수식을 여러 번 거치기 때문에 이를 deep neural network라고 하며 hidden layer의 수가 많을수록 정교한 수식을 만들어 낼 수 있습니다. 이는 우리 뇌세포 사이의 시냅스 연결망과 비슷한 구조를 가지고 있습니다.
이제 어린아이가 언어를 배워가는 과정을 생각해봅시다. 아이에게는 시각, 청각, 촉각 등으로 인지할 수 있는 다양한 input이 주어집니다. 예를 들어, 2살인 조카에게 제가 '상어 보러 가자'라는 말을 한 후 노트북으로 아기 상어를 보여주었습니다. 몇 차례 그러한 행동이 반복되자 조카는 유투브가 보고 싶을 때 '상어' '상어'라고 저에게 말을 하였습니다. 즉 '상어'와 유투브 간의 연결고리가 생긴 것입니다. 그런데 시간이 지나자 아이는 '아기 상어'가 아닌 화면 측면에 뜨는 다른 영상들을 보고 싶어했습니다. 그 영상들은 '아기 상어' 영상이 아님에도 아이는 저에게 '유투브 영상을 보고 싶다'는 의미로 '상어'라는 말을 통용적으로 사용합니다. 아이의 머릿속에 '상어'라는 표현과 '유투브 영상 시청'이라는 결과 사이의 hidden layer, 즉 신경회로가 형성된 것입니다.
현재 아이는 짧은 문장으로 의사 표현을 할 수 있고 뽀로로, 불도저, 경찰차 등 다른 영상의 제목을 알고 있음에도 유투브 영상을 제게 보여달라고 할 때는 '상어 봐'라는 말을 여전히 통용적으로 사용합니다. 아이는 보고 싶은 영상의 제목을 말로 표현할 수 있음에도 '외삼촌과 함께 노트북으로 유투브 영상 보러 가기'라는 행위 자체에 대해서는 여전히 '상어 봐'라는 말이 신경회로로 연결되어 있는 것입니다.
이렇듯 한번 형성된 신경회로는 새로운 자극에 의한 변화가 생길 때까지 쉽게 바뀌지 않습니다. 이것이 우리가 성인이 된 후 새로운 언어를 원어민처럼 배우기 힘든 이유입니다. 외부 자극에 대한 모국어 회로가 형성된 것은 X->Y로의 신경회로들이 이미 형성된 것입니다. 그런데 X라는 자극에 대해 Y가 아닌 Z의 신경회로망을 새로 만들려고 하면 Y로 연결된 신경회로의 간섭현상이 반복적으로 일어나 X->Z로 가는 회로 형성을 방해합니다. 그리하여 성인이 된 후 외국어 공부에는 Y의 간섭을 차츰 끊어내면서 X->Z로의 회로 연결을 유도할 수 있는 방법을 사용하는 것이 필요합니다.
이미 형성된 신경회로는 습관, 사고방식, 무의식 등으로 부를 수 있습니다. 이미 공고화된 신경회로는 효율적으로 작동하기 위해 의식적 인지를 거치지 않은 채 감정과 행동으로 반응을 합니다. 자전거 타기나 운전하기와 같이 우리가 인지하지 않은 채 자연스럽게 행동으로 옮길 수 있는 절차 기억과 유사합니다.
앞서 <정신적 자유를 위한 여정>이란 글에서 밝혔듯이 우리는 수많은 환경의 자극으로부터 형성해온 고유의 '사고방식' 안에서 감정을 느끼고 행동을 합니다. '사람은 고쳐 쓰는 게 아니다'라는 말처럼 이를 바꾸는 것은 이미 형성된 회로를 끊어내고 새로운 연결을 해야 하기 때문에 상당히 어렵고 힘든 일입니다. 복싱을 하던 사람이 킥복싱을 하게 되면 펀치가 날아올 때 고개를 숙여 피하려 하다가 순식간에 킥을 맞아 무엇이 문제인지 조차 인지하지 못할 수 있습니다.
하지만 우리 스스로가 잘못 연결된 신경 회로의 문제를 인지하고, 새로운 환경 자극과 결과 속에서 신경회로를 만드는 작업을 꾸준히 해나간다면 이를 교정하는 것이 불가능한 것은 아닙니다. 코치가 킥복싱 룰에 맞지 않는 습관을 분석하여 펀치가 날아올 때 커버를 올리는 행동이 반사적인 습관으로 대체될 때까지 연습을 시킨다면, 고개를 숙이는 습관은 차츰 사라질 것입니다. 이와 같이 우리의 무의식을 교정하는데도 트레이닝이 필요하며 저는 이를 마인드 트레이닝이라고 부릅니다. 마인드 트레이닝을 하기 위해서는 먼저 자신을 힘들게 하는 부적응적인 사고방식이 문제가 있음을 인지하고 인정할 수 있어야 합니다. 그 후에는 더 건강하고 적응적인 사고방식으로 대체할 수 있도록 input과 output을 반복적으로 학습시켜야 합니다.