twitter facebook

活性化関数(シグモイド,ソフトマックス,ReLU,恒等関数)

シグモイド関数

xが入力値、yが出力値
a=1
a=0.5
a=100
数式
f(x) = \frac{1}{1+e^{-ax}} \ \ (a>0)
python
import matplotlib.pyplot as plt
import numpy as np
import math

a = 1
x = np.arange(-5, 5, 0.1)
e = math.e

y = 1 / (1 + e**(-x*a))

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

ソフトマックス関数

import matplotlib.pyplot as plt
import numpy as np
import math

x = np.arange(-5, 5, 0.1)
a = np.exp(x)
sum = np.sum(a)
y = a / sum
plt.plot(x, y)
plt.show()

ReLU関数(ランプ関数)

入力値が0以下のとき出力値=0。0より大きい場合は出力値=入力値。
import numpy as np
import matplotlib.pylab as plt

x = np.arange(-5.0, 5.0, 0.1)
y = np.maximum(0, x)
plt.plot(x, y)
plt.show()
ちなみに、エッジ検出なんかでも、ランプエッジやステップエッジと言ったりします。

ステップ関数

入力値が0以下のとき出力値=0。0より大きい場合は出力値=1。
import matplotlib.pyplot as plt
import numpy as np
import math

x = np.arange(-5.0, 5.0, 0.1)
print(x)
y = x > 0
plt.plot(x, y)
plt.ylim(-0.1, 1.1)
plt.show()

恒等関数

入力値=出力値。
import matplotlib.pyplot as plt
import numpy as np
import math

x = np.arange(-5, 5, 0.1)
y = x
plt.plot(x, y)
plt.show()
AUTHOR
@nakamura
最終更新日 2018/09/17
FAVORITE good stock
LINK TAG
記法を見る