본문 바로가기

심층 학습 (아인 굿펠로, 오슈아 벤지오, 에런 쿠빌)

6.1 XOR 의 학습

XOR 함수는 두 이진수 x_1, x_2 에 대한 연산이다. 두 이진수 중 정확히 하나가 1과 같으면 1을 돌려주고 그렇지 않으면 0을 반환한다. 

XOR 함수가 여기서 학습할 목표 함수 y = f'(x) 에 해당한다. 이 예제의 모형은 함수 y = f(x;theta) 를 제공하며, 학습 알고맂므은 f  가 f* 와 최대한 비슷해지도록 매개변수 theta 를 적합시킨다.

은닉 단위가 두 개인 은닉층 하나가 있는 간단한 순방향 신경망으로 이 문제를 해결할 수 있다. 이 순방향 신경망의 은닉층은 은닉 단위들을 담은 벡터 h 로 구성된다. 신경망의 제 1층인 은닉층은 함수 f(x;w, c) 를 계산하며, 긏 ㅜㄹ력이 출력층에 전달된다. 

 

선형으로 이뤄진 층들을 구성 시 선형으로만 표현되므로 특징들을 비선형 함수를 이용해서 서술해야 마땅하다. 

대부분의 신경망은 학습된 매개변수들로 제어되는 어파인 변환 다음에 고정된 비선형 함수를 적용해서 특징들을 서술한다. 

후자의 비선형 함수를 활성화 함수라고 부른다. 

현세대의 신경망에서는 기본적으로 정류 선형 단윈가 권장된다. 

이러한 논의를 종합해서 신경망을 공식으로 표현,

W = [[1,1],[1,1]]

c = [[0],[-1]]

w = [[1],[-2]]

입력 X 는 이진 입력 공간의 네 점을 모두 담은 설계 행렬

X = [[0,0],[0,1],[1,0],[1,1]]

입력 행렬에 제 1층의 가중치 행렬을 곱한다

XW = [[0,0], [1,1], [1,1], [2,2]]

여기에 치우침 벡터 c 를 더한다.

[[0,-1], [1,0], [1,0], [2,1]]

이 공간에서 모든 견본은 기울기가 1인 직선에 놓여있다. 

각 견본에 대한 h 의 값을 산출하기 위해 다음과 같은 정류 선형 변환을 적용한다.

[[0,0], [1,0], [1,0], [2,1]]

이 변환을 적용하면 견본들 사이의 관계가 변한다. 

마지막으로 가중치 벡터 w 를 곱한다.

[[0],[1],[1],[0]]

이렇게 하면 신경망은 입력 행렬의 모든 견본에 대해 정확한 답을 낸다.