[AI : Data representation and problem solving] Classification

이한량·2025년 4월 26일
0

Classification

분류란, 입력 데이터를 특정 클래스에 할당하는 작업이다.

이는 다양한 형태의 입력(숫자, 기호, ...)과 출력(클래스 레이블)을 처리할 수 있어야 한다.

분류를 위한 여러가지 접근법이 존재하며, 각기 다른 분류기는 고유의 장단점이 존재하며 특정 상황에 맞게 적용하는 것이 올바른 활용법이다.

거리 기반 분류

거리 기반 분류는 데이터 사이의 거리를 계산하여 가장 가까운 데이터의 클래스로 할당하는 방식이다.

  1. 데이터 분할 : 훈련 데이터를 각 클래스에 따라 구분한다.

  2. 새로운 입력 처리 : 새로운 입력 데이터는 알려진 데이터 공간(Known space) 내에서 각 데이터 포인트와의 거리가 계산된다.

  3. 가짱 가까운 데이터 찾기 : 계산된 거리를 기반으로 입력 데이터와 가장 가까운 데이터 포인트를 찾는다. 가장 가까운 데이터의 클래스를 따라 입력 데이터의 클래스가 결정된다.

주요 특징

  • 직관적이다

  • 구현이 간단

  • 유연성과 확장성

    • 거리 계산 방법에 따라 다양한 알고리즘이 존재

    • 데이터 차원이 늘어나도 적용이 가능

거리 기반 분류는 직관성과 단순함 덕분에 여러 분야에서 유용하게 사용되지만, 데이터의 복잡성이나 특성에 따라 더 정교한 알고리즘이 필요할 때는 적합하지 않은 방식이다.

또한 데이터 포인트가 많아질수록 분류 속도가 느려진다.

가장 대표적인 알고리즘은 K-NN(K-Nearest Neighbors)이다.

이는 입력 데이터 포인트 주변의 k개의 가장 가까운 이웃을 찾아 그들이 속한 클래스로 예측하는 방법이다.

예를 들어, 입력 데이터 포인트 주변의 가장 가까운 세 개의 데이터 포인트가 두 개는 삼각형, 하나는 동그라미라면 입력 데이터 포인트는 삼각형으로 분류된다.

장점

  1. 알고리즘이 단순하고 구현이 쉬움

  2. 모델을 구축하거나, 매개변수를 조정하거나, 추가적인 가정을 할 필요가 없음

  3. 학습 데이터에 노이즈가 있어도 강건함

  4. 학습 데이터가 많을수록 효과적일 수 있음

단점

  1. 항상 k값을 결정해야 하므로, 계산 복잡도가 높은편

  2. 데이터 수나 변수/독립 변수 등의 수가 많아질수록 계산으로 인한 시간 소요가 큼

선 기반 분류

선 기반 분류도 마찬가지로 매우 직관적인 알고리즘으로, 흔히 사용된다.

선 기반 분류는 공간 내 데이터를 두 개 이상의 그룹으로 나누는 결정 경계(선)를 찾는 것을 목표로 한다.

  1. 데이터 프로젝션 : 모든 데이터 포인트를 데이터들의 특성에 맞는 공간으로 투영한다.

  2. 결정 경계 설정 : 데이터 공간을 분할하는 선을 설정한다. 이 선은 공간을 두 부분으로 나누며, 분할된 각 공간은 서로 다른 카테고리에 속하게 된다.

  3. 카테고리 할당 : 각 데이터 포인트들이 위치한 공간에 따라 카테고리를 설정한다.

로지스틱 회귀, 서포트 벡터 머신은 모두 선 기반 분류에 해당한다.

Logistic Regression

데이터 포인트가 특정 카테고리에 속할 확률을 계산하고, 이를 기반으로 최적의 결정 경계를 찾는 방식

Support Vector Machine(SVM)

데이터 포인트 사이의 마진(경계)를 최대화하는 선을 찾아 최적의 분류 경계를 설정하는 방식

선 기반 분류는 계산이 비교적 간단하고, 결과의 해석이 용이하며 적절한 데이터 세트와 매개변수 조정을 통해 높은 정확도를 달성할 수 있다는 장점이 있다.

은행의 신용 평가, 의료 진단, 이미지 처리 등 여러 분야에서 활용될 수 있다.

저차원 투사 기반 분류

저차원 투사 기반 분류(Low Dimensional Projeection based Classification)는 고차원 데이터를 저차원으로 투사하는 방식으로 분류를 수행한다.

이런 변환은 복잡하고 다양한 데이터를 간결하고 핵심적인 정보로 축소하여 분류 작업을 수행할 수 있도록 한다.

이는 특히 이미지, 텍스트 등 고차원 데이터를 분류할 때 중요한 알고리즘이다.

  1. 고차원 데이터 입력 : 예를 들어 1024x1024 픽셀의 컬러 이미지가 입력으로 들어올 경우, 이는 (1024x1024x3)차원의 매우 고차원의 데이터이다.

  2. 저차원으로 투사 : 입력된 고차원 데이터를 신경망을 거쳐 저차원의 데이터로 투사한다. 이 과정에서 신경망은 복잡한 데이터 구조를 학습하여 중요한 특징만을 추출할 수 있다.

  3. 클래스 결정 : 저차원으로 투사된 데이터는 미리 정의된 클래스 차원에 따라 분류한다. 예를 들어, 이미지 내 객체가 "고양이, 말, 개" 중 하나로 분류해야 하는 경우, 3차원의 데이터로 투사된 후 최종 벡터를 적절히 해석하여 클래스를 분류함.

이 방식은 다음과 같은 이점을 갖는다.

  • 계산 효율성 증대 : 데이터를 저차원으로 투사하므로 계산량이 줄어든다.

  • 특성 강조 : 중요한 특성을 추출하므로, 분류기의 성능이 향상될 수 있다.

  • 구현 용이성 : 최근에는 고품질 인코더가 많이 공개되어 있기 때문에 구현도 용이하다.

이 접근법은 이미지 인식, 음성 인식, 텍스트 분석 등 다양한 머신 러닝 분야에서 활용된다.

프롬프트 기반 분류

프롬프트 기반 분류는 최근 언어모델의 성장에 따라 나타난 새로운 형태의 분류 기법이다.

Parametric Classification

파라메트릭 분류 방식은 미리 정의된 모델 구조에 따라 입력 데이터로부터 모델 파라미터를 학습하는 방식이다.

이는 구조가 명확하기 때문에 일반적으로 계산 효율이 좋으며, 데이터 요구량이 적을 수 있다.

반면 복잡하거나 노이즈가 많은 데이터에서는 유연성이 떨어질 수 있다.

기존 대부분의 훈련 기법은 대부분 파라메트릭 방식으로 훈련 데이터를 통해 분류기의 파라미터를 학습하는 형태이다.

Nonparametric Classification

비파라메트릭 방식은 분류 모델 구조를 사전에 정의하지 않고, 데이터 자체에서 패턴을 찾아내는 방식이다.

K-NN과 같은 비파라메트릭 모델은 데이터 포인트 사이의 관계를 보다 유연하게 이해할 수 있다.

이는 많은 데이터를 필요로 하기 때문에 계산 비용이 높고, 높은 메모리 요구사항을 가질 수 있다.

보통 분류기를 위한 파라미터가 전혀 없거나, 학습하지 않는 것은 전부 비파라메트릭 방식이라고 이해할 수 있다.

헤드 기반 분류

헤드 기반 방식은 보통 이미 사전 학습된 모델을 가져온 후 우리가 원하는 분류를 수행하기 위한 추가적인 레이어 등을 부착하여 추가적인 레이어 혹은 전체 모델의 파라미터를 재학습하는 방법이다

이 방식은 고차원의 데이터를 저차원으로 투사하기 위한 파라미터가 필요하므로, 명확하게 정의된 파라미터를 바탕으로 학습을 진행한다.

트랜스포머의 경우 최상층의 레이어로부터 얻어낸 벡터값을 이용하여 클래스 수 만큼의 저차원으로 투사하는 Head layer를 학습하게 된다.

즉, 트랜스포머에서 헤드기반 분류 방식은 파라메트릭 방식이다.

프롬프트 기반 분류

프롬프트 기반 방식은 미리 정의된 클래스 없이 입력 데이터(프롬프트)를 바탕으로 직접적인 해석과 연관성을 찾아 결과를 도출한다.

이 방식은 고정된 파라미터를 필요로 하지 않으며, 각 입력에 대해 출력을 동적으로 생성한다. 따라서 이는 매우 유연한 방식이며, 다양한 종류의 데이터에 적용할 수 있다.

고정된 파라미터가 존재하지 않기 때문에 기존 헤드 기반 방식처럼 명확한 트레이닝 단게가 필요하지 않다.

훈련 파라미터 유무 측면에서 따져보자면, 프롬프트 기반 분류는 일종의 비파라메트릭 방식이라고 이해할 수 있을 것이다.

profile
한량 극복 프로젝트

0개의 댓글