본문 바로가기

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

Sigmoid 함수 vs Softmax 함수

반응형

계단함수

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

반응형

'데이터 과학 > 딥러닝(Deep Learning)' 카테고리의 다른 글

PCA(주성분 분석) 정리  (0) 2021.02.10
Autoencoder 설명  (0) 2021.02.06
Transformer 설명  (0) 2021.01.14
Attention 모델 - 구현편  (0) 2020.12.27
RNN & LSTM 설명 및 구현  (2) 2020.11.10