수업에서 배운 내용으로 인공지능개론(한빛미디어)와 차이가 있다.

LMS알고리즘 역시 수업에서 배운 내용이었으므로 미리 읽어봄이 좋겠다.

또한 어느정도 공부를 한 사람을 전제로 하기 때문에 모르는 단어가 나올경우 찾아보길 바란다.


수업자료 pdf를 첨부한다.

지능(5)_역전파.pdf


퍼셉트론을 다룰 때, 그 한계에 대해서 언급하였으며 MLP는 xor같은 비선형적인 문제를 해결할 수 있다.

아래는 역전파 알고리즘을 적용시킨 다층신경망(MultiLayerPerceptron)이다

신경망 : 입력층, 1층의 은닉층, 출력층으로 이루어진 1-1-1 MLP 

학습방법 : 역전파 알고리즘(Back Propagation)


중요한 컨셉은 아래와 같다.



역전파 신경망의 학습 알고리즘은 두 단계로 이루어진다.

첫째로 훈련 입력 패턴을 신경망의 입력층에 전달하고 신경망은 출력층에서 출력 패턴이 생성될 때까지 층에서 층으로 입력 패턴을 전파한다.(이 전파과정에서 활성화 함수, 가중치 등이 적용된다.)

출력 패턴이 목표 패턴과 다를 경우 그 오차를 계산하고 출력층에서 입력층까지 신경망을 따라 거꾸로 전파한다. 이 오차의 전파과정에서 가중치가 수정된다.


제일 위의 1-1-1 MLP모델을 예로 설명해 보자. 각 층의 유닛(Unit)에 대해 i,j,k의 number를 사용하기로 한다.

입력층의 각 뉴런의 값을 X11,X12...X1i로 표현한다.

은닉층의 뉴런의 값은 가중치와 bias를 반영하여 아래와 같이 표현된다.


위에서 언급하는 각 은닉층의 각 뉴런을 S21...S2j로 표현하고 이 뉴런에 활성화 함수를 적용시킨 값이 Yj(Xj)이다.

이는 출력층에서도 똑같이 적용되어 출력층의 각 뉴런의 값은 아래와 같다.


활성화 함수를 f()로 표현했을 때 각 뉴런의 출력은 아래와 같다.


역전파 알고리즘에서 가중치 갱신의 방법은 다양하게 존재한다. 여기에서 소개하는 방법은 오차 기울기(error gradient)를 다루는 Gradient descent 알고리즘이다. 개념적인 부분은 스스로 찾아보기 바란다.


Gradient descent알고리즘에서 가중치 정정 규칙은 아래와 같다.

왜 E를 위와같은 식으로 했는지는 아래의 과정을 거쳐나가면 알게된다. 우선 ek를 제곱한 이유는 오차가 +,- 어느 방향으로 확장해 나가는가와 상관없이 오차폭 자체를 줄여나가는 것이 목적이기 때문이다.


가중치의 개념을 제대로 이해하고 있다면 위의 식이 별 문제는 아닐것이다. 굳이 나의 짧은 지식으로 설명하자면, i층의 뉴런으로 부터 j층의 뉴런으로 값을 전파하면서, j의 각 뉴런에 따라 i의 각 뉴런이 미치는 영향의 정도가 다를 것이다. 학습이 반복되는 과정에서 오차를 줄여나가는데 영향력이 큰 가중치관계 wij의 값은 그 절대값의 크기가 커질것이고 그렇지 않은 wij는 0에 수렴하게 될 것이다. 아래 그림을 참고하자



입력층(input)과 hidden1층간의 관계의 가중치 wij에서

오차 e를 줄이는데 기여가 큰 가중치 관계는 빨간선으로, 기여가 작은 가중치 관계는 파란선으로 표시하였다. 빨간선의 가중치는 그 절대값이 클것이며 파란선의 가중치는 절대값이 0에 가까울 것이다.

가중치의 델타값의 E와 W간의 편미분이 이 기여도를 의미한다.


chain-rule을 적용하여 가중치 및 bias의 학습은 결과적으로 아래와 같다.


활성화 함수 및 가중치의 chain rule 적용 예시는 첨부된 pdf파일을 참고하길 바란다.


'지능제어' 카테고리의 다른 글

RBF(Radial Basis Function) 신경망  (1) 2014.10.27
확률가우시안  (0) 2014.10.27
다층신경망[개념]  (0) 2014.10.26
퍼셉트론[개념]  (0) 2014.10.26
LMS(Linear Mean Square) Algorithm  (0) 2014.10.26

+ Recent posts