인공 신경망(Artificial Neural Network, ANN)은 생물학적 신경망의 기능을 본떠 만든 시스템으로, 생체 신경 시스템의 시뮬레이션이라고 할 수 있습니다. 인공 신경망은 여러 가지 구조를 가지며, 구조에 따라 서로 다른 알고리즘이 요구되지만, 복잡한 시스템임에도 불구하고 그 기본 원리는 생각보다 단순합니다.
공학적 관점에서 본 신경망의 두 가지 핵심 기능
신경망은 신호 처리 분야에서 가장 중요한 기술 중 하나로 꼽힙니다. 이 분야는 학제 간(interdisciplinary) 성격이 매우 강하지만, 여기서는 공학적 관점에 초점을 맞추어 살펴보겠습니다.
공학 분야에서 신경망은 크게 두 가지 핵심 기능을 수행합니다. 하나는 패턴 분류기(pattern classifier)로서의 역할이고, 다른 하나는 비선형 적응 필터(non-linear adaptive filter)로서의 역할입니다.
동적으로 학습하는 시스템
인공 신경망은 동적인(dynamic) 시스템입니다. 데이터로부터 특정 함수, 즉 입력-출력 매핑(input/output map)을 수행하는 방법을 스스로 익히는 비선형 시스템입니다. 여기서 '적응적(adaptive)'이라는 표현은 시스템의 매개변수가 운용 중에 변경된다는 의미이며, 이 과정을 흔히 훈련(training) 단계라고 부릅니다.
훈련 단계와 테스트 단계
훈련 단계가 끝나면 인공 신경망의 매개변수는 고정되고, 시스템은 주어진 문제를 실제로 해결하기 시작합니다. 이를 테스트(testing) 단계라고 합니다.
인공 신경망은 체계적이고 단계별로 진행되는 절차를 통해 성능 기준을 개선하거나 특정 내부 제약 조건을 만족하도록 설계되는데, 이러한 절차를 일반적으로 학습 규칙(learning rule)이라고 합니다.
입출력 데이터와 학습 규칙의 관계
입력/출력 훈련 데이터는 신경망 기술에서 필수적입니다. 최적의 동작 지점을 '찾아내는' 데 필요한 핵심 정보를 데이터가 제공하기 때문입니다. 또한 신경망 처리 요소(PE, Processing Element)의 비선형 특성 덕분에 시스템은 거의 모든 원하는 입출력 매핑을 얻을 수 있는 높은 적응력을 갖추게 됩니다. 즉, 어떤 인공 신경망은 범용적인 '매핑 제작기(mapmaker)' 역할을 할 수 있습니다.
지도 학습의 원리
입력이 신경망에 제시되면, 출력 쪽에는 동일한 목표(원하는) 반응이 설정됩니다. 이러한 방식의 훈련을 지도 학습(supervised learning)이라고 합니다.
목표 반응과 실제 시스템 출력 사이의 차이로부터 오차(error)가 계산됩니다. 이 오차 정보는 시스템에 다시 전달되어, 학습 규칙에 따라 시스템 매개변수를 지속적으로 조정하는 데 사용됩니다. 이 과정은 성능이 충분히 좋아질 때까지 반복됩니다. 여기서 신경망의 성능이 데이터의 질에 크게 좌우된다는 사실을 알 수 있습니다.
활성화 함수의 종류와 역할
신경망은 부호 함수(sign function) 외에도 다양한 활성화 함수를 사용할 수 있습니다. 대표적인 활성화 함수로는 다음과 같은 것들이 있습니다.
- 선형(linear) 함수
- 시그모이드(sigmoid, 로지스틱) 함수
- 쌍곡탄젠트(hyperbolic tangent, tanh) 함수
이러한 활성화 함수를 사용하면 은닉 노드와 출력 노드가 입력 매개변수에 대해 비선형인 출력값을 만들어낼 수 있습니다. 바로 이 비선형성이 다층 신경망이 입력 변수와 출력 변수 사이의 훨씬 더 복잡한 관계를 모델링할 수 있게 해주는 핵심 요소입니다.
비선형성이 갖는 의미
ANN의 출력은 시그모이드나 tanh 같은 활성화 함수 때문에 매개변수 w에 대한 비선형 함수가 됩니다. 따라서 모든 상황에서 보편적으로 최적이라고 할 수 있는 해 w를 해석적으로 도출하는 것은 더 이상 간단하지 않습니다. 이것이 신경망 학습에서 경사 하강법과 같은 반복적 최적화 기법이 필요한 이유이기도 합니다.