Introduction to DNNs

김카누·2024년 7월 23일

Aimers

목록 보기
8/8
post-thumbnail

학습 목표: 딥러닝의 시작이 되는 퍼셉트론을 알아보고 XOR 문제를 고민해보자

  1. 인공 신경망을 어떻게 구성하는가
  2. 퍼셉트론의 계산 방법
  3. 퍼셉트론의 문제점 -> XOR problem

Deep Neural Networks

1. 인공 신경망

사람의 뇌에서 뉴런이 정보를 처리하는 방식을 모사하여 인공 신경망을 구성한다.
하나의 뉴런은 다른 뉴런들로부터 각각 전기 신호를 입력 받고 특정한 값을 곱하여 변환된 전기 신호(정보)를 다음 뉴런으로 전달한다.

factorio thumbnail (a) 사람의 뉴런, (b) 인공 뉴런 "https://arxiv.org/pdf/1706.05933"

인공 뉴런을 보면 x0,x1,x2x_0,x_1,x_2의 입력 데이터를 받아 weight를 곱하고 상수값 b를 더하여 새로운 신호를 생성한다. 이 신호는 활성화 함수를 지나 출력값을 다음 뉴런에 전달하게 된다.
같은 계층에 여러개의 뉴런이 구성된 것을 Layer라고 부르며 입력층과 출력층을 제외한 중간 Layer들은 hidden layer라 부른다.

2. 퍼셉트론 (Single-Layer)

위에서 뉴런의 동작을 수학적으로 모델링한 것을 퍼셉트론이라 한다.

  • Hard thresholding function
    y={1,  w0+w1x1+w2x200,  otherwisey=\begin{cases}1\quad,\; w_0+w_1x_1+w_2x_2\ge0\\ 0\quad,\;otherwise \end{cases}

hard thresholding을 활성 함수로 갖는 퍼셉트론이 논리 연산을 수행하는 과정을 살펴보자. 인풋과 아웃풋 데이터는 0과 1의 boolean이고 논리 연산 다음과 같다.

Input: x0=0,  x1,x2x_0=0,\;x_1, x_2
Output: yy

  • AND gate: 두 값이 모두 1이어야 1을 출력, 아니면 0

Weights: w0=0.8,  w1=0.5,  w2=0.5w_0=-0.8,\;w_1=0.5,\;w_2=0.5

x1x_1x2x_2iwixi\sum_i w_ix_iyy
000.8-0.80
010.3-0.30
100.3-0.30
110.20.21

  • OR gate: 두 값중 1이 하나라도 있으면 1 아니면 0

Weights: w0=0.3,  w1=0.5,  w2=0.5w_0=-0.3,\;w_1=0.5,\;w_2=0.5

x1x_1x2x_2iwixi\sum_i w_ix_iyy
000.3-0.30
010.20.21
100.20.21
110.70.71

두 연산에 대해서 그래프로 살펴보면 결정 경계를 확인할 수 있다.

3. XOR problem & 다층 퍼셉트론 (MLP)

  • XOR gate: 두 값이 다르면 1 아니면 0
x1x_1x2x_2yy
000
011
101
110

그래프에서 보여준 것처럼 하나의 결정 경계를 사용하여 XOR문제를 풀 수 없다. 그렇다면 어떤 방법이 가능할까?

  • 2개의 Layer를 사용하면 결정 경계를 위 아래 2개로 구분지을 수 있다.

single-layer에서 해결할 수 없었던 XOR 문제를 Multi-Layer로 확장하여 풀어보자.

x1x_1x2x_2NAND(1)OR(2)yy AND(1,2)
00100
01111
10111
11010

위와 같이 NAND와 OR에 대해서 각각 input값을 계산하고 나온 결과를 AND로 처리하면 XOR을 해결할 수 있다. weight를 통해 더 자세히 알아보면

x1x_1x2x_2iwixi\sum_i w_ix_i(AND)iwixi\sum_i w_ix_i(OR)yy
000.8(0)-0.8(0)0.3(0)-0.3(0)0
010.3(0)-0.3(0)0.2(1)0.2(1)0
100.3(0)-0.3(0)0.2(1)0.2(1)0
110.2(1)0.2(1)0.7(1)0.7(1)1

AND와 OR의 결과를 다음 Layer의 퍼셉트론의 인풋으로 생각하면

  • New Perceptron's Weights:
    w0=0.5,  w1(AND)=0.8,  w2(OR)=0.8w_0=-0.5,\;w_1(AND)=-0.8,\;w_2(OR)=0.8
ANDANDORORiwixi\sum_i w_ix_iyy
000.5-0.50
01+0.3+0.31
01+0.3+0.30
110.5-0.50

AND의 weight가 음수로 나타난 것은 NAND를 구현한 것과 같다.

정리

  • 인공 신경망은 사람의 뉴런이 동작하는 원리를 모방한 것이고 퍼셉트론은 수학적 모델로 구현한 것이다.
  • 단층 퍼셉트론으로 논리 연산을 수행할 수 있었지만 XOR 문제는 해결할 수 없다.
  • 다층 퍼셉트론으로 선형성에서 비선형 문제까지 확장해 해결할 수 있다.
profile
데이터를 해석하기 위한 방법을 고민하는 분석 블로그입니다.

0개의 댓글