Sigmoidレイヤを実装
def sigmoid(x):
return 1 / (1 + np.exp(-x))
class Sigmoid:
def __init__(self):
self.y = None
def forward(self, x):
out = sigmoid(x)
self.y = y
return y
def backward(self, dy):
dx = dy * (1.0 - self.y) * self.y
return dx
不思議な形をしたシグモイド。
二値分類問題ではシグモイド関数を使います。
恒等関数でも良いような気もするけど、非線形関数を使う事が機械学習のポイントです。
変な形をしているだけに、使い方が難しいんじゃないかと思うのです。
これも勉強を進めていけば、しっかりと使い道が分かるのようになるのだろうか??