다층 퍼셉트론

패턴인식 & 기계학습 2014. 10. 24. 14:55

다층 퍼셉트론이 퍼셉트론 모델의 한계를 어떻게 극복할까?

간단한 예제로 살펴 볼 수 있다.

 

                                           [그림1] 다층 퍼셉트론 모델


하나의 퍼셉트론 은 네개의 샘플 중에서 세 개만 맞출 수 있다. 이 경우 75%의 인식률밖에 되지 않는다.

[그림 1]을 보면 두 개의 결정 직선을 이용해서 분류하는 모습을 볼 수 있다.

d1의 +영역과 d2의 +영역이 겹친 곳은 w1로 분류하고, 나머지 영역은 w2로 분류한다.

첫번째 단계에서 두 개의 퍼셉트론 d1과 d2를 이용하여 특징 벡터를 새로운 공간으로 매핑한 후,

새로운 공간에서 하나의 퍼셉트론 d3을 이용해서 최종 분류한다.


분류 결과는 [그림 2]와 같다.

       [그림 2] 다층 퍼셉트론 분류 결과


[그림 2]의 결과를 보면 같은 형태의 x1과 x4는 -1로 분류되었고, x2과 x3은 1로 분류됨을 확인할 수 있다.


                                               [그림 3] 다층 퍼셉트론 구조


[그림 3]을 보면 다층 퍼셉트론 구조를 볼 수 있다. 다층 퍼셉트론은 기본 퍼셉트론이 갖는 입력층, 출력층

이외에 은닉층을 갖는다. 은닉층은 값을 전달하는 기능만 한다. 신경망의 출력은 출력 벡터 o라고 하면

입력 x를 받아 o를 출력하는 함수로 간주 할 수 있다. 

수식으로 표현하면, 

       이다.


다층 퍼셉트론은 활성함수 τ()를 위해 퍼셉트론이 사용했던 계단 함수 대신 시그모이드라는 비선형

함수를 사용한다.

           

                                                                          [그림 4] 시그모이드 함수


다층 퍼셉트론 학습

지금까지는 신경망이 어떤 방식으로 동작하는지에 대한 정리를 하였다. 이제 신경망을 어떻게 어떤 방식으로

만드는지에 관해 알아보자. 다층 퍼셉트론(MLP)의 정의는 다음과 같다.

다층 퍼셉트론(Multi-Layer Perceptron)은 훈련집합 X = {(x1,t1), (x2,t2), ..., (xn,tn)}이 주어졌을 때, 

이들을 분류하는 다층 퍼셉트론(즉, Θ ={u,v})을 찾는것이다. 

(xi,ti)에서 xi는 특징벡터이며, ti는 목적벡터(target vector)로서 xi∈wj이면 ti=(-1,...1, ..., -1)이다.

 j번째 요소만 1을 갖고 나머지 요소는 -1을 갖는다.

 

현재 설정되어 있는 Θ ={u,v}의 품질을 측정할 수 있는 함수를 정의해야 한다.

하지만 현재 품질 측정 함수는 정의되지 않았다. 따라서 특정함수를 정의해야 한다.

다시말하면, 학습 하는 과정은 품질 측정함수를 정의하는 과정이다.

[그림 5]를 보면 여러층의 퍼셉트론 모델에서 입력값을 Θ(.)를 거쳐 출력값을 얻는다.

기대한 값과 다르면 Θ(.)를 수정하며 학습한다. 따라서 Θ(.)함수는 다른 의미에서는 오류 검출 함수이다.


   

                  [그림 5] 다층 퍼셉트론의 입력값, 출력값, 기대값


학습이란 E(Θ)를 최소로 하는 Θ의 값는 찾는과정이다.

                  


오류를 계속 줄여나가는 쪽으로 매개변수 Θ를 수정해 나가야 한다.

이 작업은 내리막 경사법(gradient descent)라고 한다. 



위 식은 내리막 경사법을 나타낸 것이다. 미분으로 오류가 줄어드는 방향을 알아내 Θ에 마이너스 해주면

오류를 줄이는 방향으로 갱신한 것이 된다. ρ는 학습률 로써, 갱신하는 양을 조절해 준다.


1
2
3
4
5
6
7
8
9
10
11
12
// 다층 퍼셉트론(MLP) 학습 알고리즘
// 입력 : 훈련 집합 X = {(x1,t1),(x2,t2), ..., (xn,tn)}, 학습률 ρ
// 출력 : 가중치 u, v
 
u와 v를 초기화한다.
repeat {
   for(X의 샘플 각각에 대해) {
      [식1]과 [식2]를 계산한다.
      ∂E/∂V 와 ∂E/∂u를 계산한다.
      [식3]과 [식4]로 새로운 u와 v를 계산한다.
   }        
}until(stop-condition);


다층 퍼셉트론(MLP) 학습 알고리즘에서 9행이 사용할 규칙 (∂E/∂V 와 ∂E/∂u를 계산)


이것을 일반 델타 규칙(generalized delta rule)이라고 부른다.



이제 학습이 완료된 다층 퍼셉트론을 이용해 새로운 모델을 인식시켜보자.


