Computer >> 컴퓨터 >  >> 프로그래밍 >> 프로그래밍

다층 인공 신경망의 핵심 방법과 학습 알고리즘 완벽 정리

다층 인공 신경망이란 무엇인가?

인공 신경망(Artificial Neural Network, ANN)은 단순한 퍼셉트론 모델보다 훨씬 정교하고 복잡한 메커니즘을 가지고 있습니다. 다층 인공 신경망을 구성하고 학습시키는 데에는 여러 가지 핵심 방법이 있으며, 그 내용을 아래에서 자세히 살펴보겠습니다.

1. 다층 신경망의 구조적 특징

은닉층(Hidden Layer)의 도입

네트워크는 입력층과 출력층 사이에 여러 개의 중간층을 포함할 수 있습니다. 이러한 중간층을 은닉층(hidden layer)이라고 부르며, 이 층에 배치된 노드를 은닉 노드(hidden node)라고 합니다. 이렇게 구성된 아키텍처가 바로 다층 신경망(multilayer neural network)입니다.

피드포워드 신경망과 순환 신경망

피드포워드(feed-forward) 신경망에서는 한 층의 노드가 오직 다음 층의 노드와만 연결됩니다. 퍼셉트론은 복잡한 수치 연산을 수행하는 출력층이라는 단 하나의 노드 층만을 가지므로, 단일층 피드포워드 신경망에 해당합니다. 반면 순환 신경망(recurrent neural network)에서는 연결선이 같은 층 내부의 노드들을 서로 연결하거나, 한 층에서 이전 층의 노드로 되돌아갈 수도 있습니다.

2. 다양한 활성화 함수의 사용

다층 신경망은 부호 함수(sign function) 외에도 여러 종류의 활성화 함수를 사용할 수 있습니다. 대표적인 예로 선형(linear) 함수, 시그모이드(sigmoid, 로지스틱) 함수, 쌍곡선 탄젠트(tanh) 함수 등이 있습니다. 이러한 활성화 함수 덕분에 은닉 노드와 출력 노드는 입력 매개변수에 대해 비선형적인 출력값을 생성할 수 있습니다.

3. 복잡한 관계의 모델링

이러한 구조적·수학적 복잡성 덕분에 다층 신경망은 입력 변수와 출력 변수 사이의 훨씬 더 복잡한 관계를 모델링할 수 있습니다. 예를 들어, 두 개의 초평면(hyperplane)을 사용하여 입력 공간을 각 클래스 영역으로 분할하는 방식으로 분류 문제를 정의할 수 있습니다.

4. 가중치 학습의 과제

ANN 모델의 가중치를 학습하려면, 충분한 양의 학습 데이터가 주어졌을 때 올바른 해에 수렴하는 효율적인 알고리즘이 반드시 필요합니다. 한 가지 접근 방법은 네트워크의 각 은닉 노드 또는 출력 노드를 독립적인 퍼셉트론 단위로 간주하고, 동일한 가중치 갱신 공식을 적용하는 것입니다.

그러나 이 방법은 실제로 작동하지 않습니다. 은닉 노드가 산출해야 할 올바른 출력값에 대한 사전 지식(a priori knowledge)이 없기 때문입니다. 이로 인해 각 은닉 노드에 해당하는 오차항 (y − y′)을 계산하기가 매우 어려워집니다. 이 문제를 해결하기 위해 경사 하강법(gradient descent)에 기반한 신경망 가중치 학습 방법이 고안되었습니다.

5. 오차 최소화를 위한 목표 함수

ANN 학습 알고리즘의 궁극적인 목표는 제곱 오차의 총합을 최소화하는 가중치 집합 w를 찾는 것입니다.

$$\mathrm{E(w)\:=\:\frac{1}{2}\displaystyle\sum\limits_{i=1}^N (Y_{i}-Y^{'}_i)^2}$$

예측 클래스 y′이 은닉 노드와 출력 노드에 적용된 가중치들의 함수이기 때문에, 제곱 오차의 총합은 가중치 w에 의존하게 됩니다. 또한 시그모이드나 tanh와 같은 활성화 함수를 선택함에 따라, ANN의 출력은 매개변수에 대한 비선형 함수 형태를 띠게 됩니다.