검수요청.png검수요청.png

"다층퍼셉트론"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
2번째 줄: 2번째 줄:
  
 
== 개요 ==  
 
== 개요 ==  
다층퍼셉트론(multi layer perceptron)은 입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망이다. 네트워크는 입력층, 은닉층, 출력층 방향으로 연결되어 있고, 각 층내의 연결과 출력층에서 입력층으로 직접적 연결이 없다. 이를 전방향(feedforward) 네트워크 또는 순전파라고 한다. 다층퍼셉트론은 단층 퍼셉트론과 유사한 구조를 가지지만, 중간층과 각 구성단위의 입출력 특성을 비선형으로 하여 네트워크 능력을 향상시켜 퍼셉트론의 단점들을 극복했다. 다층퍼셉트론의 동작원리는 단층퍼셉트론의 동작원리와 크게 다를 것이 없다. 다른점은 단층퍼셉트론은 활성함수가 1개라는 점이고, 다층퍼셉트론은 은닉층과 출력층에 존재하는 활성 함수가 여러 개이며, 이에 따라 가증치도 여러개인 것이다. 다층퍼셉트론의 동작원리는 다음과 같다.
+
다층퍼셉트론은 입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망이다. 네트워크는 입력층, 은닉층, 출력층 방향으로 연결되어 있고, 각 층내의 연결과 출력층에서 입력층으로 직접적 연결이 없다. 이를 전방향(feedforward) 네트워크 또는 순전파라고 한다. 다층퍼셉트론은 단층 퍼셉트론과 유사한 구조를 가지지만, 중간층과 각 구성단위의 입출력 특성을 비선형으로 하여 네트워크 능력을 향상시켜 퍼셉트론의 단점들을 극복했다. 다층퍼셉트론의 동작원리는 단층퍼셉트론의 동작원리와 크게 다를 것이 없다. 다른점은 단층퍼셉트론은 활성함수가 1개라는 점이고, 다층퍼셉트론은 은닉층과 출력층에 존재하는 활성 함수가 여러 개이며, 이에 따라 가증치도 여러개인 것이다. 다층퍼셉트론의 동작원리는 다음과 같다.
  
 
# 각 층에서의 가증치를 임의의 값으로 설정한다. 보통 0으로 설정하게 되는데, 각 층에서 바이어스 값은 1로 설정한다.
 
# 각 층에서의 가증치를 임의의 값으로 설정한다. 보통 0으로 설정하게 되는데, 각 층에서 바이어스 값은 1로 설정한다.
11번째 줄: 11번째 줄:
 
다층퍼셉트론은 단층퍼셉트론과 달리 입력층과 출력층 사이에 은닉층이 존재하고, 은닉층의 출력값에 대한 기준값을 정의할 수 없기 때문에 은닉층에서 어떤값이 출력되어야 맞는지에 대한 기준이 없다. 다층퍼셉트론에서는 출력층에서 발생하는 오차값을 이용해 은닉층으로 [[역전파]]시켜 은닉층에서 발생하는 오차값에 따라 은닉층의 가증치를 업데이트한다.
 
다층퍼셉트론은 단층퍼셉트론과 달리 입력층과 출력층 사이에 은닉층이 존재하고, 은닉층의 출력값에 대한 기준값을 정의할 수 없기 때문에 은닉층에서 어떤값이 출력되어야 맞는지에 대한 기준이 없다. 다층퍼셉트론에서는 출력층에서 발생하는 오차값을 이용해 은닉층으로 [[역전파]]시켜 은닉층에서 발생하는 오차값에 따라 은닉층의 가증치를 업데이트한다.
  
== 활성화 함수 ==
+
== 구조 ==
만약 다층 지각변동기가 모든 뉴런, 즉 가중 입력을 각 뉴런의 출력에 매핑하는 선형 함수에서 선형 활성화 기능을 가지고 있다면, 선형 대수학에서는 어떤 층도 2층 입출력 모델로 축소할 수 있음을 보여준다. 다층퍼셉트론에서 일부 뉴런은 생물학적 뉴런의 작용 전위 또는 발화 빈도를 모델링하기 위해 개발된 비선형 활성화 기능을 사용한다.<ref name="위키피디아">Multilayer perceptron Wikipedia - https://en.wikipedia.org/wiki/Multilayer_perceptron </ref>
+
=== 활성화 함수 ===
 +
