본문 바로가기
Data Science/머신러닝&딥러닝 기초 이론

[딥러닝 실습] 활성화함수 Softmax 함수

by titaniumm 2020. 4. 14.

소프트 맥스 함수

기존의 함수는 0과 1를 구별하는 binary classification 일때 유용하게 쓰였다.

하지만 두개 이상의  classification을 할때 활용되는 함수가 바로 softmax이다.

위의 수식을 간단하게 요약해서 말하자면 "자신" 을 전체로 나눈것. 즉 확률이다.

따라서, 0< P <1 의 값이며 모

#활성화 항수(softmax함수)
import numpy as np
import matplotlib.pyplot as plt
#C를 활요해준 이유는 값의 overflow를 막기 위함(c=최대값)

#1차원 일때 softmax함수
def softmax(a):
    c = np.max(a)
    exp_a = np.exp(a-c)
    sum_exp_a =np.sum(exp_a)
    y = exp_a/sum_exp_a
    return y

#2차원 일때 softmax함수
def softmax(x):
    if x.ndim ==2:
        x = x - x.max(axis=1,keepdims =True)
        x = np.exp(x)
        x /= x.sum(axis = 1,keepdims =True)
    elif x.ndim == 1:
        x = x-np.max(x)
        x = np.exp(x) / np.sum(np.exp(x))
    return x

든 x에 대한 y의 합을 1이다.

댓글