非線形関数一覧

ニューラルネットワークを構築する際に、どの非線形関数を選択するかは大事なポイントとなります。
そこでどんな非線形関数があるかそれぞれグラフ化して確認します。

まずは必要なモジュールのインストールとx軸用に等間隔の数値を用意します。

1
2
3
4
5
6
7
8
# モジュールのインポート
import chainer.functions as F
import numpy as np
import matplotlib.pyplot as plt

# 等間隔の数値を用意する(x軸用)
D = 100
ndata = np.linspace(-5.0, 5.0, D)

非線形関数をグラフ化するコードは下記の通りです。
1行目のF.absoluteの箇所をそれぞれの非線形関数に置き換えて実行していきます。

1
2
3
ydata = F.absolute(ndata).data   # 非線形関数を変えながら実行する。
plt.plot(ndata, ydata)
plt.show()
非線形関数一覧
F.absoluteF.absolute F.addF.add F.arccosF.arccos
F.arcsinF.arcsin F.arctanF.arctan F.broadcastF.broadcast
F.ceilF.ceil F.clipped_reluF.clipped_relu F.cosF.cos
F.coshF.cosh F.cumprodF.cumprod F.cumsumF.cumsum
F.digammaF.digamma F.dropoutF.dropout F.eluF.elu
F.erfF.erf F.erfcF.erfc F.erfcinvF.erfcinv
F.erfcxF.erfcx F.erfinvF.erfinv F.expF.exp
F.expm1F.expm1 F.fixF.fix F.flattenF.flatten
F.flipudF.flipud F.floorF.floor F.hard_sigmoidF.hard_sigmoid
F.identityF.identity F.leaky_reluF.leaky_relu F.lgammaF.lgamma
F.logF.log F.log10F.log10 F.log1pF.log1p
F.log2F.log2 F.log_ndtrF.log_ndtr F.ndtrF.ndtr
F.ndtriF.ndtri F.reluF.relu F.rreluF.rrelu
F.rsqrtF.rsqrt F.seluF.selu F.sigmoidF.sigmoid
F.signF.sign F.sinF.sin F.sinhF.sinh
F.softplusF.softplus F.sqrtF.sqrt F.squareF.square
F.squeezeF.squeeze F.tanF.tan F.tanhF.tanh
F.transposeF.transpose

(Google Colaboratoryで動作確認しています。)