Neural Network
이전 글에서 알아봤던 logistic regression을 아래처럼 표시해보자.

이런 작은 층을 여러 개 쌓으면 Neural Network가 된다.
대괄호 [ ] 는 층을 얘기한다.

computation graph를 그리면 아래와 같다.

보통 입력층은 빼고 네트워크가 몇 층인지를 애기한다.
따라서 아래의 그림에서는 깊이 2짜리 네트워크가 된다.
아래처럼 3개의 입력(3차원)이 있다고 가정해보자.
$a^{[1]}_1$같은 표현에서 지수 위치의 [ ]는 층을, 아래첨자는 각 노드의 값을 얘기한다.
input layer에서 hidden layer로 넘어갈 때,
각 입력들에게 가중치가 한 세트씩 곱해져 hidden layer의 각각의 노드에 들어간다.
이 경우 한 세트는 3개의 가중치 값들로 이루어져 있으므로 차원은 3 x 1이 될 것이다.
이를 $Wx$꼴로 곱해주기 위해 실제 연산시에는 $W^T$로 사용한다.

위 그림에 있는 식을 모두 계산하게 되면 hidden layer에서 필요한 계산은 모두 한 것이다.
4개의 식을 하나로 더해 $Z^{[1]}=W^{[1]}+b^{[1]}$라고 작성할 수 있다.

방금은 hidden layer에 대한 연산만 알아봤지만 입력$x$부터 최종 출력$a^{[2]}= \hat{y}$까지의 전체 연산을 식으로 쓰면 아래와 같다.
밑의 파란 글씨는 차원을 얘기한다.

$m$개의 테스트 케이스를 사용해서 학습 시킬 때 for 문을 사용하면 아래와 같다.

그러나 for문을 사용하는 것은 학습을 느리게 하는 주범이다.
따라서 아래처럼 테스트케이스를 묶어 벡터화(행렬화)를 하면 병렬 계산의 장점을 누릴 수 있다.
아래처럼 대문자를 통해 여러 테스트 데이터가 합쳐진 것을 나타내기로 하자.

Activation Function

식을 보면 시그모이드 함수가 들어있다.
이렇게 한 층이 끝날 때 적용되는 함수를 activation function이라고 한다.
이 함수를 다른 함수로도 바꿀 수 있다.

여러 가지 activation function이 있지만 아래에서 대표적인 몇가지를 확인하고 넘어가자.

그런데 이런 activation function이 이런 비선형적인 모양을 가지는 이유는 무엇일까?
선형적인 layer는 계속 쌓아도 결국 하나의 layer와 똑같기 때문이다.
수학에서 일차함수를 계속 합성해도 일차함수인 것과 같다.
이 activation function들의 미분 중 알아두면 좋을 만한 것들이 있다.
먼저 sigmoid함수의 미분이다.
시그모이드 함수 $g(z) = {1}/({1+e^{-z}})$의 미분은
$g'(z) = g(z)(1-g(z))$이다.
또 tanh함수 $g(z) = (e^z - e^{-z})/(e^z + e^{-z})$의 미분은
$g'(z) = 1-g(z)^2$이다.
'CS > 딥러닝' 카테고리의 다른 글
| [딥러닝] 6. 최적화 (0) | 2026.04.13 |
|---|---|
| [딥러닝] 5. Mini batch와 Batch Normalization (0) | 2026.04.01 |
| [딥러닝] 4. Deep Neural Network (0) | 2026.03.30 |
| [딥러닝] 3. multi layer network에서의 gradient 계산과 차원 (0) | 2026.03.25 |
| [딥러닝] 1. Logistic Regression (3) | 2026.03.11 |