[Pattern Recognition] 01. Pattern Recognition

김기진·2025년 12월 22일

pattern-recognition

목록 보기
1/10

패턴 인식 개요

패턴 인식이란?

  • 패턴 인식은 데이터에서 규칙적인 패턴을 찾아내고 학습하는 과정
  • 핵심 질문: 패턴을 어떻게 학습할까?
  • 목표 응용 분야에 따라 학습 방법이 다름

학습 방법의 분류

  • 지도 학습

    • 회귀 (Regression): 원하는 출력이 하나 이상의 연속형 변수
    • 분류 (Classification): 원하는 출력이 유한 개의 이산적인 카테고리
  • 비지도 학습

    • 군집화 (Clustering): 유사한 입력들을 그룹으로 발견
    • 밀도 추정 (Density estimation): 입력 분포를 파악

다항식 곡선 피팅

문제 정의와 목적

  • 문제: 이 데이터를 잘 표현할 수 있는 함수를 어떻게 설계할 것인가?
  • 목적: 데이터를 가장 잘 표현할 수 있는 w (벡터 또는 기울기), M (차수)를 찾는 것.
  • 방법: 에러 총합 (에러 제곱합) 을 최소화하는 w 값 선택

다항식 곡선 차수 찾기

  • 다항식 차수 변경은 다항식을 완전히 바꿀 수 있음

  • 주어진 데이터에 가장 적합한 모델을 선택하는 것은 중요함.

  • M=0,1

    • 이것은 단순히 직선 방정식이므로, 과소적합된 단순 선형 회귀 방정식이 된다.
  • M=3

    • 모델이 데이터를 꽤 잘 피팅한다. 너무 복잡해지지 않으면서 데이터의 주요 경향을 포착한다.
  • M=9

    • 모델이 노이즈까지 학습하여 모델이 훈련 데이터에 과적합 됨
    • 모델이 훈련 데이터셋에만 너무 특화되었기 때문에 일반화 성능이 낮음
    • 훈련 데이터에 대한 오차 함수가 0에 가까워짐,
    • 하지만 우리는 보지 못한 데이터에 대해서 일반화 잘 되는 모델이 필요함

모델 평가

모델 평가 지표

RMSE=MSE=(y^y)2nRMSE = \sqrt{\overline{MSE}} = \sqrt{\frac{\sum(\hat{y}-y)^2}{n}}
MSE=1Ni=1NLossθ(yi,y^i)=n=1N{y(xn,w)tn}2MSE = \frac{1}{N} \sum_{i=1}^{N} Loss_{\theta}(y_i, \hat{y}_i) = \sum_{n=1}^{N} \{y(x_n, \mathbf{w}) - t_n\}^2

  • 제곱
    • 오차가 잘 못 계산되는 것을 방지
  • 제곱근
    • 오차의 단위를 데이터와 맞추기 위함, 데이터와 같은 단위이기 때문에 오차 크기를 직관적으로 비교할 수 있음
    • 데이터 양이 증가함에 따라 계산 속도가 느려지는 것을 방지
  • 샘플 크기
    • 데이터 개수가 다르더라도 일관성 있게 평가하도록 오차 평균을 사용

과적합 문제와 해결 방법

과적합 원인과 현상

  • 훈련 데이터의 MSE 는 0 에 가까워짐 하지만 테스트 데이터의 MSE 는 급격하게 증가
  • 이는 모델이 훈련 데이터의 노이즈까지 학습하여 모델이 훈련 데이터에 과접합된 것을 나타냄

파라미터 관점에서 본 과적합

  • 오버피팅이 발생하면 파라미터 값들의 분산이 커짐
  • 각각의 파라미터들이 매우 크거나 작아짐

데이터 개수 관점에서 본 과적합

  • 훈련 데이터 개수가 많아질수록 과적합이 줄어듬
  • 훈련 데이터 개수가 많아질수록 모델은 노이즈를 무시하고 기저 함수와 유사해짐

