Pattern Recognition

패턴 인식은 원래 그대로의(raw) 데이타를 통해서 그 패턴의 범주(카테고리, category)에 따라 행동을 취하는 행위를 뜻한다. 이는 우리의 생존에 있어서 매우 중요한 일이었고, 그래서 과거 수백 수천만년 전부터 우리는 매우 복잡한 인식 시스템을 발전시켜 왔다. 기계에 있어서, 패턴을 인식(recognize)하는 기계를 만들고 설계하기 위해서는 자연계의 여러 패턴 인식 시스템(특히 인간의)들에 대한 깊은 이해와 평가가 요구된다[1].

기계 학습에서 특히 분류(classification), 또 분류를 통해 데이터를 이해하는 일 등을 나타내는 용어이다.

패턴 인식은 다음 그림과 같은 과정으로 이루어진다. 먼저, sensing은 패턴 인식 시스템에 대해 입력을 받는 것이다.  이 입력을 받는 입력기(sensor, transducer)의 특성에 따라 얻어진 데이터의 형태에 제한이 가해질 수 있다(데이터의 대역폭, 해상도, 민감도, 왜곡, 노이즈 등). 그 후 이 데이터를 segmentation을 통해 집중하려는 몇몇 특성에 따라 분할한다. 예를 들어, 물고기를 찍은 사진 데이터에서 사람이 물고기를 구분하는 데 대체적인 모양을 가지고 구분하는 경향이 있다면, 이 모양 정보에 집중할 수 있도록 주변 배경부와 면 정보 등을 제거할 수 있다. 또는 외곽선(edge) 정보를 강화시킬 수 있다. 이렇게 얻어진 데이터를 다음 feature extraction 단계에서 몇몇의 명시적인 값들의 벡터로 표현한다. 이 벡터에서 분류 및 인식의 성능을 높이기 위해 특정 원소를 제거하고 벡터의 값들의 부분집합을 선택하는 것이 특징 선택(feature selection)이다. 이렇게 최종적으로 얻어진 특징 집합(feature set)에 대해 분류를 수행한다. 이후 후처리기(post-processor)를 통해 분류기(classifier)의 출력을 이용해 추천되는 행동(action)을 선택할 수 있다.
pattern_recog1.png 
[그림 1]  패턴 인식의 과정

또한 패턴 인식기를 만드는 과정은 다음 그림과 같이, 데이터를 모으고, 데이터의 특징(벡터)을 선택하고, 여러 분류기 모델 중 하나를 선택하여, 분류기를 기계 학습의 원칙에 따라 '입력-출력' 쌍 데이터들을 통해 훈련(학습)시키고, 임의의 훈련에 쓰이지 않은 데이터를 사용하여 정확성을 평가한 후, 필요에 따라 이 모든 작업 중 어떤 부분을 수정 보완하는 일련의 작업들로 이루어진다. 이 일련의 작업들을 설계 사이클(design cycle)로 다음 그림과 같이 나타낼 수 있다.
pattern_recog2.png 
[그림 2] Design cycle

패턴 인식에 대한 예제(illustrative example)는 참고 문헌[1]을 살펴보거나 또는 다음의 링크[2]를 참조할 수 있다.

[1] Richard O. Duda, Peter E. Hart and David G. Stork. (2000). Pattern Classification. 2nd ed., Wiley-Interscience.
[2] 오병화. (2010). 데이터마이닝 연구실 설명회 발표 자료. (link)