ニューラル ネットワーク回帰モジュールNeural Network Regression module

"ニューラル ネットワーク アルゴリズムを使用して回帰モデルを作成する"Creates a regression model using a neural network algorithm

カテゴリ:機械学習、モデルの初期化、回帰Category: Machine Learning / Initialize Model / Regression

モジュールの概要Module overview

この記事では Azure Machine Learning デザイナー (プレビュー) 内のモジュールについて説明します。This article describes a module in Azure Machine Learning designer (preview).

カスタマイズ可能なニューラル ネットワーク アルゴリズムを使用して回帰モデルを作成するには、このモジュールを使用します。Use this module to create a regression model using a customizable neural network algorithm.

ニューラル ネットワークは、ディープ ラーニングと複雑な問題 (画像認識など) のモデル化における使用が広く知られていますが、回帰問題にも簡単に適応することができます。Although neural networks are widely known for use in deep learning and modeling complex problems such as image recognition, they are easily adapted to regression problems. 適応型荷重を使用していて、かつ入力の非線形関数を近似することができるあらゆる種類の統計モデルは、ニューラル ネットワークと呼ぶことができます。Any class of statistical models can be termed a neural network if they use adaptive weights and can approximate non-linear functions of their inputs. そのためニューラル ネットワーク回帰は、従来型の回帰モデルでは解に適合できない問題に適しています。Thus neural network regression is suited to problems where a more traditional regression model cannot fit a solution.

ニューラル ネットワーク回帰は教師あり学習手法であるため、ラベル列を含む "タグ付けされたデータセット" が必要となります。Neural network regression is a supervised learning method, and therefore requires a tagged dataset, which includes a label column. 回帰モデルで予測するのは数値であるため、ラベル列は数値データ型であることが必要です。Because a regression model predicts a numerical value, the label column must be a numerical data type.

モデルのトレーニングは、対象のモデルとタグ付けされたデータセットを "モデルのトレーニング" に入力として渡すことにより行うことができます。You can train the model by providing the model and the tagged dataset as an input to Train Model. その後は、トレーニング済みのモデルを使用して新しい入力例の値を予測することができます。The trained model can then be used to predict values for the new input examples.

ニューラル ネットワーク回帰を構成するConfigure Neural Network Regression

ニューラル ネットワークは、広範なカスタマイズが可能です。Neural networks can be extensively customized. このセクションでは、2 つの方法を使用して、モデルを作成する方法について説明します。This section describes how to create a model using two methods:

  • 既定のアーキテクチャを使用してニューラル ネットワーク モデルを作成するCreate a neural network model using the default architecture

    既定のニューラル ネットワーク アーキテクチャをそのまま使用する場合、隠れ層のノード数、学習率、正規化など、ニューラル ネットワークの動作を制御するパラメーターを [プロパティ] ウィンドウを使用して設定します。If you accept the default neural network architecture, use the Properties pane to set parameters that control the behavior of the neural network, such as the number of nodes in the hidden layer, learning rate, and normalization.

    ニューラル ネットワークを初めて利用する方は、ここから始めてください。Start here if you are new to neural networks. ニューラル ネットワークについての深い知識がなくても、このモジュールが多数のカスタマイズとモデルのチューニングをサポートします。The module supports many customizations, as well as model tuning, without deep knowledge of neural networks.

  • ニューラル ネットワークのカスタム アーキテクチャを定義するDefine a custom architecture for a neural network

    隠れ層を余分に追加したり、ネットワーク アーキテクチャとその結合、アクティブ化関数を完全にカスタマイズしたりすることが必要な場合は、この方法を使用します。Use this option if you want to add extra hidden layers, or fully customize the network architecture, its connections, and activation functions.

    この方法は、既にニューラル ネットワークについてある程度の知識がある方に最適です。This option is best if you are already somewhat familiar with neural networks. Net# 言語を使用してネットワーク アーキテクチャを定義します。You use the Net# language to define the network architecture.

