전방전달신경망
전방전달신경망(Feedforward neural network)은 노드 사이의 연결이 순환을 형성하지 않는 인공신경망이다. 신경망 정보가 입력 노드에서 은닉 노드를 거쳐 출력 노드까지 전달 되며 순환 경로가 존재하지 않는 그래프를 형성한다. 다양한 방법의 구조가 존재하는데 이진 구조, 퍼셉트론, 시그모이드 등 여러가지 방법으로 구성할 수 있다.
개요
전방전달신경망은 인공신경망이 고안된 최초의 가장 단순한 형태였다. 이 네트워크에서 정보는 오직 한 방향으로만 이동하며, 입력 노드로부터 숨겨진 노드를 거쳐 출력 노드로 이동한다. 네트워크에는 순환이나 루프가 없다.[1] 일반적인 전방전달신경망의 경우 입력층-은닉층-출력층을 거치는 모형 아키텍쳐를 가지고 있다. 인공신경망은 입력된 독립 변수와 종속 변수의 결합 관계를 나타내는 가중치(w) 도출을 통해 모형을 구축한다. 전방전달신경망의 학습은 가중치(w)의 반복적인 업데이트를 통하여 출력값의 에러를 최소화하는 것을 목표로 한다. 가중치(w) 업데이트는 경사하강법(gradient descent)을 이용하여 에러를 역전파(back propagation)하여 구한다. 그러나, 이 경우 기울기 소실(vanishing gradient) 문제가 발생할 수 있다.[2] 신경망 설계의 주요 예시인 전방전달신경망은 아키텍처가 제한적이다. 신호는 입력 레이어에서 추가 레이어로 이동한다. 전방전달신경망 설계의 몇 가지 예시를 살펴보면 훨씬 더 간단하다. 예를 들어, 단층퍼셉트론 모델에는 하나의 레이어만 있으며 전방향 신호가 레이어에서 개별 노드로 이동한다. 레이어가 더 많은 다층 퍼셉트론 모델도 전방향으로 이동한다. 과학자들이 최초의 인공 신경망을 고안한 이래로 기술 세계는 보다 정교한 모델을 구축하는 데 모든 종류의 진전을 이루었다. 순환 신경망 및 루프 또는 순환을 포함하는 기타 설계뿐만 아니라, 기계 학습 시스템이 시스템을 통해 데이터를 다시 전송하여 기본적으로 최적화하는 역전파와 관련된 모델이 발견되었다. 전방전달신경망은 이러한 유형의 디자인을 포함하지 않으므로 인공신경망을 처음으로 학습하는 데 적합한 고유한 유형의 시스템이다.[3]
구조
이 네트워크에서 가장 왼쪽 층을 입력층이라고 하며, 그 층 내의 뉴런을 입력 뉴런이라고 한다. 가장 오른쪽 또는 출력 층은 출력 뉴런을 포함하며, 이 경우처럼 단일 출력 뉴런을 포함한다. 중간 층은 숨겨진 층이라고 불리는데, 이 층의 뉴런은 입력도 출력도 아니기 때문이다. 그림 wˡ에서 나타내듯이 lᵗ 층의 iᵗʰ 뉴런의 무게를 나타낸다. Wˡ₍i,j₎는 (l-1)ᵗ 층의 jᵗʰ 뉴런에서 lᵗ 층의 iᵗʰ 뉴런으로 연결하기 위한 무게를 나타낸다. iᵗʰ 뉴런의 편향에 bᵢ을 사용한다. h(x)는 활성화 기능이고 이러한 목적을 위해 시그모이드를 사용하고 있다. f(x)는 출력 기능이다. 숨겨진 계층이 있는 전방전달신경망의 흥미로운 점은 보편적인 근사 체계를 제공한다는 것이다. 특히 보편적 근사치 정리는 선형 출력 계층과 적어도 하나의 스퀴싱 활성화 함수(Sigmoid activation function)가 있는 전방전달신경망은 하나의 스퀴싱 활성화 함수(예: Sigmoid activation function function)에서 다른 w까지 모든 보렐 측정 가능한 함수를 근사할 수 있다고 기술하고 있다. 네트워크에 충분한 숨겨진 단위가 주어진다면 원하는 0이 아닌 양의 오류이다. 보편적 근사치 정리는 우리가 원하는 어느 정도의 정확도를 달성할 수 있을 정도로 큰 네트워크가 존재한다고 말하지만, 이론적으로는 이 네트워크가 얼마나 클지는 말하지 않는다.
예를 들어, 위의 그림은 절대값 정정을 가진 네트워크가 그 숨겨진 단위의 입력과 관련하여 어떤 숨겨진 단위 위에서 계산된 기능의 미러 이미지를 어떻게 생성하는지 보여 준다. 각 숨겨진 단위는 절대값 비선형성의 양쪽에서 미러 반응을 생성하기 위해 입력 공간을 접는 위치를 지정한다. 이러한 접이식 연산을 구성함으로써, 우리는 모든 종류의 정규 패턴을 포착할 수 있는 조각 모양의 선형 영역을 기하급수적으로 많이 얻을 수 있다.[4]
종류
단층퍼셉트론
가장 단순한 종류의 신경망은 출력 노드의 단일 계층으로 구성된 단층퍼셉트론(Single-layer Perceptron)이다. 입력은 일련의 중량을 통해 출력에 직접 공급된다. 가중치와 입력물의 산출물의 합은 각 노드에서 계산되며, 값이 어느 정도 임계치(일반적으로 0)를 넘으면 뉴런이 발화하여 활성화 값(일반적으로 1)을 취하고, 그렇지 않으면 비활성화 값(일반적으로 -1)을 취한다. 이와 같은 활성화 기능을 가진 뉴런을 인공 뉴런 또는 선형 임계 단위라고도 한다. 문헌에서 퍼셉트론(Perceptron)이라는 용어는 종종 이러한 단위들 중 하나로 구성된 네트워크를 가리킨다. 비슷한 뉴런은 1940년대에 워렌 맥컬로치와 월터 피츠에 의해 묘사되었다. 단층퍼셉트론은 임계값이 둘 사이에 있는 한 활성화 및 비활성화 상태에 대한 값을 사용하여 수용자를 만들 수 있다. 퍼셉트론즈는 보통 델타 규칙이라고 불리는 간단한 학습 알고리즘에 의해 훈련될 수 있다. 계산된 출력 데이터와 샘플 출력 데이터 사이의 오차를 계산하고 이를 사용하여 가중치에 대한 조정을 만들어 구배 강하 형태를 구현한다.\
단층퍼셉트론은 선형적으로 분리할 수 있는 패턴만 학습할 수 있다. 1969년 퍼셉트론즈(Perceptrons)라는 제목의 유명한 모노그래프에서 마빈 민스키(Marvin Minsky)와 시무어 파퍼트(Symour Papert)는 단층퍼셉트론 네트워크가 XOR 기능을 배우는 것은 불가능하다는 것을 보여 주었다. 하지만 다층퍼셉트론은 어떤 가능성 있는 패턴을 생산할 수 있는 것으로 알려져 있다.
단일 임계값 단위는 계산 능력이 상당히 제한되지만, 병렬 임계값 단위의 네트워크는 실제 숫자의 콤팩트한 간격에서 간격[-1,1]에 이르는 모든 연속 함수에 근사치를 할 수 있다는 것이 입증되었다. 이 결과는 피터 아우어(Peter Aue), 하랄드 버그스티너(Harald Burgsteiner), 볼프강 마아스(Wolfgang Maass)가 기록한 '단일층의 지각자로 구성된 매우 단순한 보편적 근사치를 위한 학습 규칙'에서 찾을 수 있다.
단층 신경망은 단계적 기능 대신 연속적인 출력을 계산할 수 있다. 일반적인 선택은 이른바 로지스틱 함수다.
이 선택으로, 단층 네트워크는 통계적 모델에 널리 사용되는 논리적 회귀 모델과 동일하다. 논리 함수는 S자형 그래프가 그리스 문자 시그마의 최종 소문자 소문자 시그마와 비슷하기 때문에 시그모이드 함수라고 불리는 함수 계열 중 하나이다. 연속적인 파생상품이 있어 백프로포메이션에서 사용할 수 있다. 이 함수는 파생상품이 쉽게 계산되기 때문에 선호된다.
가 위의 미분 방정식을 만족한다는 사실은 체인 룰을 적용하면 쉽게 알 수 있다. 단층 신경망 활성화 기능이 Mod1이라면 이 네트워크는 정확히 하나의 뉴런으로 XOR 문제를 해결할 수 있다.[1]
다층퍼셉트론
다층퍼셉트론은 입력층과 출력층 사이에 하나 이상의 중간층이 존재하는 신경망이다. 네트워크는 입력층, 은닉층, 출력층 방향으로 연결되어 있고, 각 층내의 연결과 출력층에서 입력층으로 직접적 연결이 없다. 이를 전방향(feedforward) 네트워크 또는 순전파라고 한다. 다층퍼셉트론은 단층 퍼셉트론과 유사한 구조를 가지지만, 중간층과 각 구성단위의 입출력 특성을 비선형으로 하여 네트워크 능력을 향상시켜 퍼셉트론의 단점들을 극복했다. 각 층의 네트워크는 다수의 연산 장치로 구성되며, 대개 전방향 방식으로 상호 연결된다. 한 층에 있는 각각의 뉴런은 후속 층의 뉴런으로 연결되도록 지시한다. 많은 애플리케이션에서 이러한 네트워크의 단위는 활성화 함수로써 S자형 함수를 적용한다. 신경망에 대한 보편적 근사치 정리는 실수의 간격을 실제 숫자의 어떤 출력 간격에 매핑하는 모든 연속적 함수를 말한다. 하나의 숨겨진 층을 가진 다층 수용체에 의해 임의로 가깝게 추정될 수 있다. 이 결과는 s자형 함수와 같은 광범위한 활성화 함수를 유지한다. 다층퍼셉트론은 다양한 학습 기법을 사용하며, 가장 인기 있는 것은 역전파이다. 출력 값을 정답을 비교하여 미리 정의된 오류 기능의 값을 계산한다. 다양한 기법에 의해, 그 오류는 네트워크를 통해 다시 공급된다. 이 정보를 이용하여 알고리즘은 오류 함수의 값을 어느 정도 줄이기 위해 각 연결의 가중치를 조정한다. 충분히 많은 훈련 주기를 위해 이 과정을 반복한 후, 네트워크는 대개 계산의 오차가 작은 어떤 상태로 수렴한다. 이 경우에, 네트워크는 특정한 목표 기능을 배웠다고 말할 수 있다. 가중치를 적절하게 조정하기 위해서는 구배 강하라고 하는 비선형 최적화에 대한 일반적인 방법을 적용한다. 이를 위해 네트워크는 네트워크 가중치에 관해서 오류 함수의 파생물을 계산하고, 오류가 감소하도록 (오류 함수의 표면에서 내리막길을 가는 것) 가중치를 변경한다. 이 때문에 역전파는 활성화 기능이 다른 네트워크에서만 적용할 수 있다.
일반적으로 훈련 샘플로 사용되지 않은 샘플에서도 네트워크를 잘 수행하도록 가르치는 문제는 추가 기법이 필요한 상당히 미묘한 문제다. 이는 매우 제한된 수의 훈련 샘플만 사용할 수 있는 경우에 특히 중요하다. 문제는 네트워크가 교육 데이터에 적합하고 데이터를 생성하는 실제 통계 프로세스를 캡처하지 못하는 것이다. 컴퓨터 학습 이론은 제한된 양의 데이터에 대한 분류자 훈련과 관련이 있다. 신경망의 맥락에서 조기 중지라고 불리는 단순한 경험적 경험은 종종 네트워크가 훈련 집합에 없는 예에 잘 일반화되도록 보장한다.
역전파 알고리즘의 다른 대표적인 문제로는 수렴 속도와 오류 함수의 국소 최소값으로 끝날 가능성이 있다는 것이다. 오늘날 다층퍼셉트론에서 역전파를 많은 기계 학습 과제의 선택 도구로 만드는 실용적인 방법들이 있다. 또한 어떤 중개자에 의해 조정된 일련의 독립적인 신경망을 사용할 수 있는데, 뇌에서 일어나는 것과 유사한 행동이다. 이러한 뉴런들은 분리적으로 작용하여 큰 일을 처리할 수 있으며 결과적으로 결합될 수 있다.[1]
학습
역전파
전방전달신경망에서의 학습은 지도 학습의 영역에 속하며, 입력 및 출력 값 쌍이 여러 주기 동안 네트워크에 입력되어 네트워크가 입력과 출력 간의 관계를 학습한다.
입력 벡터 i와 원하는 출력 o로 구성된 여러 훈련 샘플을 네트워크에 제공한다. 예를 들어 분류 문제에서 그룹 0에 속하는 점 (1, 2) 및 (1, 3), 그룹 1에 속하는 점 (2, 3) 및 (3, 4)가 있다고 가정해 보면, (5, 6) (6, 7) 그룹 2에 속하면 2개의 입력 노드와 2개의 출력 노드가 있는 전방전달신경망의 경우 훈련 세트는 다음과 같다.
출력 노드 수를 선택하는 기본 규칙은 다른 영역의 수에 따라 달라진다. 다른 영역을 나타내려면 단항 표기법을 사용하는 것이 좋다. 즉, 각 출력물에 대해 한 노드만 값 1을 가질 수 있다. 따라서 { 출력 노드 수 = 서로 다른 영역의 수 -1 } 이 된다. 역전파 학습에서 훈련 샘플의 입력 벡터가 제시될 때마다 출력 벡터 를 원하는 값 와 비교한다.
비교는 다음의 두 가지 차이를 제곱하여 계산한다.
에러의 값은 우리가 특정 입력에 대해 원하는 값으로부터 얼마나 멀리 떨어져 있는지를 말해 준다. 역전파의 목표는 모든 교육 샘플에 대한 에러의 합계를 최소화하여 네트워크가 가장 바람직한 방식으로 동작하도록 하는 것이다.
Minimize
입력 벡터(i), 중량 벡터(w), 그리고 인식의 임계 함수의 측면에서 에러를 표현할 수 있다. 단계 함수 대신 연속 함수를 임계값 함수로 사용하여 w와 i의 관점에서 w에 대한 Err의 구배를 표현할 수 있다. 그래디언트 방향으로 w 값을 감소시키면 Err이 가장 빠르게 감소한다는 사실을 감안하여 다음 공식을 사용하여 샘플을 제시할 때마다 체중 벡터를 업데이트한다.
이 알고리즘을 사용하여 특정 입력 샘플의 Errr 값이 샘플이 표시될 때마다 약간씩 감소하도록 중량 벡터를 수정한다. 모든 샘플이 여러 사이클에 걸쳐 차례대로 제시되면 에러의 합은 점차 최소값으로 감소한다.[5]
기울기 기반 학습
신경망을 설계하고 훈련하는 것은 경사로 강하를 가진 다른 기계 학습 모델을 훈련하는 것과 크게 다르지 않다. 우리가 지금까지 보아온 선형 모델과 신경망 사이의 가장 큰 차이점은 신경망의 비선형성이 가장 흥미로운 손실 기능을 비컨벡스가 되게 한다는 것이다. 이는 신경 네트워크가 로지스틱 회귀 분석이나 SVM을 훈련하는 데 사용되는 글로벌 수렴 보증과 함께 선형 회귀 모델을 훈련하는 데 사용되는 선형 방정식 솔버나 볼록 최적화 알고리즘보다는 비용 함수를 매우 낮은 값으로 단지 유도하는 반복적인 구배 기반 최적화기를 사용하여 훈련된다는 것을 의미한다. 그림에서 볼 수 있듯이 깊은 골짜기에 떨어진 공의 비유처럼 공은 골짜기 바닥에 가라앉는다. 마찬가지로 많은 사람들은 비용 기능이 최소화하고 가능한 최소 가치에 도달하기를 원한다. 공을 방향으로 을 소량 이동할 때와 방향으로 를 소량 이동할 때, 미적분학에서는 가 다음과 같이 바뀐다고 한다.
과 의 변경은 비용 변동이 음수하도록 변경하는 것이 바람직하다. 또한 가 C인 를 나타낼 수 있다.
그리고 는 이다.
각주
- ↑ 1.0 1.1 1.2 Feedforward neural network Wikipedia - https://en.wikipedia.org/wiki/Feedforward_neural_network
- ↑ 찬, 〈FFNN(Feed-forward Neural Network)〉, 《네이버 블로그》, 2018-03-27
- ↑ Feedforward Neural Network Techopedia - https://www.techopedia.com/definition/33266/feedforward-neural-network
- ↑ Tushar Gupta, 〈Deep Learning: Feedforward Neural Network〉, 《Towards Data Science》, 2017-01-05
- ↑ Feedforward Neural Network - https://cs.stanford.edu/people/eroberts/courses/soco/projects/neural-networks/Architecture/feedforward.html
참고자료
- Feedforward neural network Wikipedia - https://en.wikipedia.org/wiki/Feedforward_neural_network
- Feedforward Neural Network Techopedia - https://www.techopedia.com/definition/33266/feedforward-neural-network
- Feedforward Neural Network - https://cs.stanford.edu/people/eroberts/courses/soco/projects/neural-networks/Architecture/feedforward.html
- Tushar Gupta, 〈Deep Learning: Feedforward Neural Network〉, 《Towards Data Science》, 2017-01-05
- 찬, 〈FFNN(Feed-forward Neural Network)〉, 《네이버 블로그》, 2018-03-27
같이 보기