패턴 인식과 머신 러닝

1.1 예시 : 다항식 곡선 피팅 (p.1 ~ 10)

hyunnwoo 2023. 6. 29. 01:58

 

 

1. 소개

 

패턴 인식은 컴퓨터 알고리즘을 활용하여 데이터의 규칙성을 자동적으로 찾아내고, 이 규칙성을 이용하여 데이터를 각각의 카테고리로 분류하는 등의 일을 하는 분야다.

 

손글씨로 쓰인 숫자를 인식하는 예시를 살펴보자.

필체의 모양을 바탕으로 직접 작성한 규칙이나 휴리스틱 알고리즘을 통해 생성된 규칙을 사용해 이 문제를 해결하려 시도할 수도 있을 것이다. 그러나 이는 수 많은 예외 사항과 규칙을 만들어야하고, 성능이 좋지 못한 결과를 도출하게 된다.

 

머신 러닝을 적용하면 훨씬 더 나은 결과를 얻을 수 있다.

 

  • 훈련 집합(training set) : 머신 러닝 알고리즘(인공지능 모델)을 학습시키기 위해 사용되는 데이터 집합으로, input vector와 target vector가 포함된다.
  • 표적 벡터(target vector) : 데이터의 input에 대한 기대 output을 나타내는 벡터이다. 예시에서는 이미지가 어떤 숫자를 의미하는지를 나타내는 벡터이다.
  • 훈련 단계(training phase) 또는 학습 단계(learning phase) : training set을 사용해 모델을 학습하는 단계로, 최적의 함수 y(x)를 찾는다.
  • 시험 집합(test set) : 모델의 성능을 측정하기 위해 사용되는 독립적인 DataSet이다.
  • 일반화(generalization) : 학습한 패턴을 training phase에서 사용하지 않았던 새로운 입력값에 적용하고 올바르게 분류하는 능력이다.

 

머신 러닝 알고리즘의 결과물은 input vector x에 대한 예측 결과를 나타내는 함수 y(x)로 표현할 수 있다.

y(x)의 출력값 y는 target vector와 같은 방식으로 인코딩(부호화)된 벡터이다.

 

 

입력 받은 변수들을 전처리(preprocess)하여 새로운 변수 공간으로 전환할 수 있다.

이를 통해 패턴 인식 문제를 더 쉽게 해결 할 수 있다.

예를 들어, 손글씨 숫자 인식문제에서 입력 받은 숫자 이미지들을 모두 동일한 크기와 고정된 위치의 박스내에 들어가도록 축소, 확대, 변환(회전, 이동 등)한다. 이 행위는 각 숫자 클래스 내에서 데이터들의 가변성을 상당히 줄이게된다. 각 숫자들의 위치와 크기가 같기 때문이다. 따라서 각각의 클래스( 숫자 0~9 )를 구별해 내기가 더 쉬워진다. 이러한 전처리 과정을 특징 추출(feature extraction) 과정이라고도 한다.

 

계산 과정의 속도를 높이기 위해서 전처리 과정을 활용하기도 한다. 예를 들어, 고해상도의 비디오 스트림에서 실시간으로 얼굴을 인식해야하는 경우를 생각해보자. 수 많은 픽셀 데이터들을 패턴 인식 알고리즘에 적용하는 것은 실행 불가능한 일일 것이다. 그러나 모든 데이터를 사용하는 것이 아닌, 클래스를 구별하는 차별적인 정보를 가지며 빠른 계산이 가능한 유용한 특징들을 찾아내어 사용할 수 있다. 이러한 전처리를 차원 감소(dimensionality reduction)라고도 한다.

 

전처리 과정에서 문제 해결에 중요한 정보들을 버리지 않도록 주의해야한다.

 

 

지도 학습(supervised learning) : input vector와 그에 해당하는 target vector가 training set으로 주어진다. 즉, 문제와 정답을 알려줌으로써 학습시키는 것이다. 앞서 본 숫자 인식 예시와 같이 각각의 input vector 들을 지정된 카테고리들로 분류하는 문제를 분류(classification) 문제라고 한다. 기대되는 output이 연속적인 값일 경우에는 회귀(regression) 문제라고 한다.