たとえば、入力層に10個、中間層に5個、出力層に1個のニューロンがあるニューラルネットワークを考えます。
このとき、誤差逆伝播法で更新する重みとしきい値は、出力層の1個、中間層の5個のニューロンだけでよいのでしょうか?
モデルを構成するパラメータを考えると、
入力層と中間層の結合の本数: 10 * 5 = 50個
中間層のバイアスの数: 5個
中間層層と出力層の結合の本数: 5 * 1 = 5個
出力層のバイアスの数: 1個
なので、合計は 50 + 5 + 5 + 1 = 61 となります。
python
1from tensorflow.keras.layers import Input, Dense
2from tensorflow.keras.models import Sequential
3
4model = Sequential([Input(10), Dense(5), Dense(1)])
5model.summary()
6# Model: "sequential"
7# _________________________________________________________________
8# Layer (type) Output Shape Param #
9# =================================================================
10# dense (Dense) (None, 5) 55
11# _________________________________________________________________
12# dense_1 (Dense) (None, 1) 6
13# =================================================================
14# Total params: 61
15# Trainable params: 61
16# Non-trainable params: 0
17# _________________________________________________________________
もそも、入力層のニューロンにも、重みとしきい値は設けられているのでしょうか?
入力層はデータをそのまま次の層に渡すだけなので、パラメータはありません。
以下、入力層5個、中間層5個、出力層1個の場合の図です。
パラメータは
入力層と中間層の結合の本数: 5 * 5 = 25個
中間層のバイアスの数: 5個
中間層層と出力層の結合の本数: 5 * 1 = 5個
出力層のバイアスの数: 1個
の合計36個になります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/08/26 10:37