SVM에 대한 소개 및 활용 사례
[SVM(Support Vector Machine)은 무엇이고 어떻게 활용될 수 있을까?]
<목차>
1. SVM 소개 및 작동 방식
2. SVM의 장점 및 단점
3. SVM 활용 사례
1. SVM 소개 및 작동 방식
: SVM는 분류 머신러닝의 한 종류로 분류에 기준이 되는 선이나 평면을 의미한다.
즉, 새로운 데이터가 들어오면 어느 영역에 정의되는지 알려준다. 분류해야 할 데이터 속성이 많을수록
차원의 개수는 증가한다. 예를 들어, 3개의 속성을 가진 데이터를 분류하기 위해서는 3차원의 기준 평면이 필요하다.
SVM은 결국 데이터를 분류하는 기준이 되는 선이나 평면 (4차원 이상에서는 초평면)을 구하는 모델이라고 생각할 수 있다.
하지만, 데이터를 100%로 분류할 수 있는 결정 경계는 여러 가지가 있을 수 있다. SVM은 '가장 잘' 분류하는 것을
아래 사진에서 나오는 '마진을 극대화' 하는 결정 경계를 찾는 것이다.
마진을 최대화하여 testing error를 줄일 수 있다.
[그림 1] SVM 소개
위에 나왔던 주요 용어에 대해서 살펴보도록 합시다.
1) 최적의 결정 경계(Decision Boundary) : 데이터들을 분류하는 기준이 된다. 데이터군으로부터 최대한
멀리 떨어지는 게 좋다.
2) 서포트 벡터(Support vector) : 데이터군의 최전방 데이터 포인트이다. 서포트 벡터가 SVM의 결정 경계를
정의하며, 서포트 벡터만 잘 골라내면 다른 데이터들은 적절하게 무시할 수 있다. n개의 속성을 가진 데이터들은
n+1개의 서포트 벡터가 존재한다.
3) 마진(Margin) : 결정 경계와 서포트 벡터 사이의 거리이다. 최적의 결정 경계는 마진을 최대화 한다.
4) 이상치(Outlier) : 데이터군과 떨어져 혼자 튀어나와 있는 데이터 포인트를 의미한다. 이상치를 얼마나 허용할 것인가는
fitting에 큰 영향을 미친다. (Hard Margin : 이상치를 거의 허용하지 않아 마진이 좁다. 즉, 벡터와 결정 경계 사이의
거리가 매우 좁은 상태를 의미한다. 학습 데이터를 놓치지 않으려고 하기 때문에 overfitting이 발생할 수 있다. 반면에,
Soft Margin : 이상치를 너그럽게 허용하여 마진이 넓다. 벡터와 결정 경계 사이의 거리는 넓으며, 학습 데이터를 너무
너그럽게 허용하면, 너무 대충 학습하는 under fitting이 발생한다.
-> 그럼 이제 SVM모델에서 데이터를 분류하는 수리적 과정을 알아보도록 합시다.
분류의 기준이 되는 초평면(위의 [그림 1]에서는 직선)의 식을 정의합니다. w는 초평면의 법선 벡터이며 기울기를 나타내고,
b는 bias입니다. b는 직선의 상수라고 이해할 수 있습니다. 이제 주어진 데이터로부터 적절한 w, b의 값을 찾아 결정 경계를
정의해야 합니다. 결정 경계를 정의한 후 위의 [그림 1]과 같이 값이 1보다 크면 +(초록), -1보다 작으면 -(파랑)으로 분류할 수
있습니다. 본 글에서는 초록색 데이터를 +클래스, 파란색 데이터를 -클래스로 표현할 것입니다. 여기서 1은 인위적인 제약을
부여한 것으로 이해할 수 있습니다. 구체적인 내용은 다음과 같습니다.
2. SVM의 장점 및 단점
1) SVM의 장점
(1) 노이즈 데이터와 이상치를 처리할 수 있는 좋은 방법이라는 것이다.
(2) 선형 분리가 불가해 보이는 것도 고차원 매핑을 통해 분리가 가능하다.
(3) 고차원에서도 효과적이라고 알려져 있으며 local optimum에 빠질 수 있는 딥러닝 방식과는 달리
SVM은 global optimum을 찾는다.
(4) model-based-learning으로 모델이 구축된 후에 새로운 데이터에 대한 예측 및 분류 속도가 상대적으로 빠르다.
2) SVM의 단점
(1) 분류 클래스가 여러 개가 되면 분류를 해야 하는 경우의 수가 많아지기 때문에 모델을 구축하는데 시간이
오래 걸린다는 점이 있다.
(2) 최적 파라미터를 찾는 과정을 거치기 때문에 모형 구축 시간이 오래 걸릴 수 있다.
(3) 결과에 대한 설명력이 떨어진다는 점이 있다.
3. SVM 활용 사례
: 위와 같이 SVM 알고리즘을 이용해 서로 다른 유형의 데이터를 분류하는 방법에 대해서 살펴봤습니다.
그렇다면 이러한 SVM이 어떤 분야에서 어떻게 활용되고 있을까? 다양한 사례들에 대해서 간단하게
살펴본 내용은 다음과 같습니다.
1) 영상처리 기반을 통한 실시간 노면 상태 판별
- 김종훈, 백남철, 장혁(2013). SVM(Support Vector Machine) 분류기를 활용한 영상처리 기반 실시간 노면 상태
판별 방법론 연구. 대한토목학회 정기학술대회
: 레이저 혹은 레이저 기반의 노면 센서를 도로의 특정 지점에 설치하여 노면 상태를 실시간으로 판단하여 결과를
제시하여 즉각적인 대응이 가능하도록 한다. 하지만 노면 센서의 설치 및 운영 단가의 고 비용성으로 인하여 설치 및
운영 범위가 제한적이다. SVM을 기존에 설치되어 있는 CCTV를 기반으로 영상처리 시스템을 구현하면 저 비용으로
노면 상태 정보의 취득 및 폭넓은 활용이 가능하다.
2) RBF-SVM 기반 고관절 보행 보조 외골격 로봇의 보행 모드 판단 알로리즘 개발
- 신동빈, 이승찬, 황승훈, 백인혁, 노준규, 황순웅, 한창수(2020). RBF-SVM 기반 고관절 보행 보조 외골격 로봇의 보행 모드
판단 알고리즘 개발. 한국정밀공학회지 제37권
: SVM 기법에 따라 데이터를 분류하여 세 가지 지형에 대해 보행 모드를 판단한다. 사람마다 다리 길이, 보폭, 보행 속도 등
보행과 관련된 특징이 다양하다. Hip Assist Robot을 착용한 상태에서 세 가지 지형에 대한 각각 오른쪽, 왼쪽, 고관절, 족관절의
각도를 수집한다. 도출된 최적화된 파라미터와 양쪽 고관절 및 족관절 데이터를 통해 보행 환경(평지, 오르막 계단, 내리막 계단)을 판단한다.
3) 머신러닝을 이용한 기관 출력 예측 방법에 관한 연구(선박)
- 김동현, 한승재, 정봉규, 한승훈, 이상본(2019). 머신러닝을 이용한 기관 출력 예측 방법에 관한 연구. Journal of the Korean
Society of Marine Environment & Safety, 25(7). 851-857.
: 실제 운항 시 쉽게 얻을 수 있는 운항 데이터를 기반으로 SVM 알고리즘을 이용하여 선박의 다양한 운항 조건과 환경 조건에서
정확한 기관 출력 예측이 가능하다. 모델 구축을 위한 운항 데이터 선박의 마력 추정을 위해 마력 변화에 영향을 주는
운항 데이터를 SVM의 입력 데이터로 하고, 축마력을 출력 데이터로 하는 학습 모델을 만든다. 선박 저항에 영향을 주는
요인들은 다양하지만, 너무 많은 입력 데이터는 예측 모델의 노이즈 발생의 원인이 된다. 모델 구축에 사용된 데이터는
선박 데이터 수집 장치로 전송된 10초 간격 데이터를 변환하여 사용한다.