특징 추출

특징 추출의 목적과 개념

특징 추출이란 앞서 알아본 분류기나 군집분석기를 수행하기 전, 원래 데이터에서 불필요한 정보를 제거하고 핵심이 되는 정보만 추출하거나, 데이터의 차원 축소를 통해 학습 시스템의 효율을 향상시키기 위해 원래 데이터 x를 새로운 특징벡터 y로 표현하는 과정이라고 할 수 있다.

특징 추출의 목적을 다시 정리하면 아래와 같다.
(1) 원래 데이터에서 불필요한 정보를 제거한다. -> 머신러닝의 성능을 향상시킨다.
(2) 데이터의 차원을 축소시킨다 -> 학습 시스템의 효율(컴퓨팅)을 향상시킨다.

원래 데이터 x 에서 새로운 특징 벡터 y로 변환하는 과정에서 변환 함수(transformation function)라는 것을 사용하며, 이러한 변환 함수는 선형 변환비선형 변환으로 구분할 수 있다.

변환 함수

함수의 종류 설명 영문
선형 변환 n차원 열벡터 x에 변환행렬 W(nxm)를 곱해서 m차원 특징을 획득한다.
통계적 방법으로 특징벡터 y가 원하는 분포가 되도록 변환행렬 W를 구한다.
linear transformation
비선형 변환 복잡한 비선형함수를 이용해 n차원 벡터를 m차원 벡터로 매핑한다.
수작업에 대한 특징추출이나 표현학습이 여기에 해당한다.
nonlinear transformation

차원의 저주

데이터의 차원이 증가할수록 데이터 희소성(특징의 분명성)이 감소하고 연산 복잡도가 증가하는 등의 문제가 발생하는 현상을 지칭한다. 머신러닝에서는 데이터에 대한 특징이 많을수록 좋기는 하지만, 불필요한 특징이 포함되어있을 경우 데이터의 특징이 불분명해지는 경향을 보일 수 있으며, 데이터 특징의 수에 따라 계산량이 증가하여 비용이 증가한다.

특징 추출을 위한 접근법

(1) 수작업에 의한 특징 추출

사람(개발자 등)이 데이터에서 중요한 특징(feature)을 직접 정의하고, 이 정의에 따라 특징을 추출하는 방식을 뜻한다. 입력 데이터의 특성과 분석 목적(도메인 지식 등)에 맞게 진행한다.

예를 들어, 영상 데이터에서는 엣지, 가로나 세로의 방향 성분 등이 그것에 해당하며, 문서 분석에서는 단어의 발생 빈도 등을 특징으로 삼는 것이 수작업에 의한(또는 도메인 지식에 의한) 특징 추출이라고 할 수 있다.

(2) 표현 학습

알고리즘이 데이터로부터 중요한 특징을 자동으로 학습해서 추출하는 방식을 뜻한다. 사람이 직접 설계하지 않고, 딥러닝 기반 모델 등으로 데이터에서 특징이 되는 부분을 자동으로 추출하게 한다.

영상에서는 CNN이 필터를 통해 유용한 특징을 자동으로 학습하거나, 텍스트 처리에서 사용하는 워드 임베딩 기법이 대표적인 에이다.

Reference

머신러닝 (이관용, 박혜영 공저)