데이터분석

17.활성화 함수

hyunsik_park 2023. 6. 16. 16:31
# 1. 비선형 활성화 함수(Activation Functions)
* 신경망의 성능을 향상시키기 위해 사용
* 선형 함수는 입력값과 가중치를 곱한 결과를 그대로 출력하기 떄문에 신경망에서 여러개의 선형 활성화 함수를 사용한다면 최종 출력값은 입력값과 가중치의 선형조합으로 표현되므로 이는 입력 데이터의 비선형 관계를 표현할 수 없음
* 신경망이 입력 데이터의 비선형 관계를 잘 학습할 수 있도록 하기 위해서 비선형 호라성화 함수를 사용

 

import numpy as np
import matplotlib.pyplot as plt
### 1-1. 시그모이드
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()

결과 : 

-----------------------------------------------------------------

### 1-2. 하이퍼볼릭탄젠트


def sigmoid(x):
  return 1/(1+np.exp(-x))

x = np.arange(-5.0, 5.0, 0.1)
y = np.tanh(x)

plt.plot(x, y)
plt.plot([0,0],[1.0, -1.0],':') # 가운데 점선 추가
plt.axhline(y=0, color='orange', linestyle='--')
plt.title('Sigmoid Function')
plt.show()
 
결과 :

 

-----------------------------------------------------------------

### 1-3. 렐루(Relu)
 
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()
 
결과 :

-----------------------------------------------------------------

### 1-4. 소프트맥스(Softmax)

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()

결과 : 

'데이터분석' 카테고리의 다른 글

15.데이터로더  (0) 2023.06.16
14.파이토치로 구현한 논리 회귀  (0) 2023.06.16