モデルの構築、コンパイル、学習、評価、予測の流れ

Kerasは、ニューラルネットワークを簡潔かつ直感的に記述できる高水準の機械学習フレームワークです。ここでは、「モデルの構築、コンパイル、学習、評価、予測の流れ」について、Sequential API をベースに詳しく解説します。


1. モデルの構築(Build)

モデルは、複数の層(Layer)を順番に積み重ねることで構築します。最も基本的な方法は Sequential クラスを使うものです。

python
from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense model = Sequential([ Dense(64, activation='relu', input_shape=(784,)), Dense(64, activation='relu'), Dense(10, activation='softmax') ])

この例では:

  • 入力は784次元(例:MNIST画像を1次元にフラット化)

  • 隠れ層を2つ(ReLU活性化関数)

  • 出力層は10クラスの分類用(Softmax関数)


2. モデルのコンパイル(Compile)

構築したモデルに対して、学習時の設定(損失関数、最適化手法、評価指標)を指定します。

python
model.compile( optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'] )

主な引数:

  • optimizer: パラメータの更新手法(例:SGD, Adam)

  • loss: 損失関数(タスクに応じて変更)

  • metrics: 学習中に評価する指標(通常は精度など)


3. モデルの学習(Fit)

トレーニングデータを用いて、モデルの重みを調整します。

python
history = model.fit( x_train, y_train, epochs=10, batch_size=32, validation_split=0.2 )

主な引数:

  • x_train, y_train: 学習データ

  • epochs: エポック数(データを何周学習するか)

  • batch_size: 一度に学習に使うサンプル数

  • validation_split: 検証用データに使う割合


4. モデルの評価(Evaluate)

学習後、未知のテストデータに対して性能を評価します。

python
test_loss, test_acc = model.evaluate(x_test, y_test) print(f"Test accuracy: {test_acc}")

戻り値は損失値と指定した評価指標(この例では精度)です。


5. モデルの予測(Predict)

学習済みモデルを用いて、新しいデータに対して出力を予測します。

python
predictions = model.predict(x_new)

predictions は出力層の値(Softmax出力など)であり、分類問題では argmax を取ることでクラスラベルを決定します。

python
import numpy as np predicted_labels = np.argmax(predictions, axis=1)

全体の流れまとめ

text
構築 → コンパイル → 学習 → 評価 → 予測

この一連の流れは、Kerasによってシンプルに記述できるよう設計されています。直感的なAPI設計により、初心者から上級者まで広く利用されています。

生成日:2025/05/22