과적합 문제 해결 방법

  • 방법: 손실 함수에 파라미터에 대한 패널티 항을 추가해 과적합을 방지하고 일반화 성능을 향상시키기
  • 수식: E~(w)=12n=1N{y(xn,w)tn}2+λ2w2\tilde{E}(w) = \frac{1}{2} \sum_{n=1}^{N} \{y(x_n, w) - t_n\}^2 + \frac{\lambda}{2} ||w||^2
    • λ\lambda 가 적당히 작은 경우: 모델의 과적합을 효과적으로 방지
    • λ\lambda 가 큰 경우: 모델의 과소적합을 유발

패턴인식 실제 적용 예시

목표

  • 데이터가 주어졌을때, 컴퓨터는 데이터를 설명하는 방정식 f(x)f(x) 를 어떻게 추론할 수 있는가?

과정

  1. 가설 함수 정의: H(w,b)=wx+bH(w,b) = wx +b
  2. 비용 함수 정의: MSE=1mi=1m(H(xi,w,b)yi)2=1mi=1m(wxi+byi)2MSE = \frac{1}{m} \sum_{i=1}^{m} (H(x_i, w, b) - y_i)^2 = \frac{1}{m} \sum_{i=1}^{m} (wx_i + b - y_i)^2
  3. 비용 함수가 최소가 되는 w, b 찾기
  • cost(w,b)w=2mi=1m(wxi+byi)xi\frac{\partial \text{cost}(w, b)}{\partial w} = \frac{2}{m} \sum_{i=1}^{m} (wx_i + b - y_i)x_i
  • bcost(w,b)=2mi=1m(wxi+byi)\frac{\partial}{\partial b} \text{cost}(w, b) = \frac{2}{m} \sum_{i=1}^{m} (wx_i + b - y_i)

풀이1: 비용 함수를 최소화하도록 w와 b를 반복적으로 업데이트

  • w:=wαcost(w,b)/ww:=w−α*∂cost(w,b)/∂w​
  • b:=bαcost(w,b)/bb:=b−α*∂cost(w,b)​/∂b

풀이2: 연립 방정식 계산

  1. 주어진 식을 다음과 같이 정리하기
    {xi2w+xib=xiyixiw+mb=yi\begin{cases} \sum x_i^2 w + \sum x_i b = \sum x_i y_i \\ \sum x_i w + mb = \sum y_i \end{cases}

  2. 행렬 형태로 표현하기
    (xi2xixim)(wb)=(xiyiyi)\begin{pmatrix} \sum x_i^2 & \sum x_i \\ \sum x_i & m \end{pmatrix} \begin{pmatrix} w \\ b \end{pmatrix} = \begin{pmatrix} \sum x_i y_i \\ \sum y_i \end{pmatrix}

  3. 크래머스 룰 적용하기

  • 계수행렬의 행렬식
    D=xi2xixim=(xi2)m(xi)2D = \begin{vmatrix} \sum x_i^2 & \sum x_i \\ \sum x_i & m \end{vmatrix} = (\sum x_i^2)m - (\sum x_i)^2

  • ww에 대한 변형 행렬식
    Dw=xiyixiyim=(xiyi)m(xi)(yi)D_w = \begin{vmatrix} \sum x_i y_i & \sum x_i \\ \sum y_i & m \end{vmatrix} = (\sum x_i y_i)m - (\sum x_i)(\sum y_i)

  • bb에 대한 변형 행렬식
    Db=xi2xiyixiyi=(xi2)(yi)(xi)(xiyi)D_b = \begin{vmatrix} \sum x_i^2 & \sum x_i y_i \\ \sum x_i & \sum y_i \end{vmatrix} = (\sum x_i^2)(\sum y_i) - (\sum x_i)(\sum x_i y_i)

  1. 최종 해 공식
    w=DwD=(xiyi)m(xi)(yi)(xi2)m(xi)2w = \frac{D_w}{D} = \frac{(\sum x_i y_i)m - (\sum x_i)(\sum y_i)}{(\sum x_i^2)m - (\sum x_i)^2}
    b=DbD=(xi2)(yi)(xi)(xiyi)(xi2)m(xi)2b = \frac{D_b}{D} = \frac{(\sum x_i^2)(\sum y_i) - (\sum x_i)(\sum x_i y_i)}{(\sum x_i^2)m - (\sum x_i)^2}

0개의 댓글