
인공지능 연구의 핵심 목표 중 하나는 인간의 사고 과정을 수학적·계산적으로 모사하는 것이다. 이러한 시도의 출발점은 뉴런(neuron) 이라는 생물학적 개념에 있다. 인간의 뇌는 수많은 뉴런이 서로 연결되어 정보를 전달하고 처리함으로써 복잡한 판단을 수행한다. 인공 신경망(Artificial Neural Network)은 이 구조를 단순화하여 컴퓨터에서 구현한 모델이다.
이 장에서는 인공 신경망의 가장 기본적인 구성 요소인 퍼셉트론(perceptron) 과, 그 한계를 극복하기 위해 제안된 다층 퍼셉트론(multi-layer perceptron) 을 살펴본다.
퍼셉트론은 입력값을 활성화함수(activation function) 에 통과시켜 일정한수준(threshold) 을 넘으면 True 아니면 False를 내보내는 간단한 회로이다. 이는 인공 신경망을 구성하는 가장 기본적인 계산 단위이며, 입력 값과 활성화 함수를 사용해 출력 값을 넘기는 가장 작은 신경망 단위이다.
구조는 매우 단순하다.

퍼셉트론은 여러 개의 입력값을 받아 각 입력에 대응하는 가중치를 곱한 뒤, 이들의 합에 바이어스를 더한다. 이렇게 계산된 가중합은 활성화 함수를 통과하여 최종 출력값을 결정한다.
이를 수식으로 표현하면 다음과 같다.
여기서
활성화 함수란, 전통적으론 가중 합의 결과로부터 0또는 1을 출력하는 함수다.
(현재의 활성화 함수는 가중합에 비선형을 더해주는 임의의 함수다.)
초기의 퍼셉트론에서 활성화 함수는 임계값 함수(threshold function)를 사용하였다. 가중합이 0보다 크면 1을 출력하고, 그렇지 않으면 0을 출력한다. 따라서 퍼셉트론은 본질적으로 이진 분류기(binary classifier) 로 볼 수 있다.

퍼셉트론이 해결할 수 있는 문제에는 중요한 제약 조건이 있다. 퍼셉트론은 입력 공간에서 하나의 직선(또는 고차원에서는 초평면) 으로 클래스가 구분 가능한 경우에만 정상적으로 작동한다. 이를 선형 분리 가능(linearly separable) 하다고 한다.
예를 들어 AND, OR 논리 연산은 입력 공간에서 하나의 직선으로 True와 False를 구분할 수 있기 때문에 퍼셉트론으로 구현이 가능하다. 반면 XOR 논리 연산은 동일한 방식으로는 해결할 수 없다.
XOR 문제는 퍼셉트론의 구조적 한계를 가장 명확하게 보여주는 예제이다. XOR 연산은 두 입력이 서로 다를 때만 True를 출력한다. 하지만 이 네 개의 입력 조합은 어떤 하나의 직선으로도 분리할 수 없다.
이 사실은 1969년 Marvin Minsky가 『Perceptrons』에서 지적하였으며, 이는 당시 인공지능 연구에 큰 영향을 미쳤다. 퍼셉트론을 단순히 확장하는 방식만으로는 일반적인 지능을 구현하기 어렵다는 인식이 확산되었고, 인공지능 연구는 한동안 침체기를 겪게 된다.
퍼셉트론의 한계를 극복하기 위한 핵심 아이디어는 다음과 같다.
하나의 직선으로 분리할 수 없다면, 여러 번 나누면 되지 않을까?
이 생각에서 출발한 모델이 다층 퍼셉트론(Multi-layer Perceptron, MLP) 이다. 다층 퍼셉트론은 퍼셉트론을 여러 층으로 쌓아 구성한다. 일반적으로 입력층과 출력층 사이에 하나 이상의 은닉층(hidden layer) 을 둔다.
은닉층의 퍼셉트론들은 단순한 분류기가 아니라, 입력 데이터를 새로운 표현 공간으로 변환하는 역할을 한다. 이를 통해 선형 분리가 불가능했던 문제를 선형 분리가 가능한 형태로 바꿀 수 있다.
이 구조를 사용하면 XOR 문제 역시 간단히 해결할 수 있다.

은닉층의 본질적인 역할은 좌표 공간의 변환이다. 입력 데이터를 다른 공간으로 사상(mapping)함으로써, 기존 공간에서는 복잡하게 얽혀 있던 데이터가 새로운 공간에서는 단순한 경계로 분리될 수 있도록 만든다.

