多クラス ニューラル ネットワーク コンポーネント

この記事では Azure Machine Learning デザイナーのコンポーネントについて説明します。

このコンポーネントを使用すると、複数の値を持つターゲットを予測するのに使用できるニューラル ネットワーク モデルを作成できます。

たとえば、この種のニューラル ネットワークは、数字または文字の認識、ドキュメントの分類、パターン認識などの複雑なコンピューター ビジョン タスクで使用できます。

ニューラル ネットワークを使用する分類は、教師あり学習手法であるため、ラベル列を含む "タグ付けされたデータセット" が必要となります。

モデルのトレーニングは、対象のモデルとタグ付けされたデータセットを "モデルのトレーニング" に入力として渡すことにより行うことができます。 その後は、トレーニング済みのモデルを使用して新しい入力例の値を予測することができます。

ニューラル ネットワークについて

ニューラル ネットワークは、一連の相互接続された層です。 入力は最初の層であり、重み付きエッジとノードから成る非巡回グラフによって出力層に接続されています。

入力層と出力層の間には、複数の非表示の層を挿入できます。 予測タスクのほとんどは、1 つまたは少数の非表示の層を使用して簡単に行うことができます。 ただし、最近の研究では、画像認識や音声認識などの複雑なタスクには多くの層を備えたディープ ニューラル ネットワーク (DNN) が有効であることが示されています。 これらの連続する層を使用して、セマンティックの深さのレベルの増加がモデル化されます。

入力と出力の間のリレーションシップは、入力データに関してニューラル ネットワークをトレーニングすることで習得されます。 グラフの方向は入力から、非表示の層を経由して出力層へと進みます。 層内のノードはすべて、重み付きエッジによって次の層内のノードに接続されます。

特定の入力に対してネットワークの出力を計算するには、非表示の層内の各ノードおよび出力層内の各ノードで値を計算します。 この値は、前の層からのノードの値の加重和を計算することで設定されます。 次に、その加重和にアクティブ化関数が適用されます。

多クラス ニューラル ネットワークを構成する

  1. デザイナー内のパイプラインに、多クラス ニューラル ネットワーク コンポーネントを追加します。 このコンポーネントは、 [Machine Learning] - [初期化][分類] カテゴリにあります。

  2. Create trainer mode (トレーナー モードの作成) : このオプションを使用して、モデルのトレーニング方法を指定します。

    • Single Parameter (単一パラメーター) : モデルを構成する方法が既にわかっている場合は、このオプションを選択します。

    • [Parameter Range]\(パラメーター範囲\) : 最適なパラメーターがわからず、パラメーター スイープを実行する場合は、このオプションを選択します。 反復する値の範囲を選択します。モデルのハイパーパラメーターの調整では、指定した設定の可能なすべての組み合わせに対して反復処理を行い、最適な結果を生成するハイパーパラメーターを決定します。

  3. Hidden layer specification (非表示の層の仕様) : 作成するネットワーク アーキテクチャの種類を選択します。

    • Fully connected case (完全結合ケース) : 既定のニューラル ネットワーク アーキテクチャを使用してモデルを作成するには、このオプションを選択します。 多クラス ニューラル ネットワーク モデルの場合、既定値は次のとおりです。

      • 単一の非表示の層
      • 出力層は非表示の層に完全結合されます。
      • 非表示の層は入力層に完全結合されます。
      • 入力層内のノードの数については、トレーニング データ内のフィーチャーの数によって決まります。
      • 非表示の層内のノード数はユーザーが設定できます。 既定値は、100 です。
      • 出力層内のノードの数は、クラスの数によって異なります。
  4. Number of hidden nodes (非表示ノードの数) : このオプションでは、既定のアーキテクチャでの非表示ノードの数をカスタマイズできます。 非表示ノードの数を入力します。 既定値は、100 個のノードを含んだ 1 つの非表示の層となります。

  5. The learning rate (学習率) : 修正の前に各イテレーションで実行されるステップのサイズを定義します。学習率の値を大きくすると、モデルの収束速度は速くなりますが、極小値から離れていってしまう可能性があります。

  6. [学習のイテレーション数]: アルゴリズムがトレーニング ケースを処理する最大回数を指定します。

  7. The initial learning weights diameter (初期学習の重みの直径) : 学習プロセスの開始時のノードの重みを指定します。

  8. The momentum (モーメンタム) : 学習中に以前のイテレーションからノードに適用する重みを指定します。

  9. Shuffle examples (例のシャッフル) : イテレーションとイテレーションの間にケースをシャッフルするには、このオプションを選択します。

    このオプションをオフにした場合、パイプラインを実行するたびに、まったく同じ順序でケースが処理されます。

  10. Random number seed (乱数シード) : 同じパイプラインを実行するたびに再現性を確保したい場合は、シードとして使用する値を指定します。

  11. モデルをトレーニングする:

    Note

    パラメーター範囲を [モデルのトレーニング] に渡すと、単一のパラメーター リストの既定値のみが使用されます。

    [モデルのハイパーパラメーターの調整] コンポーネントによって、パラメーターごとに設定の範囲が求められているとき、それに単一のパラメーター値セットを渡した場合、それらの値は無視され、学習器の既定値が使用されます。

    [Parameter Range]\(パラメーター範囲\) オプションを選択し、任意のパラメーターに単一の値を入力した場合、指定した単一の値はスイープ全体で使用されます。これは、他のパラメーターが値の範囲の中で変化する場合でも同様です。

結果

トレーニングの完了後:

  • トレーニングされたモデルのスナップショットを保存するには、 [モデルのトレーニング] コンポーネントの右側のパネルにある [出力] タブを選択します。 [データセットの登録] アイコンを選択して、再利用可能なコンポーネントとしてモデルを保存します。

次の手順

Azure Machine Learning で使用できる一連のコンポーネントを参照してください。