신경망의 분류와 학습

신경망/퍼셉트론 | 2009/01/07 08:33 | Posted by DMW
크리에이티브 커먼즈 라이선스
Creative Commons License
 플라스틱흉의 기대에 부흥하고자 쓰기 시작한 신경망 이론에 관한 글들이 거의 끝나가고 있다. 이번에 신경망의 분류랑 학습에 대해서 알아보구, 다음글에서 신경망 모델중에 하나인 퍼셉트론을 구현해볼꺼다. 그러면 끝이라능.

신경망의 분류

지금까지 나온 신경망 모델은 디게 많은데 아래와 같은 조건들로 구별해 볼 수 있다능

1. 계층수 : 단층 구조, 다층 구조
2. 출력 형태 : 순방향 구조, 순환 구조
3. 데이터 유형 : 디지털, 아날로그
4. 학습 방법 : 지도 학습, 자율 학습, 경쟁식
5. 활성화 함수 : 단극성, 양극성

이제 이것들에 대해서 하나씩 살펴볼꺼라능.

먼저 계층수에 대해서 살펴보자. 신경망은 계층 layer 의 수에 따라 단층과 다층으로 나뉜다. 일단 그림을 보자능



 단층 single-layer 신경망은 가장 단순한 구조로 입력층 input layer 하구 출력층 output layer 으구 구성되 있다. 입력층 X는 외부로부터 입력을 받아들이는 역활을 하고 출력층 Y로 신경망에서 처리된 결과가 출력된다. 단층 신경망의 출력 y1....ym 은 이렇게 구한다. wij는 입력층 뉴런 j랑 출력층 뉴런 i와의 연결강도다.


 다층 multi-layer 신경망 은 단층 신경망보다 계층의 수가 더 많다. 당연한가 -_-;;;;......아무튼 입력층과 출력층 사이의 계층을 은닉층 hidden layer 라구 하는데 신경망의 외부에서는 이게 있는지 업ㅂ는지 확인할 방법이 업ㅂ어서 그렇게 부른다. 그림에는 은닉층이 하나 밖에 업ㅂ지만 몇개가 되도 상관은 업ㅂ다능. 아무튼 다층 신경망의 출력은 이렇게 구한다. vij 는 입력층 뉴련 j랑 은닉층 뉴런 i와의 연결 강도다.



 별다를꺼업ㅂ다 >_<.


 순방향 신경망 feedforward network 과 순환 신경망 recurrent network 은 출력층의 출력이 다시 신경망의 입력으로 회귀 되는지 않되는지를 가지고 구별하면 쉽다. 그러니까 뭐 이런식이다.


 출력이 다시 입력으로 들어간다. 꼭 조합논리회로랑 순차논리회로 그림이랑 비슷하다 >_<. 쪼금더 정확히 얘기하면 어떤 레이어의 출력이 더 앞에 있는 레이어나 자신의 입력으로 회귀되면 순환 신경망이다. 순환 신경망의 출력을 어떻게 구하는지는 대충 감이 올태니 그냥 넘어가자능.

데이터 유형에 따라 아날로그랑 디지털로 나누는거는 뭐...다 알태니까 대충 넘어가고 지도 학습 supervised learning 이랑 자율 학습 unsupervised learning, 경쟁식 학습 competitive learning 에 대해서 잠깐만 얘기하자능.

 지도 학습은 신경망의 학습에 입력 패턴 x랑 그에 해당하는  목표치 d 를 사용하는 학습방법이다. x와 d의 쌍 (x ,d)를 학습 패턴쌍 traning pattern pair 이라구 한다. 쉽게 말하면 영문자 A의 그림을 보여주고 이건 A다 라구 가르쳐주는거다. 자율 학습은 학습 패턴쌍이 존제하지 않는다. 입력 패턴 x들을 마구 보여주면 지가 알아서 비슷한것끼리 분류해논다. 신기빵빵함. 경쟁식 학습은 지도 학습이랑 비슷한데...연결 강도를 변화시키는 과정에서 차이가 있다. 학습 과정에서 승자 뉴런 winner neron 이 정해지고 승저 뉴련 주변의 뉴런들에 속한 연결강도들만 변한다.

