[4악장 - Cadenza] 머신러닝의 알고리즘과 수학
데이터는 여러 가지 값을 가지는 경우가 대부분입니다. 어떤 데이터는 순도가 높게 하나의 값들을 주로 가질 수도 있고, 어떤 데이터는 여러 값들이 뒤섞여있을 수도 있습니다. 이러한 데이터의 혼잡도를 수치화한 것이 ‘엔트로피’입니다. 엔트로피는 데이터들이 서로 다른 종류가 똑같은 개수로 섞여 있을수록 1로 가까워지고 반대로 하나만 있으면 0으로 가까워집니다. 가장 균등하게 1:1로 섞여있을 때는 1, 완전히 하나만 존재할 때는 0을 가리킵니다. 위의 그림에서 정확하게 삼각형과 동그라미가 5:5로 섞여있을 때는 엔트로피가 1이 되고, 7:3으로 섞인 상황에서는 약 0.88, 동그라미만 존재할 때는 엔트로피가 0이 됩니다.
먼저 레이블에 해당하는 구매의사의 엔트로피를 살펴보겠습니다. O가 2개, X가 2개 균등하게 섞여있으므로 구매의사의 엔트로피는 1이 됩니다. 이를 전체 엔트로피라고 합니다.
성능 속성이 보여주는 정보량 산출을 해보겠습니다. 성능 속성에는 값이 O, X 두 가지가 있는데, 각 값들이 주는 정보의 양이 서로 다릅니다. 성능의 O는 적중하지 못한 게 있는데 x는 1개지만 적중을 했기 때문입니다. 따라서 성능의 O와 x의 적중 결과의 엔트로피를 각각 구해보니 0.92, 0이 나왔습니다.
그런데 성능 속성의 응답에는 O가 X보다 훨씬 많죠? 따라서 각각의 비율을 앞에서 구한 엔트로피에 곱해주고, 그 합을 산출합니다. 이렇게 나온 값은 성능이라는 속성이 구매의사 속성에 얼마나 정보를 주는지를 알려주는 정보량이 되는 것이죠. 이렇게 구한 정보량을 가리켜 ‘섀넌 엔트로피’라고 부릅니다. 각 속성에 대한 섀넌 엔트로피를 구하면 아래와 같습니다.
전체 엔트로피에서 각 속성에서 구한 섀넌 엔트로피를 빼준 값을 각 속성별 정보 이득이라고 합니다. 각 속성별로 정보 이득을 계산해보면 다음과 같습니다.
위에서 속성별로 정보 이득을 보면 ①디자인, ②성능, ③가격 순으로 산출이 됩니다. 즉 정보 이득의 순서는 결과에 가장 큰 영향을 주는 속성의 순서라고 할 수 있습니다. 따라서 결정 트리를 만들 때 순서를 정한다면 디자인-성능-가격 순서로 트리를 만들면 됩니다.
여기서 구매 의사에 대한 정보 이득의 값이 전체 엔트로피와 같은 1이라는 값을 가지고 있죠? 즉 디자인에 대한 질문 하나로 모든 걸 파악할 수 있으며 다른 속성은 굳이 필요 없다는 것을 의미합니다. 반면 가격의 정보 이득은 0이므로 구매 의사를 살펴보는데 전혀 도움이 되지 않는다는 의미입니다.
따라서 위의 데이터로는 정보 이득을 활용해서 오른쪽과 같은 결정 트리가 만들 수 있습니다.
그렇다면 좀 더 복잡한 다음의 데이터는 어떻게 결정 트리가 만들어지는지 단계를 살펴보도록 하겠습니다.
운동 여부에 관한 전체 엔트로피는 0.94가 나왔습니다. 그리고 각 속성별로 정보 이득을 산출한 결과 날씨가 0.24로 가장 높았습니다. 따라서 가장 먼저 날씨에 대해서 질문을 하는 것이 필요합니다. 마침 날씨 중에서 흐린 경우 모두 운동을 한다는 결과가 나왔습니다.
날씨가 맑을 때의 데이터만 따로 떼어내었습니다. 이때 각 속성별로 섀넌 엔트로피를 구하여 정보 이득을 산출하면 오른쪽 표와 같이 산출됩니다. 따라서 맑을 때는 습도를 살펴볼 필요가 있습니다. 그런데 습도의 엔트로피가 전체 엔트로피와 같은 0.94이므로 습도만 살펴보면 충분합니다.
이제 비에 해당하는 데터를 살펴봅시다.
비가 올 때는 바람의 정보 이득이 가장 큽니다. 그리고 그 정보 이득의 값이 0.94로 동일합니다. 따라서 비가 온다면 바람이 많이 부는지 없는지를 살펴보는 것만으로 충분합니다.
이렇게 데이터를 분류했더니 다음과 같은 결정 트리가 만들어졌습니다!
결정 트리에서는 질문의 순서가 매우 중요합니다. 데이터가 아무리 많더라도 빠르게 계산할 수 있는 자동화된 알고리즘이 존재한다면 저절로 질문을 중요한 순서대로 산출해낼 수 있습니다. 이 과정에서 데이터의 혼잡도를 나타내는 엔트로피, 엔트로피로 정보 이득을 산출하는 것이 바로 수학, 통계의 역할입니다. 이러한 머신러닝 모델을 만들어놓으면 그다음부터는 데이터만 입력하면 머신러닝이 알아서 분류하기 위한 질문들을 뽑아내는 것이죠. 정보 이론을 산출하는 복잡한 과정은 머신러닝이 알아서 계산과 처리를 해줍니다.
머신러닝은 마법이 아닙니다. 결정 트리를 통해 살펴보았듯이 머신러닝 안에는 데이터를 다루는 수학적 개념과 통계적 과정이 존재합니다. 결정 트리가 분류에 사용이 되었지만 분류에는 결정 트리 외에도 다양한 알고리즘이 있습니다.
다음 글에서는 머신러닝의 대표적인 알고리즘들과 사용되는 수학적 개념들을 간단히 살펴보겠습니다.