ADVERTISEMENT

야 ~ 알파고, 거기 백돌 두면 방정식값 틀리잖아 그럼 안 돼

중앙선데이

입력

업데이트

지면보기

586호 28면

[알고보면 쉬운 과학 원리] 인공신경망 

인공지능(AI)에는 다양한 기술이 존재한다. 일반인들에게는 인공지능 자체가 하나의 기술처럼 보일지 모른다. 그러나 이를 전공하는 사람들에게는 인공지능은 인간의 뇌를 모방하고자 하는 방법들의 집합체일 뿐이다. 그 속에는 매우 다양한 기법과 접근법이 있고, 이것들의 용도와 이용법은 차이가 많기 때문이다.

AI는 사람 뇌 흉내내기의 집합체 #바둑 두기, 수식으로 데이터 생성 #연립방정식서 가중치 찾아 학습 #알파고 수읽기 바탕은 단순 계산

10여 개 AI 기법 중 인공신경망 널리 쓰여

인공지능을 실현하기 위한 기법에는 인공신경망, 딥러닝, 퍼지이론, 유전자알고리즘, 서포트벡터머신 등이 있다. 이러한 기법들은 컴퓨터가 인간의 뇌와 유사하게 작동하도록 하는 동일한 목표를 가지고 있다. 그러나 문제의 특성과 데이터의 종류에 따라서 적합한 기법을 골라서 사용한다.

10여 개의 인공지능 기법 중에서 가장 널리 알려진 것이 인공신경망이다. 구글의 알파고도 이것을 이용하여 개발되었다.

간단한 바둑의 예를 보면서 일파고가 어떻게 동작하는지 알아보자.

[그래픽=박춘환 기자 park.choonhwan@joongang.co.kr]

[그래픽=박춘환 기자 park.choonhwan@joongang.co.kr]

<그림1>의 바둑판을 보자, 흑돌이 바둑판의 한쪽 귀에 3개 놓여 있다. 이러한 상황에서 백은 어디에 놓아야 할까? 예를 들어서 그림의 백돌처럼 우측에 놓아야 한다. 바둑 초보도 알 수 있는 기본 정석이다. 이러한 정석을 그림에서 점선으로 표시했다. 점선의 오른쪽 부분에 놓아야 하고, 왼쪽에 놓으면 안 된다. 이런 것을 컴퓨터가 이해하도록 하기 위해서는 수학으로 표현해야 한다.

컴퓨터가 이해하려면 수학으로 표현해야

그림처럼 좌표 (x1,x2)를 만든다. <그림1>에는 흑돌 3개를 좌표 (0,0), (1,0), (0,1)로 표현하고, 백돌의 위치는 (1,1)로 나타낸다. 백돌을 놓을 수 있는 지역을 표시하기 위하여, 변수 t를 도입한다. 우측지역을 t > 0라 표시하고, 좌측지역을 t < 0으로 표시한다.

바둑의 정석을 수식으로 표현하여, 학습 데이터를 만든다. 즉, 4개의 조건이 붙은 데이터이다.

(0,0)이면 t < 0

(1,0)이면 t < 0

(0,1)이면 t < 0

(1,1)이면 t > 0

여기서 좌표 (0,0)은 t 값을 음수가 되게 한다는 뜻을 나타내고, (1,1)은 t 값이 양수가 되게 한다는 뜻이다.

바둑을 배울 수 있는 인공신경망을 만들어 보자. 망의 구조는 연구자의 경험과 지식에 의하여 결정한다. 필자는 <그림2>와 같이 인공신경망을 만들었다. 3개의 입력노드(1, x1, x2)와 1개의 출력노드(t)를 만들었다. 첫 번째 입력노드의 값은 항상 1로 하자. 그리고 둘째, 셋째 노드에는 좌표값 (x1, x2)이 들어간다. 그리고 가중치 (w1, w2, w3)은 입력과 출력 사이의 연결강도를 나타낸다.

입력노드는 입력 값과 가중치를 곱하여, 출력 노드(t)에 넘겨 준다. 즉, 입력(1, x1, x2)과 가중치(w1, w2, w3)를 곱해서 출력 t가 된다.

1·w1 + x1·w2 + x2·w3 = t

결국 여기서 학습이라는 것은 학습 데이터의 조건을 만족시키는 가중치(미지수)의 값을 구하는 것이다.

이제 학습 데이터를 준비해 보자. 앞에서 준비한 데이터 “(0,0)이면 t < 0”을 앞의 수식에 대입하면 아래와 같이 된다.

1·w1 + 0·w2 + 0·w3 < 0

마찬가지 방법으로 “(1,0)이면 t < 0”을 대입하면, 다음을 얻는다.

1·w1 + 1·w2 + 0·w3 < 0

이렇게 하면 결국 아래와 같이 4개의 수식으로 종합할 수 있다.

1·w1 + 0·w2 + 0·w3 < 0

1·w1 + 1·w2 + 0·w3 < 0

1·w1 + 0·w2 + 1·w3 < 0

1·w1 + 1·w2 + 1·w3 > 0

여기에는 3개의 미지수(w1, w2, w3)가 있고, 4개의 수식이 있다. 우리가 중학교 때 배운 연립방정식과 비슷하다. 그런데 미지수는 3개인데, 수식이 4개이다. 미지수와 수식의 개수가 다르면 연립방정식을 풀 수 없다(이것이 가물가물하면 중학생 딸에게 물어보라.) 또한 수식들은 부등호가 들어 있는 조건식이다. 이럴 때 미지수를 구하는 방법이 인공신경망 학습법이다.

데이터 조건 만족시키는 가중치 값 찾아

4개의 조건식을 만족시키는 미지수(w1, w2, w3)을 여러 가지로 시도해 본다. 여기에는 많은 시행착오가 따른다. 그래서 인공신경망 학습에는 컴퓨터 시간이 많이 소요된다. 하지만 우리 문제는 간단하기 때문에, 몇 차례의 시행착오 끝에 미지수를 구할 수 있었다. <그림 3> 참조.

w1=-3, w2=+2, w3=+2

앞에서 학습된 신경망을 수식으로 표현하면 다음과 같이 된다.

1·w1 + x1·w2 + x2·w3 = 1·(-3) + x1·(+2) + x2·(+2) = t

이제 학습된 인공신경망을 이용하여, <그림 4>와 같이 예제를 풀어 보자. 좌표 (2,0)을 인공신경망에 대입해 본다.

1·(-3) + 2·(+2) + 0·(+2) = 1

결과가 t=+1로 양수가 나왔다. 즉, 이 점에는 백을 놔도 좋다는 뜻이다. 그러면 이제 (1,-1)에 대하여 적용해 보자.

1·(-3) + 1·(+2) + (-1)·(+2) = -3

t=-3이 된다. 음수다. 여기는 놓지 말라는 뜻이다. 우리가 알고 있는 바둑 지식과 일치한다.

이제 인공신경망이 어떻게 학습되고, 어떻게 답을 주는지 알았다. 알파고의 인공신경망도 사이즈의 차이가 있지만, 기본적인 작동 원리는 이와 동일하다. 알고 보니 매우 단순한 계산으로 작동한다. 이제 나도 인공지능 원리를 아는 사람이 됐다.

이광형 KAIST 바이오뇌공학과 겸 문술미래전략대학원 교수
인공지능과 퍼지이론, 바이오정보, 미래예측 전문가다. 사단법인미래학회장과 국회미래연구원이사를 맡고 있다.

ADVERTISEMENT
ADVERTISEMENT