sin波をx=[-π,π]で学習させたいのですが、負の数が表現できず、困っています。
出力層の活性化関数は近似したい関数の値域に合わせて決めます。
sin(x) の値域は [-1, 1] なので、同じく値域が [-1, 1] である tanh を活性化関数に使用してはどうでしょうか。

sigmoid使って組め、と仕様が決められてしまっているんですよね…
sigmoid の値域は [0, 1] なので、2 * sigmoid(x) - 1 として値域を [-1, 1] に調整すればいいと思います。
python
1import matplotlib.pyplot as plt
2import numpy as np
3
4def sigmoid(x):
5 return 1 / (1 + np.exp(-x))
6
7x = np.linspace(-np.pi, np.pi, 50)
8y = 2 * sigmoid(x) - 1
9
10fig, ax = plt.subplots()
11ax.plot(x, y)
12ax.grid()

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。