분류 분석(Classification)

이제 우리는 머신 러닝에서 예측을 넘어서, 분류(Classification) 라는 주제를 다뤄볼 차례다. 그중에서도 가장 기본이 되는 문제는 이진 분류(Binary Classification) 이다. 이진 분류란, 어떤 데이터가 두 가지 중 하나에 속하는지를 판별하는 것이다. 예를 들어 이메일이 '스팸인지 아닌지', 사진 속 동물이 '개인지 고양이인지', 혹은 어떤 고객이 '구매를 할 것인지 말 것인지'를 판단하는 문제들이 모두 이진 분류에 해당한다.

이진 분류 또한 지도 학습의 한 종류이다. , 정답이 주어진 데이터를 먼저 학습한 후, 새로운 데이터가 들어왔을 때 그것이 어떤 그룹에 속하는지를 예측하는 것이다. 예시로 가장 단순한 형태의 2차원 데이터, (X, Y)로 구성된 그래프를 떠올려 보자. 그래프의 위쪽에는 'X'로 표시된 데이터들이 있고, 아래쪽에는 'O'로 표시된 데이터들이 있다고 하자. 우리가 원하는 것은 이 'X' 'O' 사이를 나누는 경계선을 하나 찾는 것이다. 그렇게 경계를 나누면, 새로운 데이터가 어디에 위치하느냐에 따라 그것이 X 그룹인지, O 그룹인지를 판단할 수 있게 된다.

이때 사용하는 것이 바로 1차 선형 함수, y = Wx + b라는 식이다. 우리가 앞서 선형 회귀에서 살펴봤던 개념과 같다. 다만 여기서는 예측한 값 자체가 중요한 것이 아니라, 그 값이 기준 이상인지 이하인지를 보고 어느 쪽 그룹에 속하는지를 판단한다. 다시 말해, y값이 어떤 임계값보다 크면 X, 작으면 O로 분류하는 방식이다.

분류분석

하지만 여기서 한 가지 새로운 개념이 등장한다. 바로 활성 함수(Activation Function) 라는 것이다. 선형 함수는 직선이기 때문에, 이 함수만으로는 복잡한 분류 문제를 해결하기 어렵다. 그래서 중간에 한 번, 데이터를 변형해주는 과정을 거친다. 그 역할을 해주는 것이 활성 함수다.

그중에서도 시그모이드(Sigmoid) 함수는 가장 많이 사용되는 기본적인 활성 함수이다. 시그모이드 함수는 어떤 숫자가 입력되든, 그 값을 0 1 사이의 값으로 바꿔준다. 예를 들어 입력이 매우 작으면 0에 가깝고, 매우 크면 1에 가까운 값이 나온다. 그리고 중간값일수록 0.5 부근에 위치하게 된다.

이런 특성 덕분에 시그모이드 함수는 이진 분류 문제에서 매우 유용하게 사용된다. 예를 들어, 1차 선형 함수 y = Wx + b의 결과값을 시그모이드 함수에 넣으면, 그 결과는 0 1 사이의 어떤 수가 된다. 이 값을 확률처럼 해석할 수 있다. 예를 들어 시그모이드 함수의 출력값이 0.9라면, 이 데이터는 X 그룹에 속할 가능성이 매우 높다는 뜻이고, 0.1이라면 O 그룹에 속할 가능성이 높다는 뜻이다. 그래서 마지막에는 이 값을 기준으로 0.5보다 크면 X, 작으면 O처럼 단순하게 나누어 결정을 내린다.

이처럼 시그모이드 함수는 선형 함수의 결과를 0 1 사이의 범위로 압축해주며, 복잡한 세상을 좀 더 명확하게 이진적으로 나눌 수 있게 도와주는 역할을 한다. 머신 러닝 모델이 실제로 '이건 X', '이건 O'라고 판단하는 그 순간, 시그모이드 함수가 중요한 역할을 하고 있는 것이다.