既定のアーキテクチャを使用してニューラル ネットワーク モデルを作成するCreate a neural network model using the default architecture

  1. デザイナーでニューラル ネットワーク回帰モジュールをパイプラインに追加します。Add the Neural Network Regression module to your pipeline in the designer. このモジュールは、 [Machine Learning](機械学習)[初期化][回帰] カテゴリにあります。You can find this module under Machine Learning, Initialize, in the Regression category.

  2. [Create trainer mode](トレーナー モードの作成) オプションを設定して、モデルのトレーニング方法を指定します。Indicate how you want the model to be trained, by setting the Create trainer mode option.

    • Single Parameter (単一パラメーター) : モデルを構成する方法が既にわかっている場合は、このオプションを選択します。Single Parameter: Choose this option if you already know how you want to configure the model.

    • [Parameter Range](パラメーター範囲) : 最適なパラメーターがわかっておらず、パラメーター スイープを実行したい場合は、このオプションを選択します。Parameter Range: Select this option if you are not sure of the best parameters, and want to run a parameter sweep. 反復する値の範囲を選択します。モデルのハイパーパラメーターの調整では、指定した設定の可能なすべての組み合わせに対して反復処理を行い、最適な結果を生成するハイパーパラメーターを決定します。Select a range of values to iterate over, and the Tune Model Hyperparameters iterates over all possible combinations of the settings you provided to determine the hyperparameters that produce the optimal results.

  3. [Hidden layer specification](隠れ層の仕様)[Fully connected case](全結合ケース) を選択します。In Hidden layer specification, select Fully connected case. このオプションでは、既定のニューラル ネットワーク アーキテクチャを使用してモデルが作成されます。これは、ニューラル ネットワーク回帰モデルに関して、次の属性を備えます。This option creates a model using the default neural network architecture, which for a neural network regression model, has these attributes:

    • このネットワークには隠れ層が 1 つだけ存在します。The network has exactly one hidden layer.
    • 出力層は隠れ層に全結合され、隠れ層は入力層に全結合されます。The output layer is fully connected to the hidden layer and the hidden layer is fully connected to the input layer.
    • 隠れ層のノード数はユーザーが設定できます (既定値は 100)。The number of nodes in the hidden layer can be set by the user (default value is 100).

    入力層のノード数はトレーニング データ内の特徴数によって決まるため、回帰モデルでは、出力層に設定できるノード数は 1 つだけです。Because the number of nodes in the input layer is determined by the number of features in the training data, in a regression model there can be only one node in the output layer.

  4. [Number of hidden nodes](隠れノードの数) に、隠れノードの数を入力します。For Number of hidden nodes, type the number of hidden nodes. 既定値は、100 個のノードを含んだ 1 つの非表示の層となります。The default is one hidden layer with 100 nodes. (Net# を使用してカスタム アーキテクチャを定義する場合、このオプションは選択できません。)(This option is not available if you define a custom architecture using Net#.)

  5. 訂正前に、各イテレーションで行われるステップを定義する値を [Learning rate](学習率) に入力します。For Learning rate, type a value that defines the step taken at each iteration, before correction. 学習速度の値を大きくすると、モデルの収束速度は速くなりますが、極小値から離れていってしまう可能性があります。A larger value for learning rate can cause the model to converge faster, but it can overshoot local minima.

  6. [Number of learning iterations](学習イテレーション数) に、トレーニング ケースをアルゴリズムで処理する最大回数を指定します。For Number of learning iterations, specify the maximum number of times the algorithm processes the training cases.

  7. 学習中に前のイテレーションからノードへの重みとして適用する値を [The momentum](慣性項) に入力します。For The momentum, type a value to apply during learning as a weight on nodes from previous iterations.

  8. イテレーション間でケースの順序を変更するには、 [Shuffle examples](例のシャッフル) オプションを選択します。Select the option, Shuffle examples, to change the order of cases between iterations. このオプションをオフにした場合、パイプラインを実行するたびに、まったく同じ順序でケースが処理されます。If you deselect this option, cases are processed in exactly the same order each time you run the pipeline.

  9. [Random number seed](乱数シード) には、シードとして使用する値を必要に応じて入力できます。For Random number seed, you can optionally type a value to use as the seed. 同じパイプラインを実行するたびに再現性を確保したい場合は、シード値を指定すると効果的です。Specifying a seed value is useful when you want to ensure repeatability across runs of the same pipeline.

  10. トレーニング データセットといずれかのトレーニング モジュールを接続します。Connect a training dataset and one of the training modules:

  11. パイプラインを実行します。Run the pipeline.

[結果]Results

トレーニングの完了後:After training is complete:

  • トレーニングされたモデルのスナップショットを保存するには、 [モデルのトレーニング] モジュールの右側のパネルにある [出力] タブを選択します。To save a snapshot of the trained model, select the Outputs tab in the right panel of the Train model module. [データセットの登録] アイコンを選択して、再利用可能なモジュールとしてモデルを保存します。Select the Register dataset icon to save the model as a reusable module.

次のステップNext steps

Azure Machine Learning で使用できる一連のモジュールを参照してください。See the set of modules available to Azure Machine Learning.