활성화 함수는 신경망에서 입력 신호를 출력 신호로 변환하는 비선형 함수입니다.
시그모이드 (Sigmoid)- 출력값이 0~1 사이- 이진 분류에서 주로 사용
def sigmoid(x):
return 1 / (1 + np.exp(-x))
ReLU (Rectified Linear Unit)- 가장 널리 사용되는 활성화 함수- 0보다 작으면 0, 크면 입력값 그대로 출력
def relu(x):
return max(0, x)
출력층의 활성화 함수는 풀고자 하는 문제의 종류에 따라 선택합니다.
소프트맥스 함수는 다중 분류 문제에서 사용되는 활성화 함수입니다.
def softmax(x):
exp_x = np.exp(x - np.max(x)) # 오버플로우 방지
return exp_x / np.sum(exp_x)
크로스 엔트로피는 다중 분류 문제에서 주로 사용되는 손실 함수입니다.
def cross_entropy_loss(y_pred, y_true):
return -np.sum(y_true * np.log(y_pred))
소프트맥스 함수와 크로스 엔트로피 손실 함수는 다중 분류 문제에서 가장 효과적인 조합