[인공지능 4주차-응용과학] 2. 머신러닝을 구현하는 관점(1)
컴퓨터는 프로그래머가 입력한 알고리즘에 따라 움직이기 때문에 알고리즘의 내용을 넘어서서 스스로 문제를 정의하고 풀지는 못합니다. 그래서 컴퓨터가 발명되고 오랜 기간 동안은 사람이 명확히 정의할 수 있는 문제를 빠르게 푸는 용도로만 사용되었죠. 하지만 최근에는 음성 인식이나 인공지능 챗봇 등 과거에는 단일 알고리즘으로 풀기 불가능했던 문제들을 컴퓨터 스스로 학습하여 푸는 기술들이 등장하였습니다. 알고리즘에 따라 움직인다는 컴퓨터의 근본적인 구조는 변하지 않았는데, 어떻게 이런 일이 가능하게 된 것일까요?
간단한 문제에 한해서는 사람 이 직접 문제를 푸는 모든 방법의 가짓수를 생각해서 알고리즘을 만들 수도 있습니다. 하지만 이전 글에서 이야기한 것처럼 사진에서 고양이의 수를 세는 것과 같은 복잡한 문제는 사람이 모든 경우를 고려하여 알고리즘을 만들기가 매우 어렵습니다. 그래서 컴퓨터 과학자들은 생각을 바꿔서 문제를 직접 푸는 알고리즘이 아닌 문제를 푸는 방법을 찾는 알고리즘을 고안해냈습니다. 컴퓨터에게 문제를 푸는 방법을 스스로 학습하게 하는거죠. 이것을 머신러닝이라고 부릅니다.
현재까지 많은 컴퓨터 과학자들이 머신러닝을 구현하기 위해 다양한 알고리즘을 개발해왔습니다. 최근에 자주 보이는 ‘딥러닝’이라는 단어도 머신러닝을 구현한 알고리즘의 한 종류입니다. 이제부터 머신러닝을 구현하는 다양한 관점을 다섯 가지 분류로 나눠서 소개하겠습니다.
먼저 기호주의입니다. 기호주의는 인간의 지식을 기호화하고 그 기호 간의 관계를 일일이 컴퓨터에 입력하여 학습시키면 컴퓨터도 인간과 비슷한 입력을 얻었을 때 출력 또한 비슷하게 낼 것이라는 생각에서 출발합니다. 기호주의에서 기호 간의 관계를 찾는 방법은 여러 가지가 있지만 여기서는 대표적인 두 가지 방법을 소개하겠습니다.
한 가지 방법은 역연역법을 이용하는 것입니다. 역연역법이란 연역법의 관계를 거꾸로 이용하여 새로운 관계를 찾아내는 것을 말합니다. 예를 들어 연역법에서 A. 소크라테스는 사람이다. B. 모든 사람은 언젠가 죽는다라는 두 가지 관계로 C. 소크라테스는 언젠가 죽는다라는 새로운 관계를 찾아내었다면, 역연역법에서는 아래와 같이 새로운 관계를 찾아냅니다.
——
A1. 철수는 사람이다
B1. 철수는 언젠가 죽는다
A2. 영희는 사람이다
B2. 영희는 언젠가 죽는다
A3. 덕배는 사람이다
B3. 덕배는 언젠가 죽는다
…
…
…
=> C. 사람은 언젠가 죽는다
——
연역법에서는 논리적으로 새로운 관계를 찾아내는 반면에, 역연역법은 수많은 사례를 일반화하여 새로운 관계를 유추해냅니다. 이러한 방법은 논리적으로 완벽한 관계를 찾기 어려운 문제를 풀 때 특히 유리합니다. 예를 들어 새로운 약을 개발한다고 생각해 봅시다. 이 약에 어떤 부작용이 있을지 논리적으로 밝혀 내기 위해서는 약의 모든 성분을 이해하고 그 관계를 알아야 할 것입니다. 그렇지만 역연역법을 이용하면 여러 번의 임상실험 데이터만을 가지고 일반화하여 약의 부작용 여부를 예측할 수 있게 되는 것이죠. 역연역법을 이용한 방법은 가지고 있는 지식을 이용하여 새로운 지식을 유추해내는 뛰어난 방법입니다. 하지만 이런 방식은 계산량이 많아 대용량의 데이터를 처리하기에는 어렵습니다. 이런 점 때문에 기호주의자가 선택한 다른 알고리즘은 바로 의사결정 트리를 이용한 귀납법입니다. 의사결정 트리는 마치 스무고개 놀이를 하는 것처럼 여러 번의 질문 마다하나의 특성에 대한 값을 묻고 대답에 따라 다른 분류를 합니다. 질문을 어떻게 구성하고 가지를 어떻게 나눌지만 잘 고려하면 결정 트리에 따라 입력을 분류하는 일은 계산량이 많지 않으므로 역연역법의 단점을 보완하게 되는 것이죠. 이러한 결정트리를 잘 만들기 위해서는 분류를 가장 잘 하는 특성들을 뽑아내는 것이 중요합니다. 결정 트리는 분류 속도도 빠르고 정확도도 좋아서 심리학부터 시작해 체스의 승률을 예측하는 것, 그리고 카메라로 찍은 영상에서 사람의 동작을 분류하는 것까지 다양한 분야에서 사용되었습니다.
의사결정 트리의 또 다른 장점은 어떤 문제에 대해 컴퓨터가 판단을 내렸을 때 왜 그런 결정을 내렸는지 결정 트리를 보면 쉽게 알 수 있다는 것입니다. 이런 점 때문에 의사결정 트리를 이용한 머신러닝은 옳은 부분과 틀린 부분을 쉽게 알 수 있어서 오류를 수정하기 좋고 결과를 신뢰할 수 있습니다.
하지만 이러한 기호 주의의 알고리즘에는 심각한 단점이 있습니다. 현실의 실제 개념은 규칙의 모음으로 간결하게 정의되는 일이 거의 없다는 사실입니다. 이미지에서 고양이를 분류하는 규칙의 모음은 생각하기 너무 어려운 것처럼 말이죠.
연결주의는 우리 두뇌가 어떻게 생각하는지를 모방하여 컴퓨터를 학습시키는 방법입니다. 기호주의에서는 기호와 그 기호가 나타내는 개념 사이에 1대 1의 대응이 있었던 반면에, 연결주의에서는 마치 두뇌에서 여러 신경세포를 통해 정보를 다루듯 하나의 개념이 여러 곳에 흩어져서 표현됩니다. 컴퓨터에서 연결주의의 알고리즘을 구현한 첫 공식 모형은 바로 퍼셉트론입니다.
하나의 퍼셉트론은 신경세포와 유사하게 흥분성(양의 가중치) 연결과 억제성(음의 가중치) 연결을 입력받아 입력들의 합이 한계값을 넘으면 1, 그렇지 않으면 0으로 표현합니다. 예를 들어 두 개의 입력 x와 y가 있는 퍼셉트론을 생각해봅시다. 아래와 같이 빨간색과 파란색의 점들이 입력으로 주어지고 그 점들을 색깔에 따라 분류하고 싶다면 우리는 그 사이에 직선을 그을 수 있을 것입니다. 이 직선은 x, y에 대해 어떤 가중치를 가지는 하나의 퍼셉트론으로 표현할 수 있고 우리는 그 퍼셉트론에 x, y를 입력하면 빨간색인지 파란색인지를 출력값으로 알 수 있을 것입니다.
하지만 퍼셉트론 알고리즘은 두 집단을 나누는 수많은 직선 중에 어떤 직선을 골라야 할지에 대해서는 알지 못합니다. 또한 더 다양한 입력을 처리할 수 있는 더 좋은 직선을 만들기 위해 어떻게 수정해야 할지도 알지 못합니다. 이러한 퍼셉트론의 가장 큰 결점은 과연 무엇일까요? 바로 퍼셉트론은 XOR(배타적 논리합)을 표현하지 못한다는 점입니다.
이러한 퍼셉트론의 한계로 연결주의는 한동안 암흑기를 겪게 됩니다. 이를 해결하기 위해 연결주의자들은 퍼셉트론을 여러 층으로 쌓게 됩니다. 입력에 대해 1차원적으로 계산하여 출력하던 단층 퍼셉트론에 비해 다층 퍼셉트론은 더 복잡한 모양의 선을 그릴 수 있게 되었습니다. 드디어 연결주의가 다시 빛을 보나! 했지만 곧 문제가 생겼습니다. 층을 여러 개로 쌓으니 이제는 그 관계가 너무 복잡해져서 어느 가중치를 수정해야 알고리즘이 개선이 될지 알 수가 없게 된 것입니다. 하나의 퍼셉트론이 오류를 내도 이 퍼셉트론에 연결된 수 천, 수 만개의 입력 중 어느 것이 오류에 기여했는지 알 수가 없던 것이죠. 이를 해결하기 위해 컴퓨터 과학자들은 역전파(Back propagation)라는 알고리즘을 고안했습니다. 역전파란 최종 결과가 좋다면 그와 직접 연관된 퍼셉트론을 강화하고, 아닌 경우에는 약화하여 퍼셉트론에 연결된 가중치를 수정하고 개선해 나가는 알고리즘입니다. 이 방법으로 복잡한 다층 퍼셉트론에서도 여러 번의 가중치 조절을 통해 신경망을 개선할 수 있었습니다. 그러나 역전파는 현재 상황에서 개선되는 방향만을 찾아가기 때문에 시작점을 잘못 선택한 경우 가장 좋은 최적 값을 찾지 못하는 경우가 있다는 단점이 있었습니다.
이외에도 연결주의의 한계는 다시 한번 나타나게 됩니다. 층을 많이 쌓아 올릴수록 더 복잡한 문제를 풀 수 있기 때문에 여러 층의 퍼셉트론을 만들어본 결과, 2~3층의 퍼셉트론은 잘 동작한 반면에 그 보다 많은 층에서의 결과는 그다지 좋지 않았습니다. 물론 이 정도의 신경망으로도 꽤 괜찮은 성능을 보였지만 역전파 알고리즘의 한계를 보고 나서 연결주의에 대한 인기는 사그라들기 시작합니다.
그러다가 최근에 위와 같은 인공신경망의 문제들을 해결한 인공신경망인 딥러닝이라 불리는 강력한 인공신경망 알고리즘이 등장하였고, 연결주의는 머신러닝의 대세로 떠오르게 됩니다. 근 몇 년간 해마다 새로운 딥러닝 알고리즘이 쏟아지고 있으며 그 한계가 어디까지인지는 아직 그 누구도 알지 못합니다. [코싸인 응용과학팀]
[1] Wikipedia
[2] homepages.gold.ac.uk
[3] Wikipedia
[4] Dave Beeman, University of Colorado
[5] aima.cs.berkeley.edu
[6] 마스터 알고리즘, 페드로 도밍고스, 2016, 비즈니스북스