이 관점에서 보면,
때문에, XOR 문제를 해결하기 위해서는 좌표 평면 자체에 변환을 주어야 하며, 이를 가능하게 하려면 숨어있는 층인 은닉층을 만들어야 한다.

은닉층은 좌표 평면의 왜곡이며, 다른 공간으로의 변환 (차원 확대 또는 축소)라고 볼 수 있다.
이 아이디어는 이후 딥러닝 전반에서 매우 중요한 개념으로 확장된다.
다시 XOR 문제로 넘어가면,



다층 퍼셉트론은 구조적으로는 강력하지만, 학습 과정에서 새로운 문제를 야기한다. 신경망은 일반적으로 경사하강법(gradient descent) 과 역전파(backpropagation) 알고리즘을 사용해 학습한다.
다층 퍼셉트론은 구조적으로는 강력하지만, 학습 과정에서 새로운 문제를 야기한다. 신경망은 일반적으로 경사하강법(gradient descent) 과 역전파(backpropagation) 알고리즘을 사용해 학습한다. 이 절에서는 이 두 개념이 무엇이며, 왜 함께 사용되는지를 설명한다.
경사하강법은 신경망 학습에서 손실 함수(loss function)를 최소화하기 위한 최적화 기법이다. 신경망의 목표는 입력에 대한 예측값과 실제 정답 사이의 차이를 줄이는 것이며, 이 차이를 수치적으로 표현한 것이 손실 함수이다.
신경망의 모든 가중치와 바이어스를 변수로 생각하면, 손실 함수는 이 변수들에 의해 결정되는 하나의 함수가 된다. 학습이란 이 함수가 최소가 되는 지점을 찾는 과정이라고 볼 수 있다.
경사하강법의 핵심 아이디어는 다음과 같다.
현재 위치에서 손실 함수의 값이 가장 빠르게 감소하는 방향은
그 지점에서의 기울기(gradient)의 반대 방향이다.
이를 바탕으로 경사하강법은 각 가중치를 다음과 같은 규칙으로 업데이트한다.
여기서
즉, 경사하강법은 손실을 증가시키는 방향의 반대로 가중치를 조금씩 조정함으로써 모델의 성능을 점진적으로 개선한다.
경사하강법을 적용하기 위해서는 각 가중치에 대해 손실 함수의 기울기를 계산해야 한다. 그러나 다층 퍼셉트론에서는 출력이 여러 층의 연속적인 연산을 거쳐 계산되기 때문에, 이 미분을 직접 계산하는 것은 매우 비효율적이다.
이 문제를 해결하기 위해 사용되는 알고리즘이 역전파(backpropagation) 이다. 역전파는 출력층에서 계산된 오차를 입력층 방향으로 전달하면서, 각 층의 가중치가 손실에 얼마나 기여했는지를 계산한다.

역전파의 핵심은 미분의 연쇄 법칙(chain rule) 이다. 신경망의 출력은 여러 함수가 중첩된 형태이므로, 전체 미분은 각 단계의 미분을 곱한 형태로 표현된다.
역전파 과정은 다음과 같은 순서로 이루어진다.
즉, 역전파는 경사하강법에 필요한 기울기를 효율적으로 계산하는 알고리즘이라고 할 수 있다.
역전파 과정에서 각 층의 기울기는 여러 미분값의 곱으로 표현된다. 만약 각 층에서의 미분값이 1보다 작다면, 이 곱은 층이 깊어질수록 급격히 작아진다. 그 결과 입력층에 가까운 가중치들은 거의 업데이트되지 않게 된다.
이 현상을 기울기 소실(vanishing gradient) 문제라고 하며, 이는 전통적인 다층 퍼셉트론에서 학습이 어려웠던 주요 원인 중 하나이다. 특히 시그모이드 함수와 같이 미분값이 작은 활성화 함수를 사용할 경우, 이 문제가 더욱 심각하게 나타난다.

경사하강법과 역전파는 역할이 명확히 구분된다.
따라서 다층 퍼셉트론의 학습에서 두 알고리즘은 항상 함께 사용되며, 이후 등장하는 딥러닝 모델에서도 동일한 원리가 적용된다.

기울기 소실 문제의 주요 원인 중 하나는 전통적으로 활성화 함수로 사용되던 시그모이드(sigmoid) 함수의 특성이다. 시그모이드 함수는 출력값이 0과 1 사이로 제한되며, 미분값의 최대도 매우 작다. 따라서 여러 층을 거치면 기울기가 거의 0에 수렴하게 된다.

