본문 바로가기

콘텐츠/강승우의 머신러닝 이야기

[강승우의 머신러닝 이야기] 머신러닝이 배우는 것

[강승우의 머신러닝 이야기] 머신러닝이 배우는 것

강승우 위데이터랩 AI 연구소장

이세돌과의 대국에서 승리한 알파고는 반복해서 바둑을 두면서 승리의 방법을 배웠다. 머신러닝의 방법으로 인공지능의 기억 속에 바둑을 두는 방법을 새겨 넣었다. 그런데, 인공지능은 무엇을 배우는 것일까? 우리가 머리 속으로 바둑의 다음 수를 내다보는 방법을 인공지능은 어떻게 찾는 것일까? 인공지능의 기억 속에 어떻게 승리의 방법이 기록되는 것일까?

머신러닝이 배우는 것에 대해서 얘기할 때, 데이터에서 ‘패턴을 배운다’ 혹은 ‘규칙을 배운다’ 라는 추상적인 표현을 쓰기도 한다. 틀렸다고 할 수는 없지만 이는 머신이 배우는 것에 대한 구체적인 내용을 얘기하고 있지는 않다. 구체적인 내용을 이해하지 못하면 이를 응용하기 어렵다. 예를 들어 기존에 훈련된 머신러닝 모델을 재사용하는 ‘전이학습(Transfer Learning)’을 사용하기 위해서는 머신이 무엇을 배우고, 어떻게 기록하지에 대한 이해가 필요하다. 이 글에서는 머신러닝에서 무엇을 배우는 지에 대해 구체적인 예들 들어 이야기 해보겠다.

사람이 경험에서 일을 배우는 것처럼 머신도 데이터라는 경험에서 주어진 일을 잘 하는 방법을 배울 수 있다. 이렇게 머신을 가르치는 기술이 머신러닝(machine learning) 이다. 그렇다면, 머신러닝 기술을 통해 기계가 배우게 되는 것은 무엇일까?

이에 대한 설명을 위해서 가장 오래된 머신러닝 기술의 하나인 선형회귀(Linear Regression)의 예에서 얘기를 시작하겠다.

일반적으로 머신러닝은 데이터의 모양을 살펴보고 해당 데이터에 맞는 모델(Mode)을 선택하고, 그 모델에 데이터를 주입하여 훈련을 시킵니다. 그 훈련 과정이 머신이 배우는(learning) 과정이다.

먼저 아래 그림의 데이터를 살펴보자?

그림에서 y 값은 x1 값에 비례해서 커지고 있다. 즉, y는 x1과 선형적(linear) 관계를 가집니다. 이와 같은 선형적 관계를 잘 표현하는 모델은 선형회귀(Linear Regression)이다. 선형회귀는 다음과 같은 수식으로 표현할 수 있다.

y = a * x + b (중간의 ‘*’ 는 곱하기를 의미한다)

중학교에서 배운 수학적 지식을 돌이켜 생각해보면, ‘a’는 기울기, ‘b’는 y 절편에 해당함을 알 수 있다. 위의 그림의 데이터를 살펴보면 a 와 b의 값은 얼마가 되면 주어진 데이터가 보여주는 x1 과 y의 관계를 잘 설명할 수 있을까?

그림을 잘 살펴보면, x1이 0  근처에서 y는 2에 가까우므로 상수값 b는 2가 적당하가. 그리고, x1이 0에서 1로 1만큼 커질 때, y 값은 3만큼 커지므로 기울기(a)는 3이 적당한 값임을 알 수 있다. 즉, 기울기가 3, 상수값이 2이면 주어진 데이터와의 차이가 최소화되는 직선이 만들어진다. 이렇게 만들어진 직선으로 주어지는 x1 값에 대해서 가장 가능성 있는 y 값을 예측할 수 있다.

이와 같이 주어진 모델이 주어진 데이터에 잘 맞도록 기울기와 y절편 같은 파리미터를 찾아내는 과정이 머신러닝에서 훈련 과정이고, 결국 훈련을 통해 배우는 것은 데이터에 최적화된 모델의 파라미터이다. 그런데, 데이터의 분포는 완벽한 하나의 직선으로 보이지는 않다. 일반적으로 현실의 데이터는 단순화된 머신러닝 모델이 설명하기 어려운 다양한 변수가 있기 때문이다. 머신러닝에서는 주어진 데이터의 분포를 가장 가깝게 설명할 수 있는 모델을 만든다.

위의 그림에서는 주어진 점들의 중간을 관통하는 직선을 구하는 것이 머신러닝의 목표이다. 즉, 머신은 데이터를 통해 직선의 기울기 a과 상수 b와 같은 파라미터(parameter - 매개변수)를 배우게 된다.

머신러닝을 통해서 배우게 되는 매개변수의 종류와 개수는 사용하는 모델에 따라 큰 차이가 있다.

최근 유명세를 타는 신경망(Neural Network)으로 구성된 딥러닝에서도 머신이 배우는 것은 파라미터이다. 아래 그림은 신경망의 기본 단위인 뉴론(neuron – 신경세포)의 수학적 모형이다.

‘f’로 표현된 활성화 함수(Activation Function)을 빼면 앞서 살펴본 선형회귀 모델과 비슷한다. 출력값 y는 두개의 입력 x1, x2에 가중치 w1, w2를 곱한 값과 편향 b의 합이 활성화함수를 통과하면서 결정된다. 머신러닝 훈련 과정에서 주어진 입력(x1, x2)에 대해 가장 가까운 출력(y)이 나올 수 있게 만들어주는 w1, w2 그리고 b를 결정된다. 즉, 머신은 주어진 값들의 상관관계를 결정하는 파라미터(parameter)를 배운다.

최근 개발되는 빅모델은 매우 많은 뉴론으로 구성되어 있으며, 배워야할 파라미터가 매우 많다. 예를 들어 지난 4월 구글이 공개한 만능 AI, PaLM(Pathways Language Model)은 5400억 개의 파라미터를 갖고 있다. PaLM은 이처럼 많은 파라미터를 훈련을 통해 배웠다. 최적의 파라미터를 배우기 위해서는 많은 데이터와 긴 시간 동안의 계산이 필요하다.

많은 계산을 통해 최적화된 머신러닝 모델의 파라미터는 디스크에 저장해 두었다가, 전체를 혹은일부를 재활용할 수 있다. 이와 같이 머신이 배운 것을 저장해두고 재사용하는 것을 사림이 지식을 전수하는 것에 비유하여 ‘전이학습(Transfer Learning)’이라고 부른다.

다음 회에서는 머신이 지식을 전수하는 방법인 ‘전이학습(Transefer Learning)’에 대해서 알아보겠다.

 

필자 강승우 위데이터랩 인공지능연구소장 겸 부사장은 펜타 컴퓨터를 거쳐 BEA, Oracle에서 최고 기술 아키텍트로서 기업의 IT 시스템 문제가 있는 곳의 해결사 역할을 해왔다. 글로벌에 통하는 한국 소프트웨어 개발에 대한 열정으로 S전자 AWS 이벤트 로그 분석을 통한 이상징후 탐지, R사의 건축물 균열 탐지 등의 머신러닝 프로젝트를 진행했다. 현재는 딥러닝을 이용한 소프트웨어 취약점 탐지 자동화 연구와 머신러닝과 딥러닝강의를 진행하고 있으며, 비즈니스화에도 노력을 기울이고 있다. 최근 저서로 '머신러닝 배웠으니 활용해볼까요?'가 있다.

(이 칼럼은 GTT KOREA의 편집 방향과 다를 수 있습니다.)