이제 활성화 함수 얘기를 해보자능. 활성화 함수는 단조 증가하는 함수여야 한다. 대충 3가지 기준으로 구분해 볼 수 있다.

1. 단극성 unipolar / 양극성 bipolar 함수
2. 선형 linear / 비선형 nonlinear 함수
3. 연속 continuous / 이진 binary 함수

활성함수 몇 개들을 수식으로 살펴보자능.


많이 쓰인다고 생각하는거 몇 개들만 써봤다능. 저거 말고도 많음 -_-;. 더 설명한거는 업ㅂ고....시그모이드 함수의 경우 람다가 무한대에 가까워지면 계단 함수랑 동일한 형태가 된다. 보통 람다값으로 1을 많이 쓴다고 한다능.


신경망의 학습

 학습 방법의 분류는 위에서 봤으니까 일반적으로 학습이 어떤 단계를 거쳐서 이루어 지는지를 보자능. 먼저 지도 학습의 경우임.

1. 응용 목적에 적절한 신경망 구조를 설계한다.
2. 연결 강도를 초기화 한다.
3. 학습 패턴쌍 (x, d)를 입력하여 신경망의 출력 y를 구한다.
4. 출력 y랑 목표치 d를 비교해서 오차를 산출한다.
5. 오차를 학습 신호 발생기에 입력해서 연결강도 변화랑 Δw를 구한다.
5. 연결강도를 Δw만큼 변경한다.
7. 변화단 연결 강도에 대해서 3 ~ 6 단계를 반복한다.
8. 더 이상 연결 강도가 변하지 않으면 학습을 종료한다.

다음으로 자율 학습의 경우다

1. 응용 목적에 적합한 신경망 구조를 설계한다.
2. 연결 강도를 초기화한다.
3. 학습 패턴 x를 입력하여 신경망의 출력 y를 구한다.
4. 출력 y를 학습 신호 발생기에 입력하여 연결강도 변화랑 Δw를 구한다.
5. 연결강도를 Δw만큼 변경한다.
6. 변화단 연결 강도에 대해서 3 ~ 5 단계를 반복한다.
7. 더 이상 연결 강도가 변하지 않으면 학습을 종료한다.

경쟁식 학습의 경우는 지도 학습이랑 비슷하다구 위에서 썼고....연결 강도가 변경되는 방식을 쪼금 더 살펴보자능.


 위에 그림에서 보면 연결 강도 변화량 Δw는 학습 신호 learning signal γ, 입력 패턴 x, 목표치 d, 학습률 learning rate α 와 관련이 있음을 알 수 있다. 구체적으로 이런 관계다. 여기서 학습률은 신경망 모델에 따라 다른 값으로 연결 가중치의 변화률을 말한다. 0에서 1사이의 값이다. 자율 학습일경우 d만 홀랑 빼버리면 된다. k번째 학습 단계에서 Δw는 다음과 같이 구할 수 있다능.


 k+1번째 연결 강도를 구하는 공식두 나와있으니까 같이 보자능. 아무튼 신경망을 학습 시키는 방법은 신경망 모델에 따라 다른데 학습 신호를 발생 시키는 과정이 다를뿐이다. 어찌됐던 Δw는


요렇게 구하고 변화된 연결 강도는 Δw를 더해버리면 구할 수 있다.


저작자 표시 비영리 동일 조건 변경 허락

'신경망 > 퍼셉트론' 카테고리의 다른 글

단층 신경망  (5) 2009/01/09
신경망의 분류와 학습  (2) 2009/01/07
생물학적 신경망과 인공 신경망  (5) 2009/01/06
뉴로 컴퓨터 개요  (2) 2008/12/29

댓글을 달아 주세요

  1. heroant 2012/01/15 12:26  댓글주소  수정/삭제  댓글쓰기

    보기 좋게 정리 잘해놨네 ㅎㅎ 잘 보고 감.