위키득계정 ↗
기술

소프트플러스

소프트플러스기술
영문명
Softplus
정의
ln(1+exp(x))
도함수
1/(1+exp(-x))
비교 함수
ReLU: max(0,x)
소프트플러스는 f(x)=ln(1+exp(x))로 정의하는 매끄러운 함수다. 양의 부분을 남기는 ReLU 함수 max(0,x)의 부드러운 근사로 사용한다. 표준 로지스틱 함수와 연결되지만 출력 자체가 0과 1 사이의 확률인 것은 아니다.

간단한 입력값에서 계산하기

x=ln 3이면 exp(x)=3이므로 소프트플러스 값은 ln 4다. x=-ln 3이면 ln(4/3)이다. 유한한 실수 입력에서 수학적인 값은 항상 양수이며 음의 입력을 정확히 0으로 잘라 내지는 않는다.

ReLU와의 차이

소프트플러스는 max(0,x)+ln(1+exp(-|x|))로 다시 쓸 수 있다. 따라서 ReLU보다 크고 두 함수의 차이는 ln 2 이하이다. 차이는 x=0에서 가장 크며 입력의 절댓값이 커지면 작아진다. 두 함수가 정확히 같은 것은 아니다.

기울기와 출력의 범위

미분하면 exp(x)/(1+exp(x))가 되어 로지스틱 함수와 같다. 기울기는 0과 1 사이지만 함수값에는 1이라는 상한이 없다. 예를 들어 f(ln 3)=ln 4는 1보다 크다. 도함수의 범위와 원래 함수의 범위를 혼동하면 안 된다.

큰 입력의 계산

x=1000에서 exp(1000)을 먼저 만들면 부동소수점 범위를 넘을 수 있다. 대신 1000+ln(1+exp(-1000))으로 계산하면 큰 양의 지수를 피한다. 아주 작은 지수에서는 1에 더한 값이 반올림될 수 있으므로 ln(1+u)를 작은 u에서도 안정적으로 계산하는 연산도 도움이 된다.

관련 문서

소프트맥스 / 로그섬엑스프 / 로지스틱 회귀 / 지수함수 / 자연로그 / 도함수 / 부동소수점