데이터 과학/딥러닝(Deep Learning)

Sigmoid 함수 vs Softmax 함수

EastHoon 2021. 2. 1. 00:30

계단함수

Sigmoid 함수

Softmax 함수


계단함수, Sigmoid 함수

"퍼셉트론에서는 활성화 함수로 계단 함수를 이용한다"라고 할수 있다.

 

반면, 신경망서는 활성함수로 시그모이드 함수를 이용하여 신호로 변환하고, 그 변환된 신호를 다음 뉴런에 전달한다.

 

시그모이드 함수

 

# 계단 함수
def step_function(x):
    y = x > 0
    return y.astype(np.int)
    
# 시그모이드 함수
def sigmoid_function(x):
    return 1 / (1 + np.exp(-x))
    

계단함수와 시그모이드 함수 공통점

- 비 선형 함수

 

※ 신경망에서 층을 깊에 쌓은 것에 대한 혜택을 받고 싶다면, 활성함수로 반드시 비선형 함수를 사용해야 한다.


Relu 함수

# Relu 함수
def relu(x):
    return np.maximum(0, x)

Softmax 함수

- 출력층의 각 뉴런이 모든 입력신호에서 영향을 받는다.

def softmax(x):
    exp_x = np.exp(x) # x는 배열
    sum_exp_x = np.sum(exp_x)
    y = exp_x / sum_exp_x
    
    return y

 

소프트 맥스 함수는 모든 입력 신호로 부터 화살표를 받는다.

출력 층의 각 뉴런이 모든 입력 신호에서 영향을 받는다.

 

 

 

 

 

 

 

 

※ 활성화 함수는 문제의 성질에 맞게 정한다.

- 회귀에는 항등함수

- 이진 클래스 분류에는 시그모이드 함수

- 다중 클래스 분류에는 소프트맥스 함수를 사용하는 것이 일반적이다.

 


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

반응형