3~12행을 통해 전방계산으로 얻은 벡터 o = (o1, o2, ... , om)을 조사하여 가장 큰 값을 갖는 요소에 해당하는

부류를 분류 결과로 출력한다. 신경망 학습은 전방계산과 오류 역전파 과정을 반복하므로 시간이 오래 걸리지만

인식은 전방계산을 한번만 실행하면 되므로 빠르게 작동한다.



참조 : 컴퓨터비전, 패턴인식(오일석)

'패턴인식 & 기계학습' 카테고리의 다른 글

신경망 이론  (0) 2014.11.04
Boltzmann machine(볼츠만 머신)  (0) 2014.11.04
결정 트리 분기  (0) 2014.10.25
신경망, 퍼셉트론  (0) 2014.10.24
기계학습 기초(학습)  (0) 2014.10.24

신경망, 퍼셉트론

패턴인식 & 기계학습 2014. 10. 24. 10:31

그녀(her)란 영화를 보면 OS1이라는 운영체제가 나온다. 주인공 테오도르가 OS1을 처음 설치한 이후에, OS1은 

100분의 2초만에 '아기 이름 짓는 법'이라는 책에 나오는 18만개의 이름 중 하나를 선택해 자신의 이름으로 삼는다.

이 영화에서는 운영체제는 "또 하나의 의식" 이라고 소개한다.


        

                      [그림 1] 그녀(her) 영화속의 한 장면


데이터를 어떻게 분류할 것인가를 놓고 많은 기계학습 알고리즘이 등장했다. '의사결정나무' 혹은 베이지언 확률로 

접근하는 '베이지언망', '서포트벡터머신(SVM)', '신경망'이 대표적이다.


신경망이란 기존의 뇌 구조를 컴퓨터로 모방하려는 발상으로, 신경들을 모아 신경망 모델로 확장시키는 개념이다.

초기 신경망은 선형 분류기에 불과하다는 한계로 신경망 연구는 한동안 빛을 보지 못했다. 하지만 최근 퍼셉트론의 

원리를 계승하고, 다층 퍼셉트론이 등장하며 신경망 연구는 새롭게 부활하기 시작했다. 

가장 간단한 퍼셉트론 모델부터 살펴보자.


퍼셉트론

퍼셉트톤(perceptron)의 구조는 [그림 2]와 같다. 여러개의 입력층을 모아 하나의 출력을 낸다.


        

                          [그림 2] 퍼셉트론 구조 (1)


하나의 출력은 이진 형태의 출력이다. 1과 -1을 출력하는데 [그림 3]의 c형태와 같다.

각 에지는 가중치를 가지며, 여러개의 입력을 받아 [그림3]의 b형식으로 각각의 에지의 가중치와

입력값을 계산해 활성함수에서 1과 -1을 출력한다.


                     [그림 3] 퍼셉트론 구조 (2)


활성함수 τ는 activation function으로 불리며 [그림 3] c와 같은 계단 함수(step function)를 사용한다.


동작 과정의 예는 다음과 같다.

2차원 공간 상에 [그림 4] a와 같은 네 개의 샘플 x1, x2, x3, x4가 존재한다고 할때,

x1는 w2에 속함을 볼 수 있다.([그림 4]c)

샘플과 부류 값으로 표시하면 x1 = (0,0), t1=-1, x2=(1,0), t2=1, x3=(0,1), t3=1, x4=(1,1), t4=1 이다.

이때 ti는 xi가 속하는 부류 정보이다.(w1에 속하면 1이고, w2에 속하면 -1)


                                 [그림 4] 퍼셉트론 동작 예제


OR게이트 동작의 분류 문제로 간주할때, 이 퍼셉트론은 w=(1,1), b=0.5(가중치)를 가진다.



위와 같은 방식으로 x3은 1을 출력함을 볼 수 있다.


퍼셉트론 식을 정리하면 다음과 같다.


이 퍼셉트론 모델은 선형 분류기(linear classifier)에 해당한다. 특징 공간을 둘로 나누는 것이다.

이 경계는 2차원에서는 직선, 3차원에서는 평면, 4차원에서는 초평면(hyperplane)이라고 부른다.

하지만 여기서 문제가 발생한다.


                 [그림 5] 선형분리 가능 모델과 불가능 모델


[그림 5]를 보면 a의 경우 파란선으로 선형분리가 가능하다. 하지만 b를 보면 선형 분리가 불가능함을

볼 수 있다. 이러한 한계로 한동안 빛을 보지 못한 퍼셉트론 모델은 퍼셉트론을 확장한 다층 퍼셉트론이란

아이디어가 나온 이후로 신경망 연구를 살릴 수 있었다. 


다음 포스트에서 다층 퍼셉트론 모델을 살펴본다.


참조 : 네이버케스트(딥러닝 - http://navercast.naver.com/contents.nhn?rid=122&contents_id=64183) 

         컴퓨터비전(오일석)

'패턴인식 & 기계학습' 카테고리의 다른 글

신경망 이론  (0) 2014.11.04
Boltzmann machine(볼츠만 머신)  (0) 2014.11.04
결정 트리 분기  (0) 2014.10.25
다층 퍼셉트론  (2) 2014.10.24
기계학습 기초(학습)  (0) 2014.10.24