シンプルなニューラルネットの構築と学習
次に学ぶモデルはニューラルネットワークです。ニューラルネットは変数間の複雑な関係を捉えることができますが、設計や理解には工夫が必要です。近年、画像認識やゲーム(AlphaGo など)をはじめ、多くの分野で人間の専門家を上回る成果を上げており、非常に高い可能性を持つモデルです。
ネットワークの構築には keras ライブラリを使用します。これは高水準のAPIで、ニューラルネットを手軽に作成しながら、設計の細部まで柔軟にコントロールできます。まず、できるだけシンプルなネットワークとして、入力を受け取って1つの値を予測する3層構造のネットを作成します。sklearn のモデルと同様に、keras のモデルにも .fit() メソッドがあり、(features, targets) を引数として受け取ります。
この演習はコースの一部です
Python による金融のための Machine Learning
演習の手順
- ニューラルネットワークの第2層として、20ノードでReLU(
'relu')活性化関数を持つ Dense レイヤーを作成してください。 - 最後の Dense レイヤーは1ノード、線形活性化関数(
activation='linear')で作成してください。 scaled_train_featuresとtrain_targetsを使ってモデルを学習させてください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
from keras.models import Sequential
from keras.layers import Dense
# Create the model
model_1 = Sequential()
model_1.add(Dense(100, input_dim=scaled_train_features.shape[1], activation='relu'))
model_1.add(Dense(____, activation=____))
model_1.add(Dense(____, activation=____))
# Fit the model
model_1.compile(optimizer='adam', loss='mse')
history = model_1.fit(____, ____, epochs=25)