만약 다층 지각변동기가 모든 뉴런, 즉 가중 입력을 각 뉴런의 출력에 매핑하는 선형 함수에서 선형 활성화 기능을 가지고 있다면, 선형 대수학에서는 어떤 층도 2층 입출력 모델로 축소할 수 있음을 보여준다. 다층퍼셉트론에서 일부 뉴런은 생물학적 뉴런의 작용 전위 또는 발화 빈도를 모델링하기 위해 개발된 비선형 활성화 기능을 사용한다. 역사적으로 공통적인 두 가지 활성화 기능은 둘 다 시그모이드(sigmoids)이며, 아래 식에 의해 설명된다.
 +
:<math>y(v_i) = \tanh(v_i) ~~ \textrm{and} ~~ y(v_i) = (1+e^{-v_i})^{-1}</math>
 +
 
 +
최근 딥러닝의 전개에서는 정류기 신경망, 정류기 선형단위(ReLU)가 시그모이드와 관련된 수치적 소실 구배 문제를 극복할 수 있는 방법 중 하나로 더 자주 사용된다. 첫째는 쌍곡선 접선이며, 다른 하나는 로지스틱 함수로 모양은 비슷하지만 0부터 1까지이다. <math>y_i</math>는 <math>i</math>번째 노드(뉴론)의 출력이며, <math>v_i</math>는 입력 연결의 가중치 합이다. 또한 정화기 신경망과 정화기 및 소프트플러스 기능을 포함한 대체 활성화 기능이 제안되었다.<ref name="위키피디아">Multilayer perceptron Wikipedia - https://en.wikipedia.org/wiki/Multilayer_perceptron </ref>
 +
 
 +
;계단 함수
 +
