活性化関数
ステップ関数
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]
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 or 0で表現ができ実装が簡単
デメリット
0 or 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)もしくは線形関数(Linear 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に収まっていることがわかる
メリット
ソフトマックス関数は、ニューロンが対応する枠に分類される確率を表現することができる
Author And Source
この問題について(活性化関数), 我々は、より多くの情報をここで見つけました https://qiita.com/salem333/items/315f35770d0886ccd4e3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .