activations_2
activation function
linear
함수 이름: linear_activate, linear_gradient
입력:
x: float형 변수
동작:
linear_activate 함수는 입력 x를 그대로 출력하는 함수이다.
linear_gradient 함수는 입력 x에 대한 미분값을 계산하여 반환하는 함수이다. 선형 함수는 미분값이 항상 일정하므로 linear_gradient 함수는 상수 값을 반환한다.
설명:
선형 함수는 입력 값에 대해 직선 형태로 출력 값을 계산하는 함수이다. 딥러닝에서는 입력 값을 변환하지 않고 그대로 출력하는 경우가 많은데, 이때 선형 함수를 활성화 함수로 사용할 수 있다.
linear_activate 함수는 입력 x를 그대로 출력하기 때문에, 입력 값을 변환하지 않고 그대로 사용하고자 할 때 활용된다.
linear_gradient 함수는 선형 함수의 미분값을 계산한다. 선형 함수는 기울기가 항상 일정하므로, 미분값은 항상 1이다. 따라서 linear_gradient 함수는 입력 값에 관계없이 1을 반환한다.
logistic
함수 이름: logistic_activate, logistic_gradient
입력:
x: 실수 값
동작:
logistic_activate: 로지스틱 함수의 활성화 값을 계산하여 반환한다.
logistic_gradient: 로지스틱 함수의 미분 값을 계산하여 반환한다.
설명:
logistic_activate: 로지스틱 함수는 S자 형태의 곡선으로, 입력 x가 클수록 1에 가까운 값을 출력하고, 작을수록 0에 가까운 값을 출력한다. logistic_activate 함수는 이러한 로지스틱 함수의 활성화 값을 계산하여 반환한다.
logistic_gradient: 로지스틱 함수의 미분 값을 계산하여 반환한다. 로지스틱 함수는 출력 값이 y일 때, y(1-y)의 미분 값을 가지는데, logistic_gradient 함수는 이 값을 계산하여 반환한다.
loggy
함수 이름: loggy_activate, loggy_gradient
입력:
loggy_activate: float형 변수 x
loggy_gradient: float형 변수 x
동작:
loggy_activate: 입력 x에 대해 로지스틱 함수를 변형한 함수를 계산하여 반환한다.
loggy_gradient: 로지스틱 함수를 변형한 함수의 미분 값을 계산하여 반환한다.
설명:
로지스틱 함수를 변형한 함수로, x값이 0일 때 값이 0, x값이 큰 양수일 때 값이 1에 가까워지고, x값이 큰 음수일 때 값이 -1에 가까워지는 함수이다.
로지스틱 함수를 변형한 함수의 미분 값은 입력 x가 0일 때 최대값 1/4을 가지며, x값이 커지거나 작아짐에 따라 감소한다.
relu
함수 이름: relu_activate, relu_gradient 입력:
relu_activate: float 타입의 x (활성화 함수를 적용할 입력 값)
relu_gradient: float 타입의 x (활성화 함수를 미분할 입력 값)
동작:
relu_activate: x가 0보다 크면 x를 반환하고, 그렇지 않으면 0을 반환하여 입력 값을 비선형적으로 변환한다.
relu_gradient: x가 0보다 크면 1을 반환하고, 그렇지 않으면 0을 반환하여 입력 값에 대한 미분 값을 계산한다.
설명:
relu(Rectified Linear Unit) 함수는 인공신경망에서 가장 많이 사용되는 활성화 함수 중 하나이다.
relu_activate 함수는 입력 값 x가 0보다 크면 x를 반환하고, 0보다 작거나 같으면 0을 반환하여 입력 값을 비선형적으로 변환한다.
relu_gradient 함수는 입력 값 x가 0보다 크면 1을 반환하고, 0보다 작거나 같으면 0을 반환하여 입력 값에 대한 미분 값을 계산한다.
relu 함수는 입력 값이 양수인 경우 미분 값이 1이므로 역전파 과정에서 기울기 소실 문제(vanishing gradient problem)가 발생하지 않아 인공신경망에서 많이 사용된다.
elu
함수 이름: elu_activate, elu_gradient
입력:
x (활성화 함수의 입력 값)
동작:
elu_activate: Exponential Linear Unit(ELU) 활성화 함수로, 입력 값 x가 0보다 크거나 같으면 x를 그대로 출력하고, 0보다 작으면 exp(x)-1을 출력한다.
elu_gradient: ELU 활성화 함수의 도함수로, 입력 값 x가 0보다 크거나 같으면 1을 출력하고, 0보다 작으면 x+1을 출력한다.
설명:
ELU 활성화 함수는 ReLU 함수의 단점을 보완한 함수로, 입력 값이 음수인 경우에도 출력 값을 생성할 수 있다.
도함수에서 x+1을 사용한 이유는, x가 0보다 작을 때 exp(x)-1의 값이 음수가 될 수 있기 때문에, 값을 조정하여 미분이 가능하도록 한다.
selu
: 1.6732, : 1.0507
함수 이름: selu_activate, selu_gradient
입력:
activate 함수는 float형 x값 하나를 입력
gradient 함수는 float형 x값 하나를 입력
동작:
selu_activate 함수는 입력값 x에 대해 SELU(Scaled Exponential Linear Units) 함수를 적용하여 결과값을 반환한다.
selu_gradient 함수는 입력값 x에 대해 SELU 함수의 도함수를 계산하여 결과값을 반환한다.
설명:
SELU 함수는 deep neural network 학습 시 activation function으로 사용되는 함수 중 하나이다. 입력값 x가 0보다 작을 경우, 지수함수를 적용하여 출력값이 음수영역에서 부드럽게 변하도록 한다. 따라서 입력값의 분포가 평균 0, 분산 1로 정규화되는 효과를 갖게 된다. 이는 vanishing gradient 문제를 해결하는 데 도움이 된다.
selu_activate 함수는 입력값 x가 0보다 작을 경우, 지수함수를 적용하는 과정에서 컴퓨터에서 표현 가능한 범위를 벗어나게 되므로 1.0507과 1.6732라는 상수값을 사용하여 계산한다.
selu_gradient 함수는 입력값 x가 0보다 작을 경우, 입력값 x에 대한 도함수 계산 시 상수값 1.0507과 1.6732를 사용한다.
lecun normal
relie
함수 이름: relie_activate, relie_gradient
입력:
x (활성화 함수의 입력 값)
동작:
relie_activate: x가 0보다 크면 x를 반환하고, 0보다 작거나 같으면 0.01*x를 반환한다. 이 함수는 ReLU(Rectified Linear Unit) 함수의 변형으로, 입력값이 0 이하일 때 약간의 값을 가지게 되어 죽은 뉴런(dead neuron) 문제를 해결하는 데 도움이 된다.
relie_gradient: x가 0보다 크면 1을 반환하고, 0보다 작거나 같으면 0.01을 반환한다. ReLU 함수와 마찬가지로 x가 0 이하이면 기울기가 0이 되어 역전파(Backpropagation) 과정에서 뉴런이 학습되지 않는 문제를 해결하기 위해 사용된다.
설명:
relie_activate 함수는 입력값 x를 받아서 ReLU 함수의 변형된 형태로 반환한다.
입력값이 0보다 작을 경우, x값에 0.01을 곱한 값을 반환하므로, ReLU 함수와 달리 0 이하의 값을 가질 수 있다.
relie_gradient 함수는 입력값 x를 받아서 ReLU 함수의 변형된 형태의 미분값을 반환한다. 입력값이 0보다 작거나 같으면 0.01을, 0보다 크면 1을 반환하므로, ReLU 함수와 달리 0 이하의 값에서도 뉴런이 학습될 수 있도록 도와준다.
ramp
함수 이름: ramp_activate, ramp_gradient
입력:
x (활성화 함수의 입력 값)
동작:
ramp_activate 함수는 입력값 x가 0보다 크면 x를 반환하고, 0 이하이면 0.1x를 반환합니다.
ramp_gradient 함수는 입력값 x가 0보다 크면 1을 반환하고, 0 이하이면 0.1을 반환합니다.
설명:
ramp_activate 함수는 Rectified Linear Unit (ReLU) 함수와 유사하지만, 입력값이 0 이하일 때 0.1x를 반환하므로 기울기가 0이 되는 부분이 부드럽게 연결됩니다.
ramp_gradient 함수는 ramp_activate 함수의 미분값을 계산하여 반환합니다.
leaky relu
함수 이름: leaky_activate, leaky_gradient
입력:
x (활성화 함수의 입력 값)
동작:
leaky_relu 함수의 활성화 값을 계산하거나 그래디언트 값을 계산하는 함수입니다.
leaky_relu 활성화 함수는 ReLU 함수의 변형 버전입니다.
x가 양수인 경우 x를 반환하고, 음수인 경우 0.1*x를 반환합니다.
이 함수는 음수 영역에서도 작은 기울기를 가지기 때문에, ReLU 함수와는 달리 0이 아닌 값을 가지는 입력에 대해서도 그래디언트를 계산할 수 있습니다.
설명:
leaky_activate 함수는 주어진 x 값에 대해 leaky_relu 활성화 값을 계산하고, leaky_gradient 함수는 주어진 x 값에 대해 leaky_relu 활성화 함수의 그래디언트 값을 계산합니다.
leaky_relu는 입력값 x가 양수인 경우, x를 그대로 반환하고 음수인 경우 0.1x를 반환하는 함수입니다.
따라서 leaky_activate 함수는 x가 양수인 경우 x를 반환하고, 음수인 경우 0.1x를 반환합니다.
leaky_gradient 함수는 입력 값 x가 양수인 경우 1을 반환하고, 음수인 경우 0.1을 반환합니다.
이 함수는 x가 양수일 때는 ReLU 함수의 그래디언트와 같고, x가 음수일 때는 0.1의 고정 그래디언트 값을 갖습니다.
tanh
함수 이름: tanh_activate, tanh_gradient
입력:
x (활성화 함수의 입력 값)
동작:
tanh_activate 함수는 입력된 x값에 대해 hyperbolic tangent 값을 계산하여 반환함
tanh_gradient 함수는 입력된 x값에 대해 hyperbolic tangent 함수의 도함수 값을 계산하여 반환함
설명:
tanh 함수는 입력된 값을 -1과 1 사이의 값으로 변환해주는 함수로, 기울기 소실 문제를 완화하기 위해 사용될 수 있음
tanh_activate 함수는 입력된 x값에 대해 tanh 함수를 적용한 값을 반환함
tanh_gradient 함수는 입력된 x값에 대해 tanh 함수의 도함수인 1 - tanh^2(x)를 계산하여 반환함. 이 값은 입력값 x가 0에 가까울수록 1에 가까워지고, 입력값 x가 먼 경우 0에 가까워지는 특징을 가짐.
plse
함수 이름: plse_activate, plse_gradient
입력:
x (활성화 함수의 입력 값)
동작:
plse_activate 함수: 입력 값 x에 대해, x가 -4 이하인 경우 0.01*(x+4) 값을, x가 4 이상인 경우 0.01*(x-4)+1 값을, 그 외의 경우 0.125*x+0.5 값을 반환한다.
plse_gradient 함수: 입력 값 x에 대해, x가 0보다 작거나 1보다 큰 경우 0.01 값을, 그 외의 경우 0.125 값을 반환한다.
설명:
plse_activate 함수는 "piecewise linear squashing function"의 약자로, 입력 값을 -4와 4를 기준으로 piecewise linear하게 변환하여 반환하는 함수이다. 이 함수는 비선형 함수 중 하나로, sigmoid 함수와 유사한 형태를 가지며 입력 값이 크거나 작을수록 평평한 기울기를 가진다.
plse_gradient 함수는 plse_activate 함수의 미분 값을 반환하는 함수이다. 입력 값 x가 0보다 작거나 1보다 크면 0.01 값을, 그 외의 경우 0.125 값을 반환하는데, 이는 plse_activate 함수의 기울기를 나타내는 값으로 사용된다.
stair
함수 이름: stair_activate, stair_gradient
입력:
x (활성화 함수의 입력 값)
동작:
stair_activate 함수: 입력된 x 값이 양의 정수일 때, x/2 값을 반환하고, 음의 정수일 때, (x - n) + floor(x/2.) 값을 반환합니다. 여기서 n은 x의 바닥값(floor)입니다.
stair_gradient 함수 동작: 입력된 x 값이 정수일 때, 0을 반환하고, 아니면 1을 반환합니다.
설명:
stair_activate 함수는 계단 함수(stair function)를 구현한 것입니다.
계단 함수는 입력값에 따라 출력값이 이산적으로 변화하는 함수로, 입력값이 정수일 때만 0 또는 1을 반환합니다.
stair_activate 함수는 이러한 계단 함수를 활성화 함수로 사용할 수 있습니다.
stair_gradient 함수는 입력값이 정수일 때는 0을 반환하고, 정수가 아니면 1을 반환하여, 역전파(backpropagation)에서 계단 함수의 미분값을 계산합니다.
hardtan
함수 이름: hardtan_activate, hardtan_gradient
입력:
x (활성화 함수의 입력 값)
동작:
hardtan_activate: x가 -1보다 작으면 -1, 1보다 크면 1을 반환하고, 그 외의 경우는 x를 반환한다.
hardtan_gradient: x가 -1과 1 사이에 있으면 1을 반환하고, 그 외의 경우는 0을 반환한다.
설명:
hard tanh 함수는 tanh 함수를 간단하게 변형한 함수로, x가 -1과 1 사이일 때는 입력값 그대로 반환하고, 그 외의 경우에는 -1 또는 1을 반환하는 함수이다.
hardtan_activate 함수에서는 x가 -1보다 작으면 -1, 1보다 크면 1을 반환하고, 그 외의 경우는 x를 반환한다.
hardtan_gradient 함수에서는 x가 -1과 1 사이에 있으면 1을 반환하고, 그 외의 경우는 0을 반환한다. 이는 x가 -1과 1 사이에 있을 때는 미분값이 1이 되므로 역전파 과정에서 기울기가 전달되도록 하기 위해서이다.
lhtan
함수 이름: lhtan_activate, lhtan_gradient
입력:
x (활성화 함수의 입력 값)
동작:
lhtan_activate: 입력값 x에 대해 다음 조건에 따라 출력값을 계산한다.
x가 0보다 작으면 0.001*x를 출력한다.
x가 1보다 크면 0.001*(x-1) + 1을 출력한다.
그 외의 경우에는 x를 출력한다.
lhtan_gradient: 입력값 x에 대해 다음 조건에 따라 출력값을 계산한다.
0 < x < 1이면 1을 출력한다.
그 외의 경우에는 0.001을 출력한다.
설명:
lhtan_activate 함수는 "linearly hard-tanh activation" 함수이며, 입력값 x가 0보다 작거나 1보다 큰 경우에는 그 값을 일정 비율로 줄이거나 늘리고, 그 외의 경우에는 x값을 그대로 출력하는 함수이다.
lhtan_gradient 함수는 lhtan_activate 함수의 미분값을 계산하는 함수로, x가 0과 1 사이인 경우에는 미분값이 1이 되고, 그 외의 경우에는 0.001이 된다.
Reference
Last updated