이 글의 핵심
- 퍼셉트론은 다수의 입력 신호를 받아 하나의 신호를 출력하는 알고리즘으로, 신경망의 기본 단위이자 딥러닝의 기원이다
- 입력 신호에 가중치를 곱하고 편향을 더한 값이 임계값을 넘으면 활성화(1), 넘지 않으면 비활성화(0)되는 구조를 가진다
- 가중치는 신호의 중요도(기울기)를, 편향은 뉴런의 활성화 난이도(절편)를 결정한다
- 단층 퍼셉트론은 AND, NAND, OR 게이트는 구현 가능하나 선형 분리가 불가능한 XOR 게이트는 구현할 수 없다
- XOR 문제 해결을 위해 퍼셉트론을 여러 층으로 쌓은 다층 퍼셉트론이 도입되었으며, 이는 비선형 영역을 표현할 수 있다
- 층을 깊게 쌓음으로써 복잡한 데이터를 표현하는 것이 딥러닝의 핵심 아이디어다
1. 퍼셉트론이란
퍼셉트론은 다수의 신호를 입력받아 하나의 신호를 출력하는 알고리즘으로, 신경망의 기본 단위가 된다.
퍼셉트론은 오래된 알고리즘이지만 신경망과 딥러닝의 기원이 되는 알고리즘이다. 아래 그림은 2개의 입력값을 받는 퍼셉트론의 예시다. 는 입력값이고, 는 각 입력값에 해당하는 가중치다. 그림에서 원은 뉴런 또는 노드라고 부른다.
입력 신호가 노드로 보내질 때 각각의 고유한 가중치를 곱해지며 특정 임곗값()을 넘어서면 활성화(1)되고, 그렇지 않으면 비활성화(0)된다.
2. 활성화 함수
기존 임곗값()을 로 치환하면 식이 아래와 같이 변한다. 여기서 를 편향(bias)라고 한다.
위 식을 단순히 표현하여 활성화 함수(Activation Function) 를 다음과 같이 정의할 수 있다. 입력 신호에 개별 가중치를 곱해 합산한 값과 편향을 더한 값을 입력값()으로 하는 함수로 만든 것이다. 해당 입력값이 0보다 크면 활성화, 그렇지 않으면 비활성화된다.
참고
- 특정 임계값을 넘으면 활성화되는 활성화 함수를 계단 함수(Step Function) 라고 한다
- 딥러닝에서 사용되는 대표적인 활성화 함수는 Sigmoid, ReLU가 있으며, 이를 이해하기 위해서 기초적인 계단 함수에 대한 이해가 필요하다
2.1 가중치와 편향의 의미
가중치와 편향은 의미와 역할이 서로 다르지만 종종 모두 ‘가중치’라고 표현하는 경우도 있다. 이들의 기하학적 의미는 다음과 같다.
- 가중치(): 결정 경계(직선)의 기울기(방향) 을 결정하며, 입력 신호의 중요도를 의미한다. 가중치 매개변수가 클수록 해당 입력 신호가 더 중요하다
- 편향(): 결정 경계의 절편(위치) 를 결정하며, 뉴런이 얼마나 쉽게 활성화되는지를 조절한다. 편향 매개변수가 클수록 뉴런의 활성화가 더 쉽다
3. 논리 회로
퍼셉트론을 설명하는데 대표적인 논리 회로 예시는 AND, NAND, OR, XOR이다. 아래는 2개의 입력값에 따른 논리 회로의 출력 결과(진리표) 예시다.
- AND: 입력값이 모두 1일 때만 1
- NAND(Not AND): 입력값이 모두 1이 아닐 때만 1
- OR: 입력값 중 하나라도 1이면 1
- XOR(배타적 논리합): 입력값 중 한쪽이 1인 경우에만 1
| AND | NAND | OR | XOR | ||
|---|---|---|---|---|---|
| 0 | 0 | 0 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 1 | 0 | 1 | 0 |
이러한 진리표대로 출력되기 위해 매개변수 의 값들을 조정한다. 이를 만족하는 매개변수의 조합은 무수히 많다.
매개변수 설정
퍼셉트론의 매개변수 값은 컴퓨터가 아닌 인간이 정한다. 머신러닝을 통해 매개변수 값을 정하는 것을 컴퓨터가 자동으로 하도록 학습한다.
3.1 단층 퍼셉트론의 한계
현재까지 우리는 입력 신호 2개에 따른 출력 신호 1개인 퍼셉트론을 살펴보았다. 그러나 해당 퍼셉트론 구조(선형)에서는 위 논리 회로 중 XOR을 구현할 수 없다.
해당 퍼셉트론 구조는 선형구조로 XOR을 구현할 수 없다. 그러나 아래 그림과 같이 곡선(비선형)이라면 XOR을 구현할 수 있으며, 이를 위해서는 퍼셉트론을 여러 층으로 쌓은 다층 퍼셉트론(multi-layer perceptron) 을 이용한다.
- AND, NAND, OR: 직선 하나로 0과 1의 영역을 나눌 수 있다 (선형 분리 가능)
- XOR: 직선 하나로는 절대 0과 1의 영역을 나눌 수 없다 (선형 분리 불가능, 비선형 영역 필요)
4. 다층 퍼셉트론
4.1 비선형성의 도입
XOR 문제를 해결하기 위해서는 직선이 아닌 곡선, 즉 비선형 영역을 만들어야 한다. 퍼셉트론을 층(Layer)으로 쌓으면 이러한 비선형적인 표현이 가능해진다.
아래와 같이 단층 퍼셉트론에서 구현하지 못한 XOR 논리 회로를 만드는 방법은 다양하지만, 기존 논리회로인 NAND, OR, AND 게이트의 조합을 통해 아래와 같이 만들 수 있다.
기존의 입력 신호가 NAND, OR 게이트의 입력 값이 되고, 출력된 또 다른 신호()가 AND 게이트에 입력 신호가 된다. 따라서 기존 입력 신호()와 최종 출력 신호()를 보면 XOR 논리회로와 같다는 것을 알 수 있다.
| (NAND) | (OR) | y (AND) | ||
|---|---|---|---|---|
| 0 | 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 1 | 0 | 1 | 0 |
4.2 딥러닝으로의 연결
다층 퍼셉트론은 단층 퍼셉트론이 해결하지 못하는 복잡한 문제를 해결할 수 있다.
다층 퍼셉트론은 아래의 예시 그림 같이 0층(입력층) 1층(은닉층) 2층(출력층) 의 구조를 가진다. 이는 이론적으로 2층(은닉층 1개) 퍼셉트론이면 컴퓨터를 표현할 수 있고, 층을 더 깊게 쌓으면 세상의 복잡한 데이터를 표현할 수 있다. 이것이 딥러닝(Deep Learning) 의 시초이다.
단층 퍼셉트론으로 표현하지 못하는 것들을 층을 여러 개로 늘려 더 다양한 대상을 표현할 수 있다. 다시 말해 단층 퍼셉트론은 선형 구조만 표현할 수 있는 반면에 다층 퍼셉트론은 비선형 구조도 표현할 수 있다.
참고사항
현대의 딥러닝은 계단 함수 대신 Sigmoid, ReLU 등의 미분 가능한 활성화 함수를 사용하여, 오차역전파법(Backpropagation)을 통해 가중치를 자동으로 학습한다
참고사이트
- 밑바닥부터 시작하는 딥러닝1