딥 러닝에서 사용하는 활성화 함수를 시각화 해 보았습니다.
뭔가 알아보면 비슷한 기사가 있었지만 신경 쓰지 않는다.
같은 책 을 참고했기 때문에 어쩔 수 없다
스텝 함수
임계값보다 작으면 0, 크면 1을 돌려준다(이번 예에서는 0을 임계치로 한다)
h(x)=\begin{cases}
0\quad(x \leqq 0) \\
1\quad(x > 0)
\end{cases}
def step_function(x):
return np.array(x > 0, dtype = np.int)
x = np.arange(-5.0, 5.0, 0.1)
y = step_function(x)
plt.plot(x, y)
plt.show()
시그모이드 함수
스텝 함수의 상위 호환성
값을 0~1로 스케일
h(x) = \frac{1}{1 + e^{-x}}
def sigmoid(x):
return 1 / (1 + np.exp(-x))
x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.show()
tanh 함수
시그모이드 함수의 상위 호환성.
그라디언트 소실 문제가 발생하기 어렵도록 선형 변환했지만 역시 그라디언트 소실 문제가 일어날 수도 있는 것 같다
h(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
ReLU 함수
tanh 함수의 상위 호환성.
0 이하이면 0, 0보다 크면 입력한 값을 그대로 반환
h(x)=\begin{cases}
0\quad(x \leqq 0) \\
x\quad(x > 0)
\end{cases}
def relu(x):
return np.maximum(0, x)
x = np.arange(-5.0, 5.0, 0.1)
y = relu(x)
plt.plot(x, y)
plt.show()
소프트 맥스 함수
0~1로 총합이 1이 되도록 돌려주는 녀석. 확률 같게 취급할 수 있게 되기 때문에 출력층에서 사용되기 쉽다. 크고 작은 관계가 변하지 않기 때문에 사용할 필요가 없다고 말하는 사람들도 있습니다.
y_k = \frac{e^{a_k}}{\sum_{i=1}^ne^{a_i}}
def softmax(a):
exp_a = np.exp(a)
sum_exp_a = np.sum(exp_a)
y = exp_a / sum_exp_a
return y
x = np.arange(-5, 5, 0.1)
y = softmax(x)
plt.plot(x, y)
plt.show()
항등 함수
입력된 값을 그대로 반환하는 사람. 취미. 사촌을 허수아비.
h(x)=x
def identity_function(x):
return x
x = np.arange(-5, 5, 0.1)
y = identity_function(x)
plt.plot(x, y)
plt.show()
Reference
이 문제에 관하여(딥 러닝에서 사용하는 활성화 함수를 시각화 해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kt38k/items/4b114e783f1295ee9f0e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
h(x)=\begin{cases}
0\quad(x \leqq 0) \\
1\quad(x > 0)
\end{cases}
def step_function(x):
return np.array(x > 0, dtype = np.int)
x = np.arange(-5.0, 5.0, 0.1)
y = step_function(x)
plt.plot(x, y)
plt.show()
스텝 함수의 상위 호환성
값을 0~1로 스케일
h(x) = \frac{1}{1 + e^{-x}}
def sigmoid(x):
return 1 / (1 + np.exp(-x))
x = np.arange(-5.0, 5.0, 0.1)
y = sigmoid(x)
plt.plot(x, y)
plt.show()
tanh 함수
시그모이드 함수의 상위 호환성.
그라디언트 소실 문제가 발생하기 어렵도록 선형 변환했지만 역시 그라디언트 소실 문제가 일어날 수도 있는 것 같다
h(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
ReLU 함수
tanh 함수의 상위 호환성.
0 이하이면 0, 0보다 크면 입력한 값을 그대로 반환
h(x)=\begin{cases}
0\quad(x \leqq 0) \\
x\quad(x > 0)
\end{cases}
def relu(x):
return np.maximum(0, x)
x = np.arange(-5.0, 5.0, 0.1)
y = relu(x)
plt.plot(x, y)
plt.show()
소프트 맥스 함수
0~1로 총합이 1이 되도록 돌려주는 녀석. 확률 같게 취급할 수 있게 되기 때문에 출력층에서 사용되기 쉽다. 크고 작은 관계가 변하지 않기 때문에 사용할 필요가 없다고 말하는 사람들도 있습니다.
y_k = \frac{e^{a_k}}{\sum_{i=1}^ne^{a_i}}
def softmax(a):
exp_a = np.exp(a)
sum_exp_a = np.sum(exp_a)
y = exp_a / sum_exp_a
return y
x = np.arange(-5, 5, 0.1)
y = softmax(x)
plt.plot(x, y)
plt.show()
항등 함수
입력된 값을 그대로 반환하는 사람. 취미. 사촌을 허수아비.
h(x)=x
def identity_function(x):
return x
x = np.arange(-5, 5, 0.1)
y = identity_function(x)
plt.plot(x, y)
plt.show()
Reference
이 문제에 관하여(딥 러닝에서 사용하는 활성화 함수를 시각화 해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kt38k/items/4b114e783f1295ee9f0e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
h(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
tanh 함수의 상위 호환성.
0 이하이면 0, 0보다 크면 입력한 값을 그대로 반환
h(x)=\begin{cases}
0\quad(x \leqq 0) \\
x\quad(x > 0)
\end{cases}
def relu(x):
return np.maximum(0, x)
x = np.arange(-5.0, 5.0, 0.1)
y = relu(x)
plt.plot(x, y)
plt.show()
소프트 맥스 함수
0~1로 총합이 1이 되도록 돌려주는 녀석. 확률 같게 취급할 수 있게 되기 때문에 출력층에서 사용되기 쉽다. 크고 작은 관계가 변하지 않기 때문에 사용할 필요가 없다고 말하는 사람들도 있습니다.
y_k = \frac{e^{a_k}}{\sum_{i=1}^ne^{a_i}}
def softmax(a):
exp_a = np.exp(a)
sum_exp_a = np.sum(exp_a)
y = exp_a / sum_exp_a
return y
x = np.arange(-5, 5, 0.1)
y = softmax(x)
plt.plot(x, y)
plt.show()
항등 함수
입력된 값을 그대로 반환하는 사람. 취미. 사촌을 허수아비.
h(x)=x
def identity_function(x):
return x
x = np.arange(-5, 5, 0.1)
y = identity_function(x)
plt.plot(x, y)
plt.show()
Reference
이 문제에 관하여(딥 러닝에서 사용하는 활성화 함수를 시각화 해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kt38k/items/4b114e783f1295ee9f0e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
y_k = \frac{e^{a_k}}{\sum_{i=1}^ne^{a_i}}
def softmax(a):
exp_a = np.exp(a)
sum_exp_a = np.sum(exp_a)
y = exp_a / sum_exp_a
return y
x = np.arange(-5, 5, 0.1)
y = softmax(x)
plt.plot(x, y)
plt.show()
입력된 값을 그대로 반환하는 사람. 취미. 사촌을 허수아비.
h(x)=x
def identity_function(x):
return x
x = np.arange(-5, 5, 0.1)
y = identity_function(x)
plt.plot(x, y)
plt.show()
Reference
이 문제에 관하여(딥 러닝에서 사용하는 활성화 함수를 시각화 해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kt38k/items/4b114e783f1295ee9f0e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)