始める無料で始める

単層ニューラルネットワーク

ニューラルネットワークの使い方に慣れるために、まずは関数の簡単な「近似」から始めましょう。

入力 x と出力 y の対応関係を近似するニューラルネットワークを学習させます。両者は平方根関数、すなわち \(y = \sqrt{x}\) で関係づけられます。

入力ベクトル x は用意されています。まずは Numpy の sqrt() 関数で x の平方根を計算し、出力系列 y を作成します。次に、シンプルなニューラルネットワークを作成し、x 系列で学習させます。

学習後、y 系列とニューラルネットワークの出力を両方プロットし、平方根関数をどの程度うまく近似できているかを確認します。

Keras ライブラリの SequentialDense もワークスペースで利用できます。

この演習はコースの一部です

Pythonで学ぶ定量的リスク管理

コースを見る

演習の手順

  • Numpy の sqrt() 関数を使って学習用の出力値を作成します。
  • 隠れ層16ニューロン、入力1つ、出力1つのニューラルネットワークを作成します。
  • ニューラルネットワークを学習用データでコンパイルしてから 100 エポックで学習させます。
  • 学習用の値(青)と、ニューラルネットワークの予測値をプロットして比較します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Create the training values from the square root function
y = np.____(x)

# Create the neural network
model = Sequential()
model.____(Dense(16, input_dim=1, activation='relu'))
model.____(____(1))

# Train the network
model.____(loss='mean_squared_error', optimizer='rmsprop')
model.____(x, y, epochs=100)

## Plot the resulting approximation and the training values
plt.plot(x, y, x, model.____(x))
plt.show()
コードを編集して実行