활성화 함수

3403 단어 Python

스텝 함수

import numpy as np
import matplotlib.pyplot as plt

def step_function(x):
    return np.where(x<=0,0,1)

x = np.linspace(-5,5)
y = step_function(x)

print(x,y) #plt.plot(x,y)
plt.show()
[-5.         -4.79591837 -4.59183673 -4.3877551  -4.18367347 -3.97959184
 -3.7755102  -3.57142857 -3.36734694 -3.16326531 -2.95918367 -2.75510204
 -2.55102041 -2.34693878 -2.14285714 -1.93877551 -1.73469388 -1.53061224
 -1.32653061 -1.12244898 -0.91836735 -0.71428571 -0.51020408 -0.30612245
 -0.10204082  0.10204082  0.30612245  0.51020408  0.71428571  0.91836735
  1.12244898  1.32653061  1.53061224  1.73469388  1.93877551  2.14285714
  2.34693878  2.55102041  2.75510204  2.95918367  3.16326531  3.36734694
  3.57142857  3.7755102   3.97959184  4.18367347  4.3877551   4.59183673
  4.79591837  5.        ] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
 1 1 1 1 1 1 1 1 1 1 1 1 1]

장점


신경원의 흥분 상태를 1이나 0으로 표현할 수 있어 실현하기가 매우 간단하다
결점
0 이나 1로만 표현할 수 있는 것들.

신호 함수

import numpy as np
import matplotlib.pylab as plt

def sigmoid_function(x):
    return 1/(1+np.exp(-x))

x = np.linspace(-5, 5)
y = sigmoid_function(x)

plt.plot(x, y)
plt.show()

장점


명령 함수는 계단 함수보다 더 매끄럽게 표시할 수 있으며, 0과 1 사이의 중간값을 나타낼 수 있다
미분 처리하기 쉽다

tanh(초회색조)

import numpy as np
import matplotlib.pylab as plt

def tanh_function(x):
    return np.tanh(x)

x = np.linspace(-5, 5)
y = tanh_function(x)

plt.plot(x, y)
plt.show()

장점


0 중심의 차트 모양 표시

ReLU(램프 함수)

import numpy as np
import matplotlib.pylab as plt

def relu_function(x):
    return np.where(x <= 0, 0, x)

x = np.linspace(-1, 3)
y = relu_function(x)

plt.plot(x, y)
plt.show()

장점


간단하고 단계가 많아져도 안정적으로 공부할 수 있다
항등함수
AI/머신러닝의 신경 네트워크의 항등함수(Identity function)나 선형함수(Lireer function)는 모든 입력 값을 완전히 같은 수치(=원형)로 변환해 출력하는 함수다.
import numpy as np
import matplotlib.pylab as plt


x = np.linspace(-1, 3)
y = x

plt.plot(x, y)
plt.show()

장점


출력 범위가 무제한으로 연속되기 때문에 연속 수치를 예측하기에 적합하다
소프트 최대 함수
import numpy as np

def softmax_function(x):
    return np.exp(x)/np.sum(np.exp(x)) 
y = softmax_function(np.array([1,2,3]))
print(y)
출력
[0.09003057 0.24472847 0.66524096]
제어가 0~1에 있음을 알 수 있다

장점


소프트 최대 함수는 신경원에 대응하는 상자에 분류될 확률을 나타낼 수 있다

좋은 웹페이지 즐겨찾기