2. 学習モデルの作成
ここからは前章でMovingAverage.mq4に配置した関数内部の実装処理についてそれぞれ記載していきます。同じファイル内に関数の実装を行なってください。
最初に学習モデルの作成の仕方について記載します。
make_train_model()の実装例です。
int handle;
void make_train_model()
{
handle = IZEL_open();
IZEL_add_layer(handle, 60);
IZEL_add_layer(handle, 50);
IZEL_add_layer(handle, 40);
IZEL_add_layer(handle, 30);
IZEL_add_layer(handle, 20);
IZEL_set_output_layer(handle, 2);
}
IZEL_open()
IZELライブラリを使用する場合は最初にこの関数を呼び出します。この関数から返されるhandleを保持しておいて以後の各関数の引数として渡すようにしてください。この実装例ではhandleをグローバル変数として保持します。
IZEL_add_layer()
この関数で隠れ層を定義します。
学習モデルのイメージを右図で表した時に、緑色の層が隠れ層となります。
この関数を呼び出した順で隠れ層を左から順に定義していくことになります。
この実装例では、5層の隠れ層を定義しています。各層のユニット数を、順に60, 50, 40, 30, 20して定義しています。

IZEL_set_output_layer()
この関数では出力層である教師ラベルの個数を定義します。ここでは利益と損失の2パターンに分類して学習させることを想定し、教師ラベルの個数に2を指定しています。
その他の拡張機能
学習モデルとして次のデフォルトパラメータが定義されています。これらは変更することが可能です。詳しくはマニュアルを参照してください。
パラメータ | デフォルト値 |
---|---|
各層の評価関数 | ReLU |
損失関数 | クロスエントロピー |
学習率 | 0.01 |
このチュートリアルではこれらを変更せずデフォルトのままで進めます。
ここまでで学習モデルの生成は完了です。
次は入力データのセットについて解説します。