Linear Classification Model
안녕하세요! 저번 시간에는 선형 회귀(Linear Regression)에 대해 배웠는데요. 저번 시간에 배운 내용을 다시 간단하게 복습해볼까요?
인공지능은 예측을 기본으로 다루는데 과거의 데이터를 학습함으로써 최적의 예측 모델을 만들게 돼요. 선형회귀는 예측 모델을 만드는 데에 있어서 가장 간단하면서도 많이 쓰이는 방법론이에요.
선형회귀에서는 가설(hypothesis)을 직전의 방정식 ax+b로 설정하는데요. 이때 최적의 가설을 찾기 위해 가설과 실제 데이터 간의 차이가 최소인 a, b를 구하게 돼요. 이때 사용하는 방법이 Cost function 이에요. 선형 회귀 모델의 목표는 Cost를 가장 작게 만드는 a, b의 값을 구하는 것이라고 할 수 있어요.
두 번째 수업에서는 선형분류모델(Linear Classification Model)에 대해 배웠어요. 선형 분류 모델은 모델은 쉽게 말해 선을 이용하여 집단을 두 개 이상으로 분류하는 모델이에요.
선형 회귀 모델에서는 타겟 값 t 가 실수의 값, 또는 실수 벡터값을 가졌었죠. 선형 분류 모델은 입력 벡터 x가 어떤 하나의 클래스에 속하는지 분류하는 작업이에요. 즉, 선형 분류 모델에서 나의 데이터는 하나의 클래스에만 속하게 되며, 하나의 클래스는 다른 클래스를 부분적으로 포함하지 않아요. 클래스는 상호 배타적인 관계이며 따라서 입력 공간(Input space)을 각각의 영역들로 나눌 수 있어요. 이렇게 나누어진 영역을 decision region이라고 불러요. 그리고 그 나누는 경계를 결정 경계면이라고 불러요.
분류 문제는 보통 표현 가능한 클래스 레이블로 나누어지게 되는데 binary representation과 1-of-K coding scheme이 있어요.
binary representation란 데이터가 두 개의 클래스로 나누어지는 경우에요. 이 문제는 t∈0,1로 정의하는데 C1에 속하는 경우 t =1로, 아닌 경우는 t = 0 으로 처리해요.
1-to-K binary coding scheme란 K개의 클래스를 가지는 경우인데요. 이때는 t를 간단하게 K의 크기를 가지는 이진 벡터로 정의해요. 예를 들어 K = 5이고 클래스가 2에 속하는 경우 타겟 값 t를 표현하는 방법은 t = (0,1,0,0,0)T가 되죠.
위와 같은 분류 문제를 해결하는 것에는 3가지 접근법이 있어요. 이 중에서 가장 간단한 접근법은 판별함수(discriminant function)를 사용하는 것이에요. 판별함수는 입력 벡터 x를 받아 K개의 클래스 중 하나의 클래스를 반환하는 함수에요. 이 중 선형 판별(linear discriminant)에 대하여 2-class 문제를 통해 알아봐요.
위의 식에서 w는 가중치 벡터(weight vector)이고 w0는 bias(원점을 기준으로한 절편 또는 오프셋, 편향)라고 해요. 보통 2-class 문제에서는 y(x) ≥ 0 인 경우 이를 C1으로 분류하고 아닌 경우 C2로 분류하는데요. 따라서 이때의 결정 경계면(boundary)은 y(x) = 0임을 알 수 있어요. 이제 임의의 두 점 xA와 xB가 결정 경계면 위에 있다고 가정해봐요. 이때에는 y(xA) = y(xB) = 0을 만족해요. 따라서 wT(xA - xB) = 0을 만족하게 되고 여기서 w는 결정 경계에 대해 수직(orthogonal)임을 알 수 있어요. 결정 경계에서 식을 전개하면 다음의 식을 얻을 수 있어요.
자 이제 D=2 라고 할 때의 그림을 살펴보도록 할게요.
임의의 한 점 x로부터 결정 경계면에 수직으로 내린 지점을 x⊥라고 할게요. 이 경우 다음과 같은 식이 성립돼요.
이제 K > 2인 상황, 즉 클래스의 개수가 2보다 큰 상황을 생각해볼까요?
사실 K-class 문제는 2-class 문제를 여러개 조합해서 해결할 수 있는데요. 만약 K-1개의 2-class 분류기가 있다고 가정하면 K개의 클래스를 분류하는 것이 가능해요.
왼쪽 그림은 3개의 클래스를 구별하기 위해 2개의 2-class 분류기로 3개의 영역을 나누고 있어요. 하지만 이때 녹색으로 칠한 부분이 생기는데 이 영역은 판정할 수가 없어요. 이와 유사하지만 좀 더 다른 방식으로 오른쪽 그림과 같은 방법도 생각해 볼 수 있는데요. K(K-1) / 2 개만큼의 분류기를 써서 K클래스를 분류하는 것이에요. 하지만 이 경우에도 녹색으로 칠한 부분은 판정불가에요. 이와 같이 판정할 수 없는 영역의 문제를 해결하기 위해서는 아래의 식을 사용하면 돼요.
이런 판별식을 사용하는 경우 결정 구역은 단일 연결(singly connected)로 이루어지며 그 모양은 볼록(convex)하게 나타나요.
이제 선형 판별(linear discriminant)을 위한 세 가지 방법인 최소제곱법, 피셔의 선형 분류기, 퍼셉트론 알고리즘을 살펴봐요. 저번 수업시간에 우리는 최소제곱법을 이용하여 문제를 풀었는데 K 클래스 분류 문제도 이 방식으로 해결할 수 없을까요?
로지스틱 회귀 분석은 회귀분석의 한 종류인데요. 분류 문제에 사용하는 알고리즘이에요. 로지스틱 회귀 분석은 분류하려는 범주(카테고리)가 성공/실패, 예/아니오, 남/여 등 2가지 범주로 나눠진 경우에 적용된다고 해요. 다항 로지스틱 회귀 분석이라는 것도 있지만 일반적으로 위와 같은 이항 로지스틱 회귀 분석을 말해요.
위의 그림에서 녹색 선은 로지스틱 회귀 분석, 보라색 선은 최소 제곱법을 사용한 것인데요. 왼쪽의 경우는 둘 다 좋은 결과를 보여주고 있지만 오른쪽 그림과 같이 특이값(outlier)이 등장한 경우 최소 제곱법은 문제가 있는 것을 알 수 있어요.
3차원 클래스 분류 문제를 살펴볼까요?
왼쪽이 최소 제곱법, 오른쪽이 로지스틱 회귀 분석법인데요. 위에서 봤던 것과 마찬가지로 3개의 클래스 분류에 있어서 최소 제곱법의 결과는 문제가 있어요. 왜냐하면 선형 분류 모델에서는 타겟 벡터가 가우시안 조건부 분포를 가지고 있다는 가정을 하고 있기 때문이에요. 이진 값 형태의 타겟 값을 가진 경우 이러한 가정이 잘 맞지 않는 것은 어찌 보면 당연한 일이라고 할 수 있어요. 최소 제곱법은 판별식으로 원하는 값을 반드시 찾아낼 수 있지만 특이치에 대해 너무 민감하기 때문에 실제 응용에서는 최소 제곱법 보다는 좀 더 강건한 모델을 선호한다고 하네요!
이번 수업에서 배운 내용은 주로 수식을 이해하고 그것을 증명하는 내용이었기 때문에 이해하기 어려웠어요. 이번주 실습 내용은 코드가 길어서 그 코드를 이해하는 것이 관건일 것 같아요. 그리고 이번주 과제는 Binary Classification과 Multiclass Classification인데요, 실습 코드를 이해하지 못한다면 어려운 과제가 될 수도 있을 것 같아요. 과제 풀기 전에 실습 문제 공부를 꼭 하시면 좋겠어요!
* 이 글은 AI스쿨 - 인공지능 R&D 실무자 양성과정 2주차 수업에 대해 수강생 최유진님이 작성하신 수업 후기입니다.