이 문제를 해결하기 위해 최근의 신경망에서는 은닉층의 활성화 함수로 ReLU(Rectified Linear Unit) 가 주로 사용된다. ReLU는 양수 영역에서 기울기가 1이므로, 깊은 신경망에서도 기울기가 비교적 안정적으로 전달된다.
오늘날의 신경망에서는 은닉층의 활성화 함수로 ReLU가 표준처럼 사용되지만, 초기 다층 퍼셉트론에서는 대부분 시그모이드(sigmoid) 함수가 사용되었다. 이는 단순한 관성이나 우연이 아니라, 당시의 이론적 배경과 기술적 제약에 따른 합리적인 선택이었다.
초기 인공 신경망 연구는 생물학적 뉴런을 모사하는 데서 출발했다. 시그모이드 함수는 입력이 증가함에 따라 출력이 점진적으로 증가하다가 포화되는 형태를 갖는데, 이는 뉴런의 발화(firing) 특성과 유사하다고 여겨졌다.
특히 시그모이드 함수는 다음과 같은 특징을 가진다.
이러한 형태는 “뉴런이 자극의 강도에 따라 발화 확률이 증가한다”는 직관적 해석과 잘 맞아떨어졌기 때문에, 시그모이드는 생물학적으로 타당한 활성화 함수로 받아들여졌다.
퍼셉트론의 학습에는 미분이 필수적이다. 역전파 알고리즘을 적용하려면 활성화 함수가 연속적이고 미분 가능해야 한다.
시그모이드 함수는 다음과 같은 장점을 갖는다.
이 단순한 미분 형태는 초기 신경망 연구에서 이론 분석과 구현을 매우 용이하게 했다. 반면, ReLU와 같은 함수는 0에서 미분이 정의되지 않기 때문에 초기에는 수학적으로 다루기 어렵다고 여겨졌다.
시그모이드 함수의 출력은 항상 0과 1 사이에 위치한다. 이 특성은 출력을 확률로 해석하는 데 매우 유리하다.
특히 이진 분류 문제에서 시그모이드 출력은
로 해석될 수 있다. 이 관점은 이후 로지스틱 회귀(logistic regression)와 신경망을 연결하는 중요한 이론적 기반이 되었다.
초기 연구자들은 은닉층에서도 이러한 “확률적 활성화”가 유의미할 것이라 기대했고, 이는 시그모이드를 은닉층까지 확장해 사용하는 계기가 되었다.
기울기 소실 문제는 신경망이 깊어질 때 본격적으로 문제가 된다. 그러나 초기 인공 신경망 연구에서는 다음과 같은 현실적 제약이 있었다.
이러한 환경에서는 시그모이드의 단점이 심각하게 드러나지 않았다. 오히려 부드럽고 안정적인 시그모이드가 학습을 더 잘 수렴시키는 경우도 많았다.
즉, 당시의 문제 설정에서는 시그모이드는 충분히 잘 작동하는 함수였다.
문제는 ‘시그모이드’ 자체가 아니라, 깊이가 깊어졌을 때였다
중요한 점은 다음이다.
시그모이드 함수는 잘못된 선택이 아니었다.
문제는 시그모이드를 사용한 채로 신경망을 깊게 쌓으려 했다는 데 있다.
층이 깊어질수록 시그모이드의 미분값이 0에 가까워지면서 기울기 소실 문제가 발생했고, 이는 깊은 신경망의 학습을 어렵게 만들었다. 이 한계를 인식하고 극복하는 과정에서 ReLU, 가중치 초기화 기법, 정규화 기법 등이 등장하며 딥러닝이 본격적으로 발전하게 된다.
앞 절에서 살펴본 역전파 알고리즘은 미분의 연쇄 법칙(chain rule)에 기반한다. 그러나 실제 신경망은 수많은 연산이 중첩된 매우 복잡한 함수 형태를 가지므로, 이를 수식으로 직접 미분하는 것은 비현실적이다. 이 문제를 체계적으로 해결하기 위해 도입된 개념이 계산 그래프(computational graph) 이다.

계산 그래프는 하나의 함수를 연산 단위로 분해하여 그래프 형태로 표현한 것이다.
이러한 표현 방식의 핵심 장점은, 복잡한 함수라도 국소적인 계산(local computation) 들의 조합으로 이해할 수 있다는 점이다.
계산 그래프에서는 모든 계산이 두 단계로 나뉜다.

