[밑바닥부터 시작하는 딥러닝] Ch 3. 신경망

1. 신경망이란

 

신경망을 그림으로 나타내면 다음과 같습니다. 여기에서 가장 왼족 줄을 입력층, 맨 오른쪽 줄을 출력층, 중간 줄을 은닉층이라고 합니다. 은닉층의 뉴런은 사람 눈에는 보이지 않습니다. 또한, 앞으로는 입력층에서 출력층 방향으로 차례로 0층, 1층, 2층이라고 하겠습니다. 그림에서는 0층은 입력층, 1층이 은닉층, 2층이 출력층이 됩니다. 

신경망 그림


2. 퍼셉트론 복습

퍼셉트론

왼쪽 그림은 $x_1, x_2$라는 두 신호를 입력받아 $y$를 출력하는 퍼셉트론입니다. 이 퍼셉트론을 수식으로 나타내면 아래의 식이 됩니다.

식에서 b는 편향을 나타내는 매개변수로, 뉴런이 얼마나 쉽게 활성화되느냐를 제어합니다. 한편, $w_1, w_2$는 각 신호의 가중치를 나타내는 매개변수로, 각 신호의 영향력을 제어합니다. 

 

위의 퍼셉트론 그림에서는 편향 b가 보이지 않습니다. 편향을 명시한다면 아래의 그림과 같이 나타낼 수 있습니다.

 

편향을 명시한 퍼셉트론

위의 그림에서는 가중치가 b이고 입력이 1인 뉴런이 추가되었습니다. 이 퍼셉트론의 동작은 $x_1, x_2, 1$이라는 3개의 신호가 뉴런에 입력되어, 각 신호에 가중치를 곱한 후, 다음 뉴런에 전달됩니다. 다음 뉴런에서는 이 신호들의 값을 더하여, 그 합이 0을 넘으면 1을 출력하고 그렇지 않으면 0을 출력합니다. 편향의 입력 신호는 항상 1이기 때문에 그림에서는 해당 뉴런을 회색으로 채워 다른 뉴런과 구별하였습니다. 

 

그럼 식을 더 간결한 형태로 작성해보겠습니다. 이를 위해서는 0을 넘으면 1을 출력하고 그렇지 않으면 0을 출력하는 것을 하나의 함수로 나타냅니다. 이 함수를  $h(x)$라 하면 아래의 두 식으로 표현할 수 있습니다. 

 

[식 1]
[식 2]

[식 1]은 입력 신호의 총합이 $h(x)$라는 함수를 거쳐 변환되어, 그 변환된 값이 $y$의 출력이 됨을 보여줍니다. [식 2]의 $h(x)$함수는 입력이 0을 넘으면 1을 돌려주고 그렇지 않으면 0을 돌려줍니다. 


3. 활성화 함수의 등장

 

$h(x)$함수처럼, 입력 신호의 총합을 출력 신호로 변환하는 함수를 일반적으로 활성화 함수라고 합니다. 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 합니다. 

 

[식 1]을 다시 작성해봅시다. [식 1]은 가중치가 곱해진 입력 신호의 총합을 계산하고, 그 합을 활성화 함수에 입력해 결과를 내는 2단계로 처리됩니다. 그래서 이 식은 다음과 같은 2개의 식으로 나눌 수 있습니다. 

[식 3]
[식 4]

[식 3]은 가중치가 달린 입력 신호와 편향의 총합을 계산하고, 이를 a라 합니다. 그리고 [식 4]는 a를 함수 $h( )$에 넣어 y를 출력하는 흐름입니다. 지금까지의 뉴런을 그려보면 [식 3]과 [식 4]는 아래의 그림처럼 나타낼 수 있습니다. 

활성화 함수의 처리 과정

기존 뉴런의 원을 키우고, 그 안에 활성화 함수의 처리 과정을 명시적으로 그려 넣었습니다. 즉, 가중치 신호를 조합한 결과가 a라는 노드가 되고, 활성화 함수 $h( )$를 통과하여 y라는 노드로 변환되는 과정이 분명하게 나타나 있습니다. 

 

 

이 글은 밑바닥부터 시작하는 딥러닝 책을 보며 공부하여 작성한 글입니다.

한빛미디어에서 출간한 '밑바닥부터 시작하는 딥러닝'의 코드를 담고 있습니다.