[DL] XOR Problem

미남로그·2021년 12월 18일
0

DL

목록 보기
4/5

목차

  1. XOR Problem
    • Motivation
    • Perceptron
    • Matrix Multiplication
  2. XOR and Simple Neural Network


1. XOR Problem - Motivation

x1,x2x_1, x_2 의 축을 갖고 있는 평면 4개의 dots를 생각해보자.

(0,0)
(1,0)
(0,1)
(1,1)

이때 단 한 개의 직선을 이용해서 오른쪽 그림과 같이 O, X로 나누어 보자

→ 선형 분류

1, 2번째는 직선 하나로 쉽게 분리할 수 있지만, 3번째 그림은 분류하기 어렵습니다.

세 번째 평면의 경우는?

그림의 X & O를 단 하나의 직선으로 나타낼 수 있을까?

없습니다. 이 문제를 XOR problem이라 부릅니다.



2. XOR Problem - Solution

X를 숫자 0, O를 숫자 1로 재지정한 후 아래의 표를 참고해 봅니다.

결과값(Output)이 숫자로 이루어진 경우에는 파라미터를 이용하여 0과 1을 도출해 낼 수 있다.

→ Perceptron

3번째 평면의 결과값인 (0,1,1,0)은 double layer perceptron을 이용하여 해결이 가능하다.

이제 (x1,x2x_1, x_2)를 (0,00,0)으로 (w1,w2,b1w_1, w_2, b_1)을 (3,3,-4)로,

(w1,w2,b2w_1',w_2',b_2)을 (4,4,2-4,-4,2)로 그리고 (w1,w2,b3w_1'',w_2'',b_3)을 (6,63-6,-6-3)으로 놓아보자

마찬가지로,

(x1,x2x_1, x_2) → (0,10,1),
(x1,x2x_1, x_2) → (1,01,0),
(x1,x2x_1, x_2) → (1,11,1)

와 같이도 설정이 가능하다.

퍼셉트론의 계산 과정을 아래를 참고



3. XOR Problem - Matrix multiplication

그전에 행렬에 대한 개념과 곱셈의 방법을 알고 있어야 합니다.

머신러닝에서는 행렬에 대해 잘 알고 있는 것이 아주 중요한데요.

그 이유는 데이터를 표현하는데 있어 행렬 형식으로 데이터를 표현하는 것이 일반적이기 때문입니다.

행과 열로 이루어진 어떠한 수, 식을 표현한 것을 행렬이라 하며,

행렬의 곱셈은 위의 이미지를 참고해주세요.

y1=w1x11+w2x12+by_1 = w_1 * x_{11} + w_2 * x_{12} + b
y2=w1x21+w2x22+by_2 = w_1 * x_{21} + w_2 * x_{22} + b
y3=w1x31+w2x32+by_3 = w_1 * x_{31} + w_2 * x_{32} + b

이것을 행렬로 나타내면 어떻게 될 것인가?

해당 연산과정을 통해 어떻게 output이 나오는지의 과정을 이해하면 좋을 것 같다.

profile
미남이 귀엽죠

0개의 댓글