1. 비선형 활성화 함수(Activation Functions)
- 신경망의 성능을 향상시키기 위해 사용됨
- 선형 함수는 입력값과 가중치를 곱한 결과를 그대로 출력하기 때문에 신경망에서 여러 개의 활성화 함수를 사용한다면 최종 출력값은 입력값과 가중치의 선형 조합으로 표현되므로 입력 데이터의 비선형 관계를 표현할 수 없음
- 신경망이 입력 데이터의 비선형 관계를 잘 학습할 수 있도록 하기 위해 비선형 활성화 함수가 필요함.
시그모이드(Sigmoid)
1. 필요모듈 임포트
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):
return 1 / (1 + np.exp(-x))
x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.plot([0,0], [1.0, 0.0], ':')
plt.title('Sigmoid Function')
plt.show()
2. 결과값
하이퍼볼릭탄젠트(Hyperbolic Tangent)
1. 코드
x = np.arange(-5.0, 5.0, 0.1)
y = np.tanh(x)
plt.plot(x, y)
plt.plot([0,0], [1.0, 0.0], ':')
plt.axhline(y=0, color='orange', linestyle='--')
plt.title('Tanh Function')
plt.show()
2. 결과값
렐루(Relu)
1. 코드
def relu(x):
return np.maximum(0, x)
x = np.arange(-5.0, 5.0, 0.1)
y = relu(x)
plt.plot(x, y)
plt.plot([0,0], [5.0, 0.0], ':')
plt.title('Relu Function')
plt.show()
2. 결과값
소프트맥스(Softmax)
1. 코드
x = np.arange(-5.0, 5.0, 0.1)
y = np.exp(x) / np.sum(np.exp(x))
plt.plot(x, y)
plt.title('Softmax Function')
plt.show()
2. 결과값
2. 역전파(Backpropagation)
- 1969년 XOR는 '지금의 기술로 풀 수 없다'라는 것을 민스키 교수님이 수학적으로 증명함
- 1974년 Paul Werbos에 의해 박사 논문에서 해결이 되었음
- W, b를 이용해 주어진 입력을 가지고 출력을 만들어 낼 수 있음.
- 출력이 우리가 가지고 있는 값과 다른 출력일 경우 W, b를 조절 함
- 1986년 Hinton에 의해 위 같은 방법을 독차적으로 만들어 냄(재발견함)
'Study > 머신러닝과 딥러닝' 카테고리의 다른 글
[머신러닝과 딥러닝] 20. 간단한 CNN 모델 만들기 + MNIST 분류하기 (1) | 2024.01.10 |
---|---|
[머신러닝과 딥러닝] 19. CNN 기초 (0) | 2024.01.10 |
[머신러닝과 딥러닝] 17. 딥러닝(AND, OR, XOR 게이트) (1) | 2024.01.10 |
[머신러닝과 딥러닝] 16. 데이터 로더(손글씨 인식 모델) (0) | 2024.01.10 |
[머신러닝과 딥러닝] 15. 파이토치로 구현한 논리회귀_2(경사하강법 + 와인 품종 예측) (1) | 2024.01.10 |