基礎編

情報数理に関する基本的な計算問題

ニューラルネットワークのパラメータ数 レベル1

あるニューラルネットワークの入力層のニューロン数が10、隠れ層のニューロン数が20、出力層のニューロン数が5であるとき、このネットワークの全パラメータ数(重みとバイアスの合計)を求めなさい。ただし、各層間は全結合であり、すべてのニューロンにバイアスがあるものとする。パラメータ数は、重み数とバイアス数の和とします

解説
解答と解説を表示
<h4>ニューラルネットワークのパラメータ数の計算方法</h4> <p>ニューラルネットワークのパラメータ数は、重みの数とバイアスの数の合計で計算できます。全結合層(Fully Connected Layer)では、前の層の各ニューロンが次の層のすべてのニューロンと接続されています。</p><h5>重み数の計算</h5> <p>入力層から隠れ層への重み数:</p> <div class="formula"> $ \text{入力層ニューロン数} \times \text{隠れ層ニューロン数} = 10 \times 20 = 200$ </div><p>隠れ層から出力層への重み数:</p> <div class="formula"> $ \text{隠れ層ニューロン数} \times \text{出力層ニューロン数} = 20 \times 5 = 100$ </div><p>したがって、総重み数は:</p> <div class="formula"> $\text{総重み数} = 200 + 100 = 300$ </div><h5>バイアス数の計算</h5> <p>バイアスは各層(入力層を除く)のニューロンごとに1つずつ存在します。</p><p>隠れ層のバイアス数:</p> <div class="formula"> $ \text{隠れ層ニューロン数} = 20$ </div><p>出力層のバイアス数:</p> <div class="formula"> $\text{出力層ニューロン数} = 5$ </div><p>したがって、総バイアス数は:</p> <div class="formula"> $\text{総バイアス数} = 20 + 5 = 25$ </div><h5>全パラメータ数の計算</h5> <p>全パラメータ数は重み数とバイアス数の合計です:</p> <div class="formula"> $\text{全パラメータ数} = \text{総重み数} + \text{総バイアス数} = 300 + 25 = 325$ </div><div class="key-point"> <div class="key-point-title">重要ポイント</div> <p>ニューラルネットワークのパラメータ数は、層間の結合数(入力次元×出力次元)とバイアスの数(各層のニューロン数)の合計です。入力層にはバイアスがないことに注意してください。</p> <p>パラメータ数はモデルの複雑さを表す指標の一つであり、パラメータ数が多いほどモデルの表現力は高くなりますが、過学習のリスクも高まります。</p> </div><h5>実際のディープラーニングフレームワークでの確認方法</h5> <div class="code-block"> <pre> import tensorflow as tf# モデルの定義 model = tf.keras.Sequential([ tf.keras.layers.Dense(20, activation='relu', input_shape=(10,)), tf.keras.layers.Dense(5, activation='softmax') ])# モデルの概要を表示 model.summary() </pre> </div><p>上記のコードを実行すると、以下のような出力が得られます:</p> <div class="code-block"> <pre> Model: "sequential" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= dense (Dense) (None, 20) 220 _________________________________________________________________ dense_1 (Dense) (None, 5) 105 ================================================================= Total params: 325 Trainable params: 325 Non-trainable params: 0 _________________________________________________________________ </pre> </div><p>この出力から、計算した通り全パラメータ数が325であることが確認できます。</p><h5>応用:より複雑なネットワークの場合</h5> <p>複数の隠れ層を持つより複雑なネットワークの場合も、同様の方法でパラメータ数を計算できます。例えば、入力層(10ニューロン)→隠れ層1(20ニューロン)→隠れ層2(15ニューロン)→出力層(5ニューロン)の場合:</p><div class="formula"> $ \text{全パラメータ数} = (10 \times 20 + 20) + (20 \times 15 + 15) + (15 \times 5 + 5) = 220 + 315 + 80 = 615$ </div>
問題 1/1
カテゴリ一覧に戻る