다층 퍼셉트론

패턴인식 & 기계학습 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