# 퍼셉트론 (Perceptron): 인공신경망의 기초 단위

#### 퍼셉트론의 개념과 역사

퍼셉트론(Perceptron)은 인공신경망의 기초를 이루는 모델로, 1958년 프랭크 로젠블랫(Frank Rosenblatt)에 의해 개발되었다. 퍼셉트론은 생물학적 뉴런의 작동 원리를 모방한 단순한 선형 분류기로, 주어진 입력 데이터를 바탕으로 두 개의 클래스로 분류하는 역할을 한다. 퍼셉트론은 고정된 구조와 가중치를 사용하여 입력 벡터를 처리하고, 이를 통해 간단한 의사결정을 수행할 수 있다.

#### 퍼셉트론의 수학적 모델

퍼셉트론은 수학적으로 다음과 같은 구성 요소로 이루어진다:

1. **입력 벡터**: $ x = \[x\_1, x\_2, ..., x\_n] $은 n개의 입력값을 가진 벡터이다.
2. **가중치 벡터**: $ w = \[w\_1, w\_2, ..., w\_n] $은 각 입력값에 대응하는 가중치를 가진 벡터이다.
3. **편향 (bias)**: $ b $는 퍼셉트론의 출력에 영향을 미치는 추가적인 상수이다.
4. **활성화 함수**: 퍼셉트론의 활성화 함수는 입력과 가중치의 선형 결합 결과를 이진 출력으로 변환하는 역할을 한다.

퍼셉트론의 출력은 다음과 같은 식으로 표현된다:

$$
y = f(\sum\_{i=1}^{n} w\_i x\_i + b)
$$

여기서 $ f $는 활성화 함수로, 퍼셉트론의 경우 단순한 계단 함수(step function)가 사용된다. 이 함수는 입력값의 가중 합이 일정한 임계값(보통 0)을 초과하면 1을, 그렇지 않으면 0을 출력한다.

#### 퍼셉트론의 학습 알고리즘

퍼셉트론은 지도학습(supervised learning) 알고리즘으로, 주어진 데이터에 대해 올바른 출력을 생성할 수 있도록 가중치와 편향을 조정한다. 학습 과정은 다음과 같은 단계로 이루어진다:

1. **초기화**: 가중치 $ w $와 편향 $ b $를 임의의 작은 값으로 초기화한다.
2. **출력 계산**: 각 학습 데이터에 대해 퍼셉트론의 출력을 계산한다.
3. **오류 계산**: 예측된 출력 $ \hat{y} $와 실제 레이블 $ y $ 간의 오류를 계산한다.

$$
\text{Error} = y - \hat{y}
$$

4. **가중치 업데이트**: 오류를 기반으로 가중치와 편향을 업데이트한다. 학습률 $ \eta $는 가중치 변경의 크기를 조절하는 하이퍼파라미터이다.

$$
w\_i \leftarrow w\_i + \eta \cdot \text{Error} \cdot x\_i
$$

$$
b \leftarrow b + \eta \cdot \text{Error}
$$

5. **반복**: 오류가 사라지거나 허용 가능한 수준으로 감소할 때까지 2\~4단계를 반복한다.

#### 퍼셉트론의 한계

퍼셉트론은 단순한 선형 분류 문제를 해결하는 데 적합하지만, XOR 문제와 같은 비선형 분류 문제에서는 실패한다. 이는 퍼셉트론이 선형적으로 분리 가능한 문제만 해결할 수 있기 때문이다. 이러한 한계로 인해 다층 퍼셉트론(Multi-layer Perceptron, MLP)과 같은 보다 복잡한 인공신경망 구조가 개발되었다.

***

관련 자료:

* Rosenblatt, F. (1958). The Perceptron: A Probabilistic Model for Information Storage and Organization in the Brain. *Psychological Review*.
* Haykin, S. (1994). *Neural Networks: A Comprehensive Foundation*. Prentice Hall.
* Minsky, M., & Papert, S. (1969). *Perceptrons: An Introduction to Computational Geometry*. MIT Press.
