ニューラル ネットワーク

Spark MLlib の多層パーセプトロン分類器(MultiLayer Perceptron Classifier:MLPC)は、有向グラフの多層ノードから構成されるフィードフォワード ニューラル ネットワークです。

情報一覧

パラメーター

説明
カテゴリー モデル
データ ソース タイプ HD
出力を他のオペレーターに送信 はい
データ処理ツール Spark

ノート: このページでは、TIBCO Data Science - Team Studio 6.3 で開発されたニューラル ネットワーク オペレーターについて説明します。このオペレーターの以前のバージョンは非推奨となり、バージョン 6.1 で削除されました。

ニューラル ネットワーク オペレーターはエクスポートして、同じワークスペース内の他のワークフローで使用できます。

入力レイヤーのノードは入力フィーチャを表します。他のすべてのノードは、ノードの重み (w) とバイアス (b) による入力の線形結合を使用して、入力を出力にマッピングします。ノードは、層のタイプに応じて次の非線形活性化関数を適用します。隠れ層ノードには sigmoidfunction。出力層ノードには softmaxfunction

出力層は、予測するクラスを表します。学習のために、出力層のモデルは 逆伝播 関数を使用します。

MLPC は入力ノードとして連続特徴を必要とするため、最初にワンホット エンコーディング (カテゴリー カラムを単一の 1 値を持つバイナリ ベクトルのカラムに変換する) を適用することで、カテゴリー特徴を予測子として使用できます。

MLPC の詳細については、https://spark.apache.org/docs/1.6.1/ml-classification-regression.html#multilayer-perceptron-classifier および https://en.wikipedia.org/wiki/Multilayer_perceptron を参照ください。

入力

HDFS データセット入力 (予測子カラムと予測する従属カラムを含む)。

値が不正または欠落しています
行の独立カラムまたは依存カラムの少なくとも 1 つに Null 値が含まれている場合、その行はデータセットから削除されます。削除された Null 値の数は、出力の [サマリー] セクションにリストされます ([Null データにより削除された行をファイルに書き込む]で選択したオプションに応じて異なります)。

制限事項

モデルが Export オペレーターを使用してエクスポートされた場合、TIBCO Data Science - Team Studio モデル形式に設定すると、[モデルの読み込み] オペレーターを使用して、このモデルを現在のワークスペース内の他のワークフローに読み込むことができます。HDFS 入力のスコアリングはサポートされていますが、モデルは SQL と互換性がなく、リレーショナル データベース接続に対してスコアリングを行いません。

構成

パラメーター 説明
ノート このオペレーターのパラメーター設定に関するメモまたは役立つ情報。 [ノート] フィールドに内容を入力すると、オペレーターに黄色のアスタリスクが表示されます。
依存カラム 予測するラベルを含む依存カラム。このカラムはカテゴリーまたは数値にすることができます (各数値は個別のラベルとして見なされます)。
ノート: 依存カラムには 20 個を超える異なるラベルを含めることはできません。そうでない場合、実行時にエラーが発生します)。
カラム モデルをトレーニングするための独立した特徴として使用するカラム。数値とカテゴリーの両方がサポートされています。
ノート: MLPC には数値入力特徴が必要であるため、ニューラル ネットワークをトレーニングする前に、すべてのカテゴリー特徴がワン ホット エンコーダーを使用してバイナリカラムに変換されます。

各カテゴリー カラムには 250 を超えるカテゴリーを含めることはできません。そうでない場合、実行時エラーが発生します。

非表示レイヤー (カンマ区切り) 整数のコンマ区切りリストを使用して、隠れ層の数と各層に関連付けられたニューロンの数。 (たとえば、「6,3」は、それぞれ 6 個と 3 個のニューロンを持つ 2 つの隠れ層を意味します)。

デフォルト値 (-1) が使用される場合、アルゴリズムは自動的に 1 つの隠れ層を設定します。

ニューロンの数 = (nb_neurons_input_layer + nb_neurons_output_layer ) / 2

ノート: 「情報」フィールドが空白のままの場合、隠れ層は使用されません。ネットワークは、出力層に直接接続された入力層で構成されます (ロジスティック回帰と同等)。
最大反復数 反復の最大数。

デフォルト値: 100

許容値 反復の収束許容値。値を小さくすると、より多くの反復を犠牲にして精度が高くなります。

デフォルト値: 10E-4

ランダム シード ニューラル ネットワークの重みを初期化するために使用するランダム シード。範囲: -10000 < シード < 10000。デフォルト値: -1 (ランダム初期化)
トレーニング セットの分類メトリクスを計算する [はい] (デフォルト) - 入力のモデルのパフォーマンス メトリックが出力の [トレーニング メトリック] タブに表示されます。モデルの精度が提供されるだけでなく、各ラベルについて、関連する再現率、適合率、F1 メジャーが予測されます。
Null データにより削除された行をファイルに書き込む 独立カラムまたは依存カラムの少なくとも 1 つに Null 値がある行は、分析から削除されます。このパラメーターを使用して、Null 値を含むデータをファイルに書き込むように指定します。

ファイルは、@default_tempdir/tsds_out/@user_name/@flow_name/@operator_name_uuid/bad_data に書き込まれます。

  • Null 行をファイルに書き込まない - Null 値データを削除して結果 UI に表示しますが、外部ファイルには書き込みません。
  • Null 行の書き込みまたはカウントを行わない (最速) - Null 値データは削除されますが、カウントおよび結果 UI には表示されません。
  • すべての Null 行をファイルに書き込む - Null 値データを削除し、削除されたすべての行を外部ファイルに書き込みます。

高度な Spark 設定の自動最適化
  • [はい] は、デフォルトの Spark 最適化設定の使用を指定します。
  • [いいえ] を選択すると、カスタマイズされた Spark 最適化を提供できます。 [設定の編集] をクリックして、Spark の最適化をカスタマイズします。詳細については、「詳細設定ダイアログ」を参照してください。

出力

ビジュアル出力
サマリートレーニング メトリクスニューラル ネットワークの重みの 3 つのタブからなるビジュアル出力。

サマリー:

トレーニング メトリクス (このタブは、オプション [トレーニング セットの分類メトリクスを計算][はい] に設定されている場合にのみ表示されます。):

ニューラル ネットワークの重み

このテーブルでは、ネットワークの各ニューロンの最終的な入力重みを提供します。 neuron_input_weights カラムには、レイヤー layer_type のニューロン neuron_nb に接続されているすべてのニューロンのリストが、関連する重みとともに表示されます (たとえば、(1, 0,09) は、前の層のニューロン 1 に関連付けられた重み 0.09 を意味します)。

データ出力
ニューラル ネットワークモデルは、分類、または、予測オペレーターを使用して新しい入力データを分類するために使用できます。あるいは、混同行列、ROC、適合度などの分類評価オペレーターに接続することもできます。これは、エクスポート オペレーターを使用してエクスポートできます(現在のワークスペース内の他のワークフローで再利用するため)。

その他の注意事項

ニューラル ネットワークのパフォーマンスを向上させるには、次のことを試してください。

  • 各入力の重要度を均等に配分し、隠れ層の飽和を避けるため(そうしないと自然に大きな値が支配的になります)、モデルをトレーニングする前に入力特徴をスケールして正規化します。これはアルゴリズムがより早く収束するのにも役立ちます。
  • 学習データセットが非常に不均衡な場合(つまり、あるラベルが他のラベルよりはるかに多く表現されている場合)、すべてのクラスがよく表現されるように再サンプリングします(リ・サンプリング オペレーターを使用できます)。こうすることで、モデルの精度が向上する可能性が高くなります。