'활성화 함수(Activation Function)' 와 '최적화 함수(Optimizer)' 에 대해 이해하고자 인공신경망의 기초가 되는 퍼셉트론에 대해 정리하고자 한다.
인공신경망(Artificial Neural Network)이란 인간 뇌의 신경 구조를 모방하여 설계된 기계 학습 모델이다. '뉴런'이라는 기본 단위가 입력값을 받아 가중치를 적용하고, 활성화 함수를 통해 출력을 생성하는 방식으로 동작하죠. 현재에는 가장 널리 쓰이는 구글 딥마인드의 'Transformer' 모델 역시 이 인공신경망을 발전시킨 형태인데, 자세한 내용은 [다른 포스팅 URL]에서 다루겠다.
인공신경망을 복잡하게 쌓아 올린 '딥러닝'을 이해하기 위해서는, 가장 초기 형태의 인공신경망인 퍼셉트론(Perceptron) 을 이해해야 합니다. 퍼셉트론은 다수의 입력으로부터 하나의 결과를 내보내는 단순한 알고리즘이다.
이 그림은 다수의 입력을 받는 퍼셉트론의 구조입니다. 생물학적 뉴런의 입력, 출력 신호가 퍼셉트론에서는 각각 입력값()과 출력값()에 해당한다.
가운데 원은 '인공 뉴런'을 의미하며, 실제 뉴런에서 신호를 전달하는 역할은 가중치(, Weight) 가 대신한다. 각각의 입력값 는 고유한 가중치 와 곱해져서 인공 뉴런으로 전달된다.
각 입력값과 가중치의 곱을 모두 더한 값이 특정 임계치() 를 넘으면 인공 뉴런은 1을 출력하고, 넘지 못하면 0을 출력한다. 이렇게 초기 퍼셉트론에서 사용된 함수를 계단 함수(Step Function) 라고 부른다.

이때 임계치를 좌변으로 넘겨 편향(, Bias) 으로 표현할 수도 있다.

이렇게 뉴런에서 들어온 신호의 총합을 판단하여 출력값을 변경시키는 함수를 활성화 함수(Activation Function) 라고 한다. 초기에는 위와 같은 계단 함수를 사용했지만, 신경망이 발전하면서 현재는 ReLU, Sigmoid 등 다양한 활성화 함수가 사용되고 있다.
가중치(Weight): 각 입력 신호가 결과 출력에 미치는 중요도를 조절합니다. 가중치가 클수록 해당 입력값이 중요하다는 것을 의미한다.
편향(Bias): 뉴런의 활성화 조건을 결정합니다. 편향이 크면 뉴런이 쉽게 활성화되어 더 복잡한 모델을 만들고, 작으면 활성화되는 뉴런이 적어져 모델이 단순해진다.
단층 퍼셉트론 : 계단함수 -> 1차 방정식 형태
퍼셉트론은 층의 개수에 따라 단층과 다층으로 나뉩니다. 단층 퍼셉트론은 값을 입력받는 '입력층'과 값을 내보내는 '출력층'으로만 구성된 가장 단순한 신경망이다.
단층 퍼셉트론의 식 :
단층 퍼셉트론은 1차 방정식의 형태를 띠고 있다. 따라서 선형적으로 분리 가능한(Linearly Separable) 데이터 구조인 AND, OR, NAND 논리 게이트 구현에 특화되어 있다.
AND 게이트 : , 가 모두 1인 경우에만 출력값 가 1이 나오는 구조.
직선 1개로 구분이 가능하다.

| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
OR 게이트 : , 중 모두 0인 경우에만 출력값 가 0이 나오는 구조.
직선 1개로 구분이 가능하다.
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
NAND 게이트 : 두 개의 입력값이 1인 경우에만 0이 나오는 구조.
직선 1개로 구분이 가능하다.
| 0 | 0 | 1 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
XOR 게이트 : , 가 , 인 경우에만 1이 나오는 구조.
직선 1개로 두 그룹을 구분할 수 없다.
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 0 |
위의 그림에서 볼 수 있듯이, 하얀색 원과 검은색 원이 대각선으로 교차하고 있어 직선 하나로는 절대 두 그룹을 나눌 수 없다. 즉, 단층 퍼셉트론으로는 XOR 게이트를 구현할 수 없는 치명적인 한계(선형 분리 불가 문제)가 존재한다. 이를 해결하려면 우측 그림처럼 적어도 두 개의 선이 필요하며, 이에 대한 해답이 바로 '다층 퍼셉트론'이다.
다층 퍼셉트론은 단층 퍼셉트론의 입력층과 출력층 사이에 '은닉층(Hidden Layer)' 을 추가한 모델이다. 은닉층의 노드 개수가 늘어날수록 도화지에 그을 수 있는 선의 개수가 늘어나기 때문에, XOR 문제처럼 복잡한 영역도 공간을 가두어 분류할 수 있다.

위 이미지처럼 은닉층에 여러 개의 노드를 두어 다수의 직선(1차 방정식)을 교차시키면 곡선 형태의 복잡한 경계 영역을 만들어 낼 수 있다.

이렇게 은닉층이 2개 이상으로 깊게 쌓인 신경망을 심층 신경망(Deep Neural Network, DNN) 이라고 부른다.
결국 기계가 정답을 맞히기 위해서는 이 복잡한 신경망 속 수많은 선(가중치와 편향)들의 최적값을 스스로 찾아내도록 자동화해야 한다. 이것이 바로 머신러닝에서 말하는 '학습(Training)' 과정이며, 이때 오차를 계산하는 손실 함수(Loss function) 와 최적의 방향을 찾아가는 옵티마이저(Optimizer) 가 핵심적인 역할을 수행합니다.
이러한 심층 신경망을 학습시키는 일련의 과정을 우리는 딥러닝(Deep Learning) 이라고 부르는 것이다.