0.Review
- [1] 퍼셉트론에서 설명한 퍼셉트론이 다음과 같은 식이라는 것을 알고 있다.
- 임계값 theta를 우변으로 한번 넘겨보자.
- 여기서 b는 편향(bias)를 의미한다
즉, b = -theta 를 의미한다. /
2. 활성화 함수(Activation Function)
퍼셉트론 식에서 Heaviside Function을 이용해주면 다음과 같이 식 변형이 가능하다.
cf) Heaviside Function?
- 즉, h() 안에 있는 수치에 따라서 Return 값이 0 또는 1이 결정된다.
- 여기서 h()를 활성화 함수(Activation Function)이라고 정의한다.
- 이를 신경망으로 나타내면 다음과 같다.
- 밑시딥 1 에 나온 더 다양한 활성화함수에 대해서 알아보자.
2.1. 시그모이드 (Sigmoid)
- 시그모이드 함수의 특징은 다음과 같다.
1. S자 형태 (매끄러움)
- 이 매끄러움이 신경망 학습에 매우 중요한 역할
- 입력에 따라 출력이 연속적으로 변화함
2. 비선형 함수(Non-linear Function)
- 비선형 함수이기 때문에 학습하는데 효과적임(선형 함수는 학습이 어려움 이 이유에 대해선 뒤에 언급)
3. f'(x)
- 미분했을 때, 연산이 곱셈과, 뺄셈으로만 이루어져 있기 때문에, 계산이 빠름(역전파)
- Code 구현
import numpy as np
def sigmoid(x):
return 1/(1+np.e**(-x))
2.2. ReLU 함수
- ReLU는 입력이 0보다 크면 그 입력을 그대로, 0 이하면 0을 출력하는 함수이다. cf) Sigmoid의 단점을 해결해줬음)
- 코드 구현
def ReLU(x):
return np.maximum(0,x)
3. 선형 함수(Linear Function)의 문제점?
- 만약 f(x) = ax 라고 가정하자, 그러면 은닉층이 3층인 식은 다음과 같이
- f(f(f(x))) = a^3x가 되버린다.
- 즉, 학습을 하더라도 1차가 되어버리기 때문에 미분을 하게 될경우 0차가 되어 학습에 지장이 되어버린다.
- 그래서 딥러닝의 활성화 함수는 반드시 비선형 함수를 쌓아야 한다.
'DS Study > 밑바닥부터 시작하는 딥러닝 1' 카테고리의 다른 글
[밑시딥1] [5] 손실함수(Loss Function) (0) | 2024.07.29 |
---|---|
[밑시딥1] [4] MNIST (0) | 2024.07.29 |
[밑시딥1] [3] 인공신경망(ANN) (1) | 2024.07.26 |
[밑시딥1] [1] 퍼셉트론 (Perceptron) (0) | 2024.07.24 |