티스토리 뷰

밑바닥부터 시작하는 딥러닝1

신경망

금복이 2023. 11. 25. 19:24

1. 신경망

앞장에서, AND, OR 게이트의 진리표를 보면 인간이 직접 적절한 가중치를 설정해야 했다. 신경망은 적절한 가중치 값을 데이터로부터 자동으로 학습한다. 본 장에선 신경망의 개요와, 신경망이 입력 데이터를 식별하는 처리 과정을 알아본다.

 

 

 

 

2. 활성화 함수

퍼셉트론의 동작을 간단히 요약하면 아래와 같다.

 

 

 

 

$h(x)$와 같이 입력 신호의 총합을 출력 신호로 변환하는 함수를 활성화 함수라고 한다. 현재 $h(x)$는 0을 경계로 출력이 바뀌는 계단 함수이다. 그렇기에 퍼셉트론은 활성화 함수로 계단 함수를 이용한다. 다른 활성화 함수를 사용하는 것은 신경망으로 나아가는 길이다.

 

 

신경망에서 활성화 함수로 자주 이용했던 시그모이드 함수는 아래와 같다.

 

 

 

 

 

 

 

3. 시그모이드 함수와 계단 함수의 차이

가장 먼저 느껴지는 점은 매끄러움의 정도이다. 시그모이드 함수는 부드러운 곡선이며 입력에 따라 출력이 연속적으로 변화한다. 이러한 매끈함은 신경망 학습에 매우 중요한 영향을 준다.

 

 

 

 

4. 비선형 함수

중요한 공통점은 둘 다 비선형 함수라는 것이다. 신경망의 활성화 함수로는 비선형 함수를 사용해야 한다. 선형 함수를 사용하면 신경망의 층을 깊게 하는 의미가 없어지기 때문이다.

 

가령 선형 함수인 $h(x)=cx$를 활성화 함수로 사용하여 3층 신경망을 구성했다고 하자. $y(x)=h(h(h(x)))$가 되며, 이 계산은 $y(x)=c^{3}x=ax$과 같다. 은닉층이 없는 네트워크로 표현이 가능하다는 점이 핵심이다. 그러므로, 층을 쌓아 얻는 혜택을 누리고 싶다면 활성화 함수로 반드시 비선형 함수를 사용해야 한다.

 

 

 

 

5. ReLU 함수

시그모이드 함수는 신경망 분야에서 오래전부터 이용해왔으나, 이제는 ReLU 함수를 더 자주 이용한다.

 

 

 

 

 

 

6. 출력층 설계하기

신경망은 분류와 회귀 모두에 이용할 수 있다. 어떤 문제냐에 따라 출력층에서 사용하는 활성화 함수가 달라진다. 일반적으로 호귀에는 항등 함수를, 분류에는 소프트맥스 함수를 사용한다.

 

 

 

 

$n$은 출력층의 뉴런 수, $y_{k}$는 그중 $k$번째 출력이다. 위 식을 컴퓨터로 계산할 때 오버플로 문제가 발생할 수 있다. 지수 함수가 매우 큰 값을 뱉을 수 있기 때문이다. 소프트맥스 함수의 계산을 개선하여 이 문제를 피할 수 있다.

 

 

 

 

보통 $C^{'}$로 원래 입력 신호에서 입력 신호 중 최댓값을 빼줌으로써 오버플로를 방지할 수 있다. 

 

 

 

 

 

 

7. 소프트맥스 함수의 특징

소프트맥스 함수의 출력은 0에서 1사이의 실수이며, 출력의 총합은 1이다. 이 성질 덕분에 소프트맥스 함수의 출력을 확률로 해석할 수 있다. 보통 학습 과정에선 이렇게 출력값을 확률로 해석하여 최종 결괏값을 뽑아내지만, 추론할 때는 계산에 드는 자원을 아끼고자 소프트맥스를 취하지 않는다.

 

'밑바닥부터 시작하는 딥러닝1' 카테고리의 다른 글

오차역전파법  (0) 2023.12.03
학습 알고리즘  (0) 2023.11.30
경사 하강법  (0) 2023.11.26
신경망 학습  (0) 2023.11.26
퍼셉트론  (1) 2023.11.25
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31