이미 분류를 알고 있는 데이터를 그대로 다시 분류하는 AI는 의미가 없습니다. 그 데이터들로부터의 경험치로 "이런 데이터가 있으면 여기에 분류된다"라고 하는 것이 중요합니다. 이를 일반화 가능성이라고 하는데, 서포트 벡터 머신은 "여백"이라는 "틈새"를 크게 하는 것으로 일반화를 유지하고 있습니다. 삶에도 여백이 중요합니다.
1. 경계선을 그으면 만사 해결
토끼같이 집단으로 생활하는 동물들은 많은 무리를 짓고 영역을 만듭니다. 그 방법은 다양하지만, 대부분은 자신의 영역에서만 배설을 합니다. 즉 변이 떨어져 있는 장소를 보면 대체로 그 집단의 영역을 알 수 있습니다.
예를 들어, 아래의 그림 같은 느낌으로 변이 떨어져 있었다고 합시다. 빨간 점이 그룹 1의 배설물이고, 파란 점이 그룹 2의 배설물이 있던 자리입니다. 그럼 그림의 녹색 'X'의 위치는 어느 그룹의 영역이 되는 것일까요?
이 문제를 해결하기 위한 하나의 방법으로 원래 있던 배설물의 위치를 보고 그럴듯한 영역의 테두리선을 그으면 될 것입니다. 그러면 그 선을 기준으로 그룹의 영역이 명확해집니다.
이번에 소개하는 서포트 벡터 머신은 이러한 주어진 점들의 집합에 가장 그럴듯한 경계선을 긋는 것으로 아직 보지 못한 데이터가 어떤 그룹에 속하는지 예측하는 방법론입니다.
다른 예로, 실기와 필기시험에서 각각 몇 점을 맞아야 합격할 수 있을지 예상하는 경우, 점수 데이터를 합격 그룹과 불합격 그룹으로 나눌 경계선을 그릴 수 있다는 것입니다.
동일한 시험을 친 사람의 점수 분포가 다음과 같을 경우를 생각해 봅시다. 빨간 점이 합격자 점수, 파란색 점이 불합격자의 점수입니다.
2. 여백은 크게 - 마진 최대화
우선 가장 단순하게 '직선'으로 경계를 긋는다고 생각해봅시다. 가장 적절한 경계를 그리려면 어떻게 하면 좋을까요? 다음 두 그림을 보세요.
어느 쪽이 좋아 보이나요? 분명 오른쪽일 것입니다. 왼쪽 것은 점과의 거리가 너무 가깝습니다. 다른 그룹의 점 바로 근처에 새로운 점이 나타날 수 있기 때문에 새로운 점을 잘 분류할 것 같지 않습니다.
그래서 서포트 벡터 머신이라는 방법에서는 다음 선을 그릴 때의 룰이 있습니다.
"경계선과 데이터 점의 거리가 최대한 멀어지게 한다"
이것을 마진 극대화 원리라고 합니다.
이 규칙에 따르면, 한쪽 그룹이 너무 좁아지도록 경계선이 당겨지는 것을 방지할 수 있기 때문에, 데이터의 오차에 강하다고 할 수 있습니다. 즉 아직 보지 못한 데이터에 대한 예측성능(일반화)이 커질 것입니다.
그럼 이런 경우는 어떨까요?
이렇게 점이 섞여 있으면 경계선을 그리기가 쉽지 않습니다. 그러나 이런 문제도 아래 그림처럼 약간의 미스를 허용하고 경계선을 그어 버리면 아직 모르는 데이터에 대한 예측성능(일반화 가능성)이 높아지는 경우가 많습니다. 왜냐하면 세상의 대부분의 문제는 적지 않은 예외가 존재하기 때문입니다.
첫 번째 예에서 실수로 남의 영역에 배설하는 일도 종종 있을 것이고, 시험 점수로 예로 들면 특정 연도에만 문제 난이도가 쉬워져서 그때만 합격 최저점이 어긋날 수도 있습니다. 이처럼 약간의 실수를 용인하여 경계선을 그릴 수 있다면 노이즈를 잘 제거할 수 없는 상황에서도 일반화를 유지한 채 분류할 수 있습니다.
이처럼 약간의 오차를 허용하도록 정의된 마진을 소프트 마진(soft margin)이라고 합니다. 한편, 처음에 언급 한 오차를 허용하지 않고 경계선을 긋는 경우를 하드 마진(hard margin)이라고 합니다.
3. 복잡한 경계선은 트릭을 사용 : 커널 트릭(Kernel Trick)
지금까지 직선으로 경계를 그리는 방법을 소개했지만, 당연히 직선만으로는 데이터의 분류가 불가능할 때가 많습니다. 그럴 때 사용되는 방법으로 커널 트릭이 있습니다. 수학적 설명은 초심자에게 가혹하기 때문에, 여기에서는 그 개념만 잡아 보겠습니다.
우선 이런 데이터가 있다고 합시다.
녹색 선처럼 곡선으로 분류하고 싶지만, 아래와 같이 특정 공간을 기울여 버리면 평면으로도 분류가 가능합니다.
이와 같이 차원을 늘려 데이터 점을 잘 옮겨서 바꾸는 것(사상)으 곧은 직선과 평면으로 분리(선형 분리)할 수 있는 방법을 커널 트릭이라고 합니다. 여기에서는 자세히 다루지 않지만, 기회가 있으면 나중에 설명하려고 합니다.
서포트 벡터 머신은 그 수학적 재미로 인해 지금도 연구가 활발히 진행되고 있으며, 최근에는 GANs라는 모델은 서포트 벡터 머신의 일반화라고 할 수 있는 연구도 보고되고 있습니다. 수학적인 측면에서 AI에 관심을 가진 분들은 학습해 보셔도 좋을 것입니다.
'AI · 인공지능 > 알기쉬운 AI' 카테고리의 다른 글
[알기쉬운 AI - 16] 기계 학습 라이브러리 (0) | 2020.02.03 |
---|---|
[알기쉬운 AI - 15] AI 관련 기술 전체상(Overview)과 하드웨어 (0) | 2020.02.02 |
[알기쉬운 AI - 14] 흐름으로 중요성을 파악!? '의사결정트리'란? (0) | 2019.12.26 |
[알기쉬운 AI - 13] 향후 매출을 예측하고 싶다! '회귀분석'이란? (0) | 2019.12.25 |
[알기쉬운 AI - 11] 그룹에서 당신은 어떤 타입? '클러스터링'이란? (0) | 2019.12.23 |
[알기쉬운 AI - 10] AI의 발전적 기능: 자연어 처리와 강화학습, 이미지인식, 음성인식 (0) | 2019.12.08 |
[알기쉬운 AI - 09] 지도 학습과 비지도 학습이란? (0) | 2019.12.07 |
[알기쉬운 AI - 08] AI의 기본 원리 (0) | 2019.12.06 |