순전파는 입력으로부터 출력을 계산하는 과정이다. 계산 그래프의 왼쪽에서 오른쪽으로 연산을 수행하며, 각 노드에서 중간 결과를 저장한다. 이 단계에서 신경망은 주어진 입력에 대한 예측값을 계산한다.
역전파는 출력에서 발생한 오차가 각 연산과 가중치에 어떻게 영향을 미쳤는지를 계산하는 과정이다. 계산 그래프의 오른쪽에서 왼쪽으로 진행하며, 각 노드에서 출력에 대한 입력의 미분값을 계산한다.
이때 핵심 원리는 다음과 같다.
전체 미분은 각 연산의 국소 미분을 곱하여 전달할 수 있다.
이는 미분의 연쇄 법칙을 계산 그래프 형태로 구현한 것이다.
함수가 다음과 같이 여러 함수의 합성으로 이루어져 있다고 하자.
이때 (a)를 (x)에 대해 미분하면,
와 같이 표현된다. 계산 그래프는 이 과정을 시각적이고 기계적으로 처리할 수 있게 해준다.
각 노드는 자신이 수행한 연산에 대해서만 미분을 계산하고, 그 결과를 이전 노드로 전달한다. 이 방식 덕분에 복잡한 함수도 전체 형태를 다시 보지 않고 미분할 수 있다.
계산 그래프에서 자주 등장하는 연산들은 다음과 같은 단순한 역전파 규칙을 갖는다.
덧셈 노드

출력의 기울기가 그대로 각 입력으로 전달된다.
곱셈 노드

한 입력에 대한 기울기는 다른 입력값을 곱한 형태로 전달된다.

ReLU(Rectified Linear Unit)는 은닉층에서 가장 널리 사용되는 활성화 함수로, 다음과 같이 정의된다.
역전파에서 입력 (x)에 대한 손실 함수 (L)의 기울기는 다음과 같이 계산된다.
따라서 ReLU 계층의 역전파는 (), 즉 ReLU 함수의 미분값에 의해 결정된다.
입력이 양수인 경우 ((x > 0))
입력이 0 이하인 경우 (())
위와같은 이유로 RELU는 입력이 양수인 영역에서는 기울기가 1로 유지되어 기울기 소실 문제를 완화한다. 또한, 계산이 단순하여 학습 속도가 빠르고 구현이 용이하다.
다만, 입력이 항상 0 이하로 유지되는 뉴런은 기울기가 계속 0이 되어 더 이상 학습되지 않는 문제가 발생할 수 있으며, 이를 Dead ReLU 문제라고 한다. 이 문제를 완화하기 위해 Leaky ReLU, PReLU 등의 변형 함수가 제안되었다.

Sigmoid 계층의 계산 그래프와 오차 역전파
Sigmoid 함수는 다음과 같이 정의된다.
Sigmoid는 하나의 함수처럼 보이지만, 계산 그래프 관점에서는 여러 개의 기본 연산으로 분해할 수 있다. 이러한 분해는 오차 역전파를 이해하는 데 매우 중요하다.
Sigmoid 함수의 계산 그래프 분해
Sigmoid 함수는 다음과 같은 연산들의 조합으로 표현된다.
순전파 (Forward Propagation)
순전파에서는 계산 그래프의 왼쪽에서 오른쪽으로 연산이 진행된다.
이 과정에서 각 노드의 출력값은 역전파를 위해 저장된다.
역전파 (Backward Propagation)의 목표
역전파의 목적은 다음 값을 계산하는 것이다.
즉, 출력 (y)에 대한 손실 함수의 기울기 ()가 주어졌을 때, 이 오차가 입력 (x)에 어떻게 전달되는지를 계산한다.
단계별 오차 역전파 설명
이제 그림의 아래쪽(빨간 화살표) 을 따라, 오른쪽에서 왼쪽으로 역전파를 진행한다.
1) 1단계: 나눗셈(역수) 노드
미분하면,
따라서 역전파 기울기는
그림에서 () 가 표시된 이유가 바로 이 때문이다.
2) 2단계: 덧셈 노드
덧셈 연산의 미분값은 항상 1이므로,
즉, 기울기는 그대로 전달된다.
3) 3단계: 지수(exp) 노드
미분하면,
따라서,
4) 4단계: 곱셈 노드 ()
이 경우,
따라서 최종적으로,
위의 모든 단계를 곱하면 다음과 같은 결과를 얻는다.
이는 Sigmoid 함수의 잘 알려진 미분 결과이다.
이 과정에서 중요한 점은 다음이다.
즉, 계산 그래프는 복잡한 함수의 미분을 기계적으로 수행할 수 있게 해주는 도구이다.
Sigmoid 역전파와 기울기 소실 문제
Sigmoid의 미분값은 이며, 이 값은 항상 0과 0.25 사이에 존재한다. 따라서 Sigmoid 계층이 여러 층 반복되면 기울기는 계속 작아지며, 깊은 신경망에서는 기울기 소실 문제가 발생하게 된다.