ニューラル ネットワーク
Spark MLlib の多層パーセプトロン分類器(MultiLayer Perceptron Classifier:MLPC)は、有向グラフの多層ノードから構成されるフィードフォワード ニューラル ネットワークです。
情報一覧
|
パラメーター |
説明 |
|---|---|
| カテゴリー | モデル |
| データ ソース タイプ | HD |
| 出力を他のオペレーターに送信 | はい |
| データ処理ツール | Spark |
ニューラル ネットワーク オペレーターはエクスポートして、同じワークスペース内の他のワークフローで使用できます。
入力レイヤーのノードは入力フィーチャを表します。他のすべてのノードは、ノードの重み (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 データセット入力 (予測子カラムと予測する従属カラムを含む)。
制限事項
モデルが 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 に書き込まれます。
|
| 高度な Spark 設定の自動最適化 |
|
出力
サマリー:

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

ニューラル ネットワークの重み
このテーブルでは、ネットワークの各ニューロンの最終的な入力重みを提供します。 neuron_input_weights カラムには、レイヤー layer_type のニューロン neuron_nb に接続されているすべてのニューロンのリストが、関連する重みとともに表示されます (たとえば、(1, 0,09) は、前の層のニューロン 1 に関連付けられた重み 0.09 を意味します)。
その他の注意事項
ニューラル ネットワークのパフォーマンスを向上させるには、次のことを試してください。
- 各入力の重要度を均等に配分し、隠れ層の飽和を避けるため(そうしないと自然に大きな値が支配的になります)、モデルをトレーニングする前に入力特徴をスケールして正規化します。これはアルゴリズムがより早く収束するのにも役立ちます。
- 学習データセットが非常に不均衡な場合(つまり、あるラベルが他のラベルよりはるかに多く表現されている場合)、すべてのクラスがよく表現されるように再サンプリングします(リ・サンプリング オペレーターを使用できます)。こうすることで、モデルの精度が向上する可能性が高くなります。
例