결론적으로 이진 분류 문제는

ž   X O로 구분된 데이터를 학습해서,

ž   그 둘을 나누는 경계선(선형 함수)을 찾고,

ž   그 결과를 시그모이드 함수로 변환하여

ž   예측값을 0 또는 1로 나누는 과정으로 구성된다.

복잡해 보일 수도 있지만, 결국은 간단한 선형 수식과 하나의 변환 함수만으로 데이터의 그룹을 구분하는 매우 직관적인 방법이다. 이를 바탕으로 머신 러닝은 점점 더 복잡한 분류 문제도 해결할 수 있는 기반을 만들어 간다.

Tip : 선형(Linear)과 비선형(Non Linear)의 차이

선형(Linear) 데이터는 직선처럼 일정한 패턴을 가지는 데이터다. 예측이 쉽고 단순하다. 예를 들어, x 1 늘 때마다 y 2씩 늘어난다면 이는 선형 관계다.

반면 비선형(Non-Linear) 데이터는 곡선이나 복잡한 형태로 분포되어 있어 직선 하나로는 설명할 수 없다. 현실의 대부분의 데이터는 비선형적이며, 예측이 어렵다.

머신 러닝에서는 먼저 선형 함수로 계산한 뒤, 활성 함수(Activation Function) 를 통해 비선형성을 추가한다. 이 과정을 통해 더 복잡한 패턴도 모델링할 수 있게 된다.

머신러닝을 처음 공부할 때 가장 먼저 마주하게 되는 벽은 수많은 수학 공식들이다. 갑자기 등장하는 기호들과 복잡해 보이는 수식들 때문에 당황하거나 겁을 먹기 쉽다. 하지만 프로그래머의 입장에서 머신러닝을 배우려는 목적은 대부분 동작 원리와 사용 방법을 이해하는 데 있다.

실제로 머신러닝의 기초를 이해하기 위해 반드시 고급 수학이 필요한 것은 아니다. 사칙연산, 로그, 그리고 기초적인 행렬 연산 정도만 이해하고 있어도 머신러닝의 개념을 잡는 데는 충분하다. 오히려 처음부터 수식에 집중하기보다는, 수식이 표현하는 그래프의 모양과 의미에 주목하는 것이 훨씬 효과적이다. 수학 식보다는 그것이 무엇을 의미하는지에 집중하는 태도가 중요하다.

이진 분류 함수

예를 들어, 이진 분류 함수는 수학적으로 표현하면 다소 복잡하게 보일 수 있지만, 본질은 두 종류의 데이터를 구분하는 경계선 하나를 찾는 것이다. 이 과정에서 사용하는 활성 함수는 시그모이드 함수뿐만 아니라 ReLU, tanh(쌍곡탄젠트) 같은 다양한 함수들이 존재한다. 이 함수들은 데이터를 단순한 직선으로 설명하지 못할 때, 그 안에 비선형성을 추가해주어 더 정교한 분류가 가능하도록 도와준다.

이진 분류에서 사용되는 개념들은 이후에 배우게 될 인공신경망(Artificial Neural Network) 의 핵심 구성 요소이기도 하다. , 지금 배우는 내용이 나중에 훨씬 더 큰 그림을 이해하는 데 밑바탕이 된다는 뜻이다.

처음부터 머신러닝이나 딥러닝을 어렵고 복잡한 것으로 느끼기보다는, 지금처럼 간단한 개념부터 차근차근 접근해 나가다 보면 누구나 자연스럽게 그 원리를 이해하고 활용할 수 있게 된다. 가장 중요한 것은 포기하지 않고 계속 보는 것, 그리고 모든 것을 다 이해하려 하지 않아도 괜찮다는 마음가짐이다. 그렇게 한 걸음씩 나아가다 보면, 어느새 복잡하게 느껴졌던 개념들이 익숙해질 것이다.


댓글 쓰기

Please Select Embedded Mode To Show The Comment System.*

다음 이전