3.1.1 신경망의 예
신경망을 그림으로 나타내면 [그림 3-1]처럼 된다. 여기에서 가장 왼쪽 줄을 입력층, 맨 오른쪽 줄을 출력층, 중간 줄을 은닉층이라고 한다. 은닉층의 뉴런은 사람 눈에 보이지 않기 때문에 '은닉'층인 것이다. 이 책에서는 입력층에서 출력층 방향으로 차례로 0층, 1층, 2층이라고 부른다.
cf) [그림 3-1]의 신경망은 모두 3층으로 구성되지만, 가중치를 갖는 층은 2개뿐이기 때문에 '2층 신경망'이라고 한다. 문헌에 따라서는 신경망을 구성하는 층수를 기준으로 '3층 신경망'이라고 하는 경우도 있다.
3.1.2 퍼셉트론 복습
신경망의 신호 전달 방법을 보기 전에 퍼셉트론을 복습해 보자. 먼저 [그림 3-2]와 같은 구조의 네트워크를 생각해 보자.
[그림 3-2]는 \(x_{1}\)과 \(x_{2}\)라는 두 신호를 입력받아 \(y\)를 출력하는 퍼셉트론이다. 이 퍼셉트론을 수식으로 나타내면 [식 3.1]이 된다.
여기서 \(b\)는 편향을 나타내는 매개변수로, '뉴런이 얼마나 쉽게 활성화되느냐'를 제어한다.
\(w_{1}\)과 \(w_{2}\)는 각 신호의 가중치를 나타내는 매개변수로, '각 신호의 영향력'을 제어한다.
[그림 3-2]의 네트워크에는 편향 b가 보이지 않는다. 여기에 편향을 명시하면 [그림 3-3]과 같이 나타낼 수 있다.
[그림 3-3]에서는 가중치가 \(b\)이고 입력이 1인 뉴런이 추가되었다. 이 퍼셉트론의 동작은 \(x_{1}\), \(x_{1}\), 1이라는 3개의 신호가 뉴런에 입력되어, 각 신호에 가중치를 곱한 후, 다음 뉴런에 전달된다. 다음 뉴런에서는 이 신호들의 값을 더하여, 그 합이 0을 넘으면 1을 출력하고 그렇지 않으면 0을 출력한다. 참고로, 편향의 입력 신호는 항상 1이기 때문에 그림에서는 편향 뉴런을 회색으로 채워 다른 뉴런과 구별했다.
[식 3.1]을 더 간결한 형태로 작성하기 위해 조건 분기의 동작(0을 넘으면 '1' 출력, 그렇지 않으면 '0' 출력)을 하나의 함수로 나타낸다. 이 함수를 \(h(x)\)라 하면 [식 3.1]을 다음과 같이 [식 3.2]와 [식 3.3]으로 표현할 수 있다.
[식 3.2]는 입력 신호의 총합이 \(h(x)\)라는 함수를 거쳐 변환되어, 그 변환된 값이 y의 출력이 됨을 보여준다. 그리고 [식 3.3]의 \(h(x)\) 함수는 입력이 0을 넘으면 1을 돌려주고 그렇지 않으면 -을 돌려준다. 결과적으로 [식 3.1]이 하는 일과 [식 3.2]와 [식 3.3]이 하는 일은 같다.
3.1.3 활성화 함수의 등장
조금 전 \(h(x)\)라는 함수가 등장했는데, 이처럼 입력 신호의 총합을 출력 신호로 변환하는 함수를 활성화 함수(activation function)라 한다. '활성화'라는 이름이 말해주듯 활성화 함수는 입력 신호의 총합이 활성화를 일으키는지 정하는 역할을 한다.
그럼 [식 3.2]를 다시 써보자. [식 3.2]는 가중치가 곱해진 입력 신호의 총합을 계산하고, 그 합을 활성화 함수에 입력해 결과를 내는 2단계로 처리된다. 그래서 이 식은 다음과 같은 2개의 식으로 나눌 수 있다.
[식 3.4]는 가중치가 달린 입력 신호와 편향의 총합을 계산하고, 이를 a라 한다. 그리고 [식 3.5]는 a를 함수 h()에 넣어 y를 출력하는 흐름이다.
지금까지와 같이 뉴런을 큰 원(O)으로 그려보면 [식 3.4]와 [식 3.5]는 [그림 3-4]처럼 나타낼 수 있다.
[그림 3-4]에서는 기존 뉴런의 원을 키우고, 그 안에 활성화 함수의 처리 과정을 명시적으로 넣었다. 즉 가중치 신호를 조합한 결과가 a라는 노드가 되고, 활성화 함수 h()를 통과하여 y라는 노드로 변환되는 과정이 나타나 있다. 이 책에서는 뉴런과 노드라는 용어를 같은 의미로 사용한다.
뉴런을 그릴 때 보통은 지금까지와 마찬가지로 [그림 3-5]의 왼쪽처럼 뉴런을 하나의 원으로 그리고, 신경망의 동작을 명확히 드러내고자 할 때, 오른쪽 그림처럼 활성화 처리 과정을 명시한다.
cf) 일반적으로 단순 퍼셉트론은 단층 네트워크에서 계단 함수(임계값을 경계로 출력이 바뀌는 함수)를 활성화함수로 사용한 모델을 가리키고 다층 퍼셉트론은 신경망(여러 층으로 구성되고 시그모이드 함수 등의 매끈한 활성화 함수를 사용하는 네트워크)을 가리킨다.
'Data Science > 밑바닥부터 시작하는 딥러닝' 카테고리의 다른 글
데이터에서 학습한다! (0) | 2023.07.15 |
---|---|
Chapter 3.4 3층 신경망 구현하기 (1) | 2023.05.25 |
Chapter 3.3 다차원 배열의 계산 (0) | 2023.05.24 |
Chapter 3.2 활성화 함수 (0) | 2023.05.24 |
퍼셉트론 (0) | 2023.05.15 |