퍼셉트론은 활성화 함수로 계단 함수(step function)를 이용한다. 계단 함수는 선형 함수의 결과를 이진 분류로 나타내기 위한 함수이다. 특정 임계값을 넘기면 활성화된다. 특정값 이상일 경우, 0에서 멈추어 있다가 어느 기점에서 1로 바뀐다.<ref>데이터 분석하는 문과생 싸코,  〈[https://sacko.tistory.com/17 문과생도 이해하는 딥러닝 (2) - 신경망 Neural Network]〉,  《티스토리》, 2017-10-18 </ref>
 +
 
 +
;시그모이드 함수
 +
시그모이드 함수(sigmoid fuction)는 선형 함수의 결과를 0부터 1까지의 비선형 형태로 변형하기 위한 함수이다. 로지스틱 회귀와 같이 분류 문제에서 확률을 표현하기 위해 사용한다. 신경망에서 입력을 받아서 출력을 돌려주는 변환기라고 할 수 있다. 계단함수에 비해 완만한 곡선 형태로 비선형이다. 특정 경계를 기준으로 출력이 확 바뀌어 버리는 계단함수와 달리 시그모이드 함수는 완만하고 매끄럽게 변화하는데 이 매끄러움이 신경망 학습에서 중요하며, 활성화 함수로 시그모이드 함수를 사용하는 이유이기도 하다. 신경망에서는 활성화 함수를 통해서 각 노드(뉴런)로부터 받은 신호를 변환하고, 변환된 신호를 다음 뉴런으로 전달한다. 실제로는 계단 함수와 시그모이드 함수는 사용되지 않는 것으로 보인다. 시그모이드 함수는 깊이가 깊어질수록 중앙보다 양극으로 쏠리는 형태이기 때문에 데이터의 양극화가 일어나고, 극에 가까울수록 변화량이 작기 때문에 파라미터를 학습시키는 그래디언트 값이 매우 작아지게 되는 문제점이 있다. 그리고 결과값이 항상 양수이기 때문에 오차 역전파 시 체인룰에 의해 계산되는 그래디언트 값이 부호 편향적이다. 또한 1보다 항상 값이 작기 때문에 오차 역전파 시 체인룰에 의해 계산되는 그래디언트 값이 네트워크가 깊어질수록 크기가 작아져서 그래디언트가 제대로 반영되지 않는다는 문제점이 있어 현재 잘 쓰이지 않는다.<ref>록,  〈[http://www.datamarket.kr/xe/board_LCmL04/26245 2주차 딥러닝 - 다층신경망, 활성화 함수, 손실 함수 그리고 텐서보드]〉,  《데이터마켓》, 2017-05-16 </ref>
 +
 
 +
;하이퍼볼릭 탄젠트
 +
하이퍼볼릭 탄젠트(Hyperboloc tangent) 함수는 시그모이드 함수의 문제를 해결하기 위해 나온 함수이다. 선형 함수의 결과를 -1부터 1까지의 비선형 형태로 변형하기 위한 함수이다. 시그모이드 함수와 형태는 매우 유사하나, 평균이 0이기 때문에 결과값이 양수로 편향되어 있던 문제는 해결되었지만 여전히 나머지 문제는 해결되지 않았다.
  
;계단함수
 
퍼셉트론은 활성화 함수로 계단 함수(step function)를 이용한다. 특정 임계값을 넘기면 활성화되는 함수이다. 0에서 멈추어 있다가 어느 기점에서 1로 바뀐다.
 
  
 
{{각주}}
 
{{각주}}
21번째 줄: 32번째 줄:
 
== 참고자료 ==
 
== 참고자료 ==
 
*Multilayer perceptron Wikipedia - https://en.wikipedia.org/wiki/Multilayer_perceptron  
 
*Multilayer perceptron Wikipedia - https://en.wikipedia.org/wiki/Multilayer_perceptron  
 +
*록,  〈[http://www.datamarket.kr/xe/board_LCmL04/26245 2주차 딥러닝 - 다층신경망, 활성화 함수, 손실 함수 그리고 텐서보드]〉,  《데이터마켓》, 2017-05-16
 +
*데이터 분석하는 문과생 싸코,  〈[https://sacko.tistory.com/17 문과생도 이해하는 딥러닝 (2) - 신경망 Neural Network]〉,  《티스토리》, 2017-10-18
  
 
== 같이 보기 ==
 
== 같이 보기 ==

2020년 8월 10일 (월) 15:04 판

다층퍼셉트론(Multi-layer Perceptron)은 입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망으로 전방향(feedforward) 인공신경망(ANN)의 한 종류이다.

개요

다층퍼셉트론은 입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망이다. 네트워크는 입력층, 은닉층, 출력층 방향으로 연결되어 있고, 각 층내의 연결과 출력층에서 입력층으로 직접적 연결이 없다. 이를 전방향(feedforward) 네트워크 또는 순전파라고 한다. 다층퍼셉트론은 단층 퍼셉트론과 유사한 구조를 가지지만, 중간층과 각 구성단위의 입출력 특성을 비선형으로 하여 네트워크 능력을 향상시켜 퍼셉트론의 단점들을 극복했다. 다층퍼셉트론의 동작원리는 단층퍼셉트론의 동작원리와 크게 다를 것이 없다. 다른점은 단층퍼셉트론은 활성함수가 1개라는 점이고, 다층퍼셉트론은 은닉층과 출력층에 존재하는 활성 함수가 여러 개이며, 이에 따라 가증치도 여러개인 것이다. 다층퍼셉트론의 동작원리는 다음과 같다.

  1. 각 층에서의 가증치를 임의의 값으로 설정한다. 보통 0으로 설정하게 되는데, 각 층에서 바이어스 값은 1로 설정한다.
  2. 하나의 트레이닝 데이터에 대해 각 층에서 순입력 함수값을 계산하고 최종적으로 활성 함수에 의한 출력값을 계산한다.
  3. 출력층의 활성 함수에 의한 결과값과 실제값이 허용오차 안에 들도록 각층에서 가증치를 변경한다.
  4. 모든 트레이닝 데이터에 대해서 출력층의 활성 함수에 의한 결과값과 실제값이 허용오차안에 들면 학습을 종료한다.

다층퍼셉트론은 단층퍼셉트론과 달리 입력층과 출력층 사이에 은닉층이 존재하고, 은닉층의 출력값에 대한 기준값을 정의할 수 없기 때문에 은닉층에서 어떤값이 출력되어야 맞는지에 대한 기준이 없다. 다층퍼셉트론에서는 출력층에서 발생하는 오차값을 이용해 은닉층으로 역전파시켜 은닉층에서 발생하는 오차값에 따라 은닉층의 가증치를 업데이트한다.

구조

활성화 함수

만약 다층 지각변동기가 모든 뉴런, 즉 가중 입력을 각 뉴런의 출력에 매핑하는 선형 함수에서 선형 활성화 기능을 가지고 있다면, 선형 대수학에서는 어떤 층도 2층 입출력 모델로 축소할 수 있음을 보여준다. 다층퍼셉트론에서 일부 뉴런은 생물학적 뉴런의 작용 전위 또는 발화 빈도를 모델링하기 위해 개발된 비선형 활성화 기능을 사용한다. 역사적으로 공통적인 두 가지 활성화 기능은 둘 다 시그모이드(sigmoids)이며, 아래 식에 의해 설명된다.

최근 딥러닝의 전개에서는 정류기 신경망, 정류기 선형단위(ReLU)가 시그모이드와 관련된 수치적 소실 구배 문제를 극복할 수 있는 방법 중 하나로 더 자주 사용된다. 첫째는 쌍곡선 접선이며, 다른 하나는 로지스틱 함수로 모양은 비슷하지만 0부터 1까지이다. 번째 노드(뉴론)의 출력이며, 는 입력 연결의 가중치 합이다. 또한 정화기 신경망과 정화기 및 소프트플러스 기능을 포함한 대체 활성화 기능이 제안되었다.[1]

계단 함수

퍼셉트론은 활성화 함수로 계단 함수(step function)를 이용한다. 계단 함수는 선형 함수의 결과를 이진 분류로 나타내기 위한 함수이다. 특정 임계값을 넘기면 활성화된다. 특정값 이상일 경우, 0에서 멈추어 있다가 어느 기점에서 1로 바뀐다.[2]

시그모이드 함수

시그모이드 함수(sigmoid fuction)는 선형 함수의 결과를 0부터 1까지의 비선형 형태로 변형하기 위한 함수이다. 로지스틱 회귀와 같이 분류 문제에서 확률을 표현하기 위해 사용한다. 신경망에서 입력을 받아서 출력을 돌려주는 변환기라고 할 수 있다. 계단함수에 비해 완만한 곡선 형태로 비선형이다. 특정 경계를 기준으로 출력이 확 바뀌어 버리는 계단함수와 달리 시그모이드 함수는 완만하고 매끄럽게 변화하는데 이 매끄러움이 신경망 학습에서 중요하며, 활성화 함수로 시그모이드 함수를 사용하는 이유이기도 하다. 신경망에서는 활성화 함수를 통해서 각 노드(뉴런)로부터 받은 신호를 변환하고, 변환된 신호를 다음 뉴런으로 전달한다. 실제로는 계단 함수와 시그모이드 함수는 사용되지 않는 것으로 보인다. 시그모이드 함수는 깊이가 깊어질수록 중앙보다 양극으로 쏠리는 형태이기 때문에 데이터의 양극화가 일어나고, 극에 가까울수록 변화량이 작기 때문에 파라미터를 학습시키는 그래디언트 값이 매우 작아지게 되는 문제점이 있다. 그리고 결과값이 항상 양수이기 때문에 오차 역전파 시 체인룰에 의해 계산되는 그래디언트 값이 부호 편향적이다. 또한 1보다 항상 값이 작기 때문에 오차 역전파 시 체인룰에 의해 계산되는 그래디언트 값이 네트워크가 깊어질수록 크기가 작아져서 그래디언트가 제대로 반영되지 않는다는 문제점이 있어 현재 잘 쓰이지 않는다.[3]

하이퍼볼릭 탄젠트

하이퍼볼릭 탄젠트(Hyperboloc tangent) 함수는 시그모이드 함수의 문제를 해결하기 위해 나온 함수이다. 선형 함수의 결과를 -1부터 1까지의 비선형 형태로 변형하기 위한 함수이다. 시그모이드 함수와 형태는 매우 유사하나, 평균이 0이기 때문에 결과값이 양수로 편향되어 있던 문제는 해결되었지만 여전히 나머지 문제는 해결되지 않았다.


각주

  1. Multilayer perceptron Wikipedia - https://en.wikipedia.org/wiki/Multilayer_perceptron
  2. 데이터 분석하는 문과생 싸코, 〈문과생도 이해하는 딥러닝 (2) - 신경망 Neural Network〉, 《티스토리》, 2017-10-18
  3. 록, 〈2주차 딥러닝 - 다층신경망, 활성화 함수, 손실 함수 그리고 텐서보드〉, 《데이터마켓》, 2017-05-16

참고자료

같이 보기


  검수요청.png검수요청.png 이 다층퍼셉트론 문서는 인공지능 기술에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.