머신 러닝! 왜 출발은 항상 XOR인가?

안녕하세요. 언제나 휴일에 언휴예요.

머신 러닝을 학습하기 위해 책을 사거나 강의를 들어보면 출발은 XOR일 때가 대부분이예요.

왜 그럴까요?

이번 강의에서는 XOR를 시작으로 머신 러닝 교육을 출발하는 이유를 알아볼게요.

퍼셉트론(perceptron) 알고리즘
OR 연산 예
XOR 연산 예

퍼셉트론(perceptron) 알고리즘

인공 신경망 알고리즘을 빼고 머신 러닝을 설명할 수는 없을 거예요.

인공 신경망 알고리즘 중에 퍼셉트론(perceptron) 알고리즘이 있어요. 1957년에 프랑크 로젠블라크가 고안한 것이죠. [위키백과 퍼셉트론]

퍼셉트론 알고리즘을 간략하게 소개하면 다음과 같습니다.

입력 인자에 의해 출력 결과를 결정한다는 가정에서 출발을 합니다.

그리고 입력 인자가 출력 결과에 어떠한 영향을 끼치는지 가중치를 구합니다.

입력 인자 이외에 결과를 판단하기 위한 임계치를 구합니다.

이 임계치보다 크거나 같으면 참, 작으면 거짓으로 판별한다는 거예요.

OR 연산 예

or 연산을 예로 들어볼게요.

OR 연산

OR 연산은 두 개의 입력(x1, x2) 중에 하나라도 참이면 결과(Y)가 참인 연산이죠.

그림에서 두 개의 입력을 축으로 하는 평면에 입력할 수 있는 4가지 경우를 점으로 표현했어요.

이 때 결과가 참인 집단과 거짓인 집단을 구분할 수 있는 직선을 찾습니다.

이 직선보다 크거나 같으면 참인 집단, 작으면 거짓인 집단 형태로 구분하는 것이죠.

판별식

AND 연산도 아래 그림처럼 하나의 직선으로 판별할 수가 있어요.

AND 연산

XOR 예

xor는 하나의 직선으로 판별할 수가 없어요.

XOR 연산

물론 판별할 수 있는 곡선은 있습니다. 이를 찾는 것이 직선을 찾는 것보다 어렵다는 것이죠.

XOR 연산을 판별하는 곡선

이처럼 XOR의 판별식을 구하기 위해서는 선형 분류를 할 수 없는 것을 알 수 있습니다.

 

알고리즘에서도 선형 영역을 구분하기 위한 단층 퍼셉트론에서 비선형 영역을 구분하기 위한 다층 퍼셉트론이 나왔죠.

머신 러닝에서도 이미 정답을 알고 있는 문제지만 원리를 설명하기 위해 XOR를 출발점으로 선택하는 것은 관련 알고리즘 연구의 역사와 같이 하는 것이 아닌가 합니다.