딥러닝에 대해 공부를 시작하면서 가장 처음 접한 것이 바로 퍼셉트론perceptron 이었다.
이 퍼셉트론이 근간이 되어 인공 신경망과 딥러닝이 시작되었기 때문이다.
퍼셉트론은 그 자체로 '인공 뉴런'이라고 할 수 있다.
인간의 뉴런이 자극을 받고 이를 전달하는 원리를 인공적으로 구현한 것이다.
그래서 궁금해졌다. 과연 어떤 점에서 뉴런과 닮았다고 하는 것일까?
나처럼 궁금한 사람들을 위해 정리해 보았다.
무엇이, 무엇이 똑같을까?
퍼셉트론은 뉴런을 그대로 본 따서 만들었기 때문에, 구조와 기능 면에서 거의 같다.
아래 그림을 보면서 설명하면 더욱 명확하게 와닿을 것이다.
1. 뉴런 수상돌기 Dendrite ↔ 퍼셉트론 Input `x`
뉴런은 여러 개의 수상돌기들과 한 개의 축삭돌기로 구성되어 있다. 그중 수상돌기들은 다른 뉴런들로부터 자극을 받아들이는 역할을 한다.
퍼셉트론도 마찬가지로 `x`라는 입력 값을 받아들인다. 받아 들이는 개수에 따라 `x_0, x_1, x_2, ...` 로 표기할 수 있다.
2. 뉴런 시냅스 Synapse ↔ 퍼셉트론 가중치 `w`
다른 뉴런들로부터 자극 혹은 신호를 받아 들이는 수상돌기의 연결 부위에는 시냅스가 존재한다.
이 시냅스는 전기 신호의 세기를 재조정하여 수상돌기가 더 중요한 자극을 잘 수용하도록 한다.
이를 수학적으로 표현한 것이 바로 퍼셉트론의 가중치이다.
각 입력 값들이 적절한 가중치 `w`를 지니고, 결과적으로 그 값을 곱한 만큼 입력 값으로 받아 들인다.
수학적으로 표기하면, `w_0x_0, w_1x_1, w_2x_2, ...` 와 같다.
3. 뉴런 세포체 Soma(= Cell body) ↔ 퍼셉트론 Sum `\sum`
세포체는 받아들인 전기 신호들이 모두 합쳐지는 곳이다.
마찬가지로 퍼셉트론에서는 앞서 입력받은 값들을 모두 합치는 연산 `\sum(w_0x_0 + w_1x_1 + w_2x_2 + ... )` 을 한다.
4. 뉴런 축삭돌기 Axon ↔ 퍼셉트론 Output `y`
축삭돌기는 앞서 합쳐진 전기 신호들을 다음 뉴런으로 전달하는 역할을 한다. 그러나 이 신호들은 그대로 전달되는 것이 아니라 또 한 번 다음 뉴런과의 간극인 시냅스를 거치면서 세기가 재조정되기 때문에, 일정한 임계치 threshold를 넘어야만 전달이 가능하다.
퍼셉트론은 이러한 구조를 활성화 함수로 구현하였다. 여러 활성화 함수 중 이른바 '계단 함수(Step function)'이라고 불리는 함수 `h`는 가중치가 적용된 입력 값들의 총합이 일정한 값을 넘기면 1, 그렇지 않으면 0을 출력 값으로 내놓는다.
$$y = h(b + w_0x_0 + w_1x_1 + w_2x_2)$$
$$h(x) = \begin{cases}
0,& \ { } x\leq 0 \\
1,& \ { } x > 0
\end{cases}$$
위 내용을 종합해 퍼셉트론을 수식으로 나타내면 다음과 같다. `\theta`는 임계값(threshold)을 뜻한다.
$$y = \begin{cases}
0,& \ { } w_0x_0 + w_1x_1 + w_2x_2 \leq \theta \\
1,& \ { } w_0x_0 + w_1x_1 + w_2x_2 > \theta
\end{cases}$$
이걸로 뭘 하는 걸까?
예상했던 것보다 퍼셉트론은 뉴런을 쏙 빼닮은 것 같다. 이렇게 잘 만든 인공 뉴런으로는 과연 무얼 하는 걸까?
퍼셉트론은 입력과 출력층 사이 중간층이 몇 개인지에 따라 단층과 다층 퍼셉트론으로 나뉜다.
중간층은 그 안에서 어떤 식으로 계산이 이루어지는지 들여다볼 수 없어서 '은닉층 hidden layer' 라고도 불린다.
이 은닉층이 많을수록 더욱 복잡하고 정교한 계산이 필요한 문제를 풀 수 있게 된다.
여기에 다양한 활성화 함수와 알고리즘이 곁들여지면 인공 신경망(ANN, Artificial Neural Network), 더 크게는 딥러닝(Deep Learning)으로 발전한다.
이와 관련해서는 다음에 더 자세히 정리해볼 예정이다.
아래 내용을 참고했습니다.
- 책 『밑바닥부터 시작하는 딥러닝』
- 유튜브 채널 한경훈 [딥러닝I] 1강. 퍼셉트론
- https://extsdd.tistory.com/221
'공부하며 성장하기 > 인공지능 AI' 카테고리의 다른 글
앙상블 학습(Ensemble Learning)이란? (2) | 2021.08.15 |
---|---|
경사하강법(Gradient Descent)이란? (0) | 2021.07.27 |
수치 미분(Numerical differentiation)이란? (0) | 2021.07.27 |
판다스Pandas 가 뭔가요? (+ 와인 리뷰 데이터 탐색 맛보기) (1) | 2021.07.10 |
[단단한 머신러닝] 01/ 머신러닝은 뭘 하는 건가요? (0) | 2021.07.03 |