5_1_2 モデルの構築

次は、ゼロから構築しようとすると相当な知識と経験が必要になる、「適切な」モデルの作成です。機械学習やディープラーニングでは、モデルが自動的に学習し、推論を立ててくれますが、そこまで行くには、優秀なモデルを人間が試行錯誤して構築する必要があります。

次のコードのモデルは、TensFlow.JSのIrisサンプルで使用されているものです。あやめデータは有名なデータセットなので、これ以外にも優秀なモデルがほかにも多く存在するでしょう。

// モデルの構築
const buildModel = async() => {
    // TensFlow.JSのIrisサンプルで使用されているモデル
    // https://github.com/tensorflow/tfjs-examples/tree/master/iris
    const model = tf.sequential();
    model.add(tf.layers.dense({
        units: 10,
        activation: 'sigmoid',
        inputShape: [2]
    }));
    // 出力は2クラス
    model.add(tf.layers.dense({
        units: 2,
        activation: 'softmax'
    }));

    const learningRate = 0.01;
    const optimizer = tf.train.adam(learningRate);
    model.compile({
        optimizer: optimizer,
        // 二値交差エントロピー誤差関数 categoricalCrossentropyをbinaryCrossentropyに変えている
        loss: 'binaryCrossentropy',
        metrics: ['accuracy'],
    });
    return model;
}

モデルの中身はいよいよ複雑になってきたように見えます。

TensFlow.JSのIrisサンプルでは、model.compile()メソッドの引数に指定するオブジェクトのlossプロパティの値にcategoricalCrossentropyが使われています。categoricalCrossentropyは3つ以上の分類に使用される多クラス交差エントロピー誤差関数なので、ここでは、2つの分類に適したbinaryCrossentropyを指定しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA