6.14 ニューラル・ネットワーク・モデル
ore.odmNN
クラスは、分類および回帰用のニューラル・ネットワーク(NN)モデルを作成します。ニューラル・ネットワーク・モデルを使用すると、入力と出力との間の複雑な非リニアの関係を取得すること、つまりデータのパターンを見つけることができます。
ore.odmNN
クラス・メソッドは、OML4Rプロキシ・データ・フレームに対して回帰および分類のためのフィードフォワード・ニューラル・ネットワークを構築します。複数の非表示レイヤーをサポートし、それぞれに独自のノード数とアクティブ化機能があります。
各層には、次の活性化関数のいずれかを設定できます。
- NNET_ACTIVATIONS_ARCTAN
- NNET_ACTIVATIONS_BIPOLAR_SIG
- NNET_ACTIVATIONS_LINEAR
- NNET_ACTIVATIONS_LOG_SIG
- NNET_ACTIVATIONS_RELU
- NNET_ACTIVATIONS_TANH
出力層は、単一の数値カテゴリ・ターゲットまたはバイナリのカテゴリ・ターゲットです。出力層には、任意の活性化関数を設定できます。これには、デフォルトで線形活性化関数があります。
ore.odmNNクラスを使用したモデリングは、センサー・データなどのノイズ・データおよび複合データに適しています。そのようなデータに発生する可能性のある問題は次のとおりです。
-
ピクセル値など、(数値)予測子が多い可能性がある
-
ターゲットが離散値、実数値またはそのような値のベクターである可能性がある
-
トレーニング・データに(ノイズに対して堅牢な)エラーが含まれている可能性がある
-
スコアリングが高速
-
モデルの透過性が不要なため、モデルの解釈が困難
ニューラル・ネットワーク・モデリングの一般的なステップは次のとおりです。
-
アーキテクチャの指定
-
データの準備
-
モデルの構築
-
停止条件(反復、許容範囲内の検証セットでのエラー)の指定
-
モデルの統計結果の表示
-
モデルの改善
ニューラル・ネットワーク・モデルの設定
次の表は、NNモデルの設定のリストです。
表6-13 ニューラル・ネットワーク・モデルの設定
設定名 | 設定値 | 説明 |
---|---|---|
NNET_HIDDEN_LAYERS |
|
非表示レイヤーの数によってトポロジを定義します。 デフォルト値は |
|
正の整数のリスト |
レイヤー当たりのノード数によってトポロジを定義します。様々なレイヤーに様々な数のノードを含めることができます。 この値は負数ではない整数にして、カンマで区切る必要があります。たとえば、'10, 20, 5'です。設定値は、 |
|
次の文字列のリスト:
|
非表示層の活性化関数を定義します。たとえば、'''NNET_ACTIVATIONS_BIPOLAR_SIG '', ''NNET_ACTIVATIONS_TANH '''のようにします。
層ごとに異なる活性化関数を用意できます。 デフォルト値は 活性化関数の数は、 ノート: すべての引用符は一重引用符です。2つの一重引用符は、SQL文の一重引用符エスケープするために使用します。 |
|
|
この設定により、重みがランダムに初期化されるリージョンの下限が指定されます。
|
|
|
この設定により、重みが初期化されるリージョンの上限が指定されます。 デフォルト値は |
|
|
この設定により、ニューラル・ネットワーク・アルゴリズムにおける最大反復数が指定されます。 デフォルト値は |
|
|
ニューラル・ネットワーク・アルゴリズムの収束許容値の設定を定義します。 デフォルト値は |
NNET_REGULARIZER |
|
ニューラル・ネットワーク・アルゴリズムの正則化設定です。トレーニング行の合計数が50000より大きい場合、デフォルトは トレーニング行の合計数が50000以下の場合、デフォルトは |
|
|
取り分けておいたメソッドの保持率を定義します。 デフォルト値は |
|
値は正整数である必要があります。 |
デフォルト値は |
NNET_REG_LAMBDA |
TO_CHAR(X >= 0) |
L2正則化パラメータ・ラムダを定義します。これは、NNET_REGULARIZER_HELDASIDE と一緒に設定することはできません。
デフォルト値は |
例6-16 ニューラル・ネットワーク・モデルの構築
この例では、NNモデルを作成し、ore.odmNN
クラスのメソッドの一部を使用します。
# Turn off row ordering warnings
options(ore.warn.order=FALSE)
# Data setup
set.seed(7654)
x <- seq(0.1, 5, by = 0.02)
weights <- round(rnorm(length(x),10,3))
y <- log(x) + rnorm(x, sd = 0.2)
# Create a temporary OML4R proxy object DAT.
DAT <- ore.push(data.frame(x=x, y=y, weights=weights))
# Create an NN regression model object. Fit the NN model according to the data and setting parameters.
mod.nn <- ore.odmNN(y~x, DAT,"regression",
odm.settings = list(nnet_hidden_layers = 1))
weight(mod.nn)
summary(mod.nn)
# Use the model to make predictions on the input data.
pred.nn <- predict(mod.nn, DAT, "y")
head(pred.nn, 10)
この例のリスト
表6-14 data.frame: 4 x 6
LAYER | IDX_FROM | IDX_TO | ATTRIBUTE_NAME | ATTRIBUTE_VALUE | WEIGHT |
---|---|---|---|---|---|
<dbl> | <dbl> | <dbl> | <chr> | <chr> | <dbl> |
0 | 0 | 0 | x | NA | -1.0663866 |
0 | NA | 0 | NA | NA | -7.4897304 |
1 | 0 | 0 | NA | NA | -1068.0117188 |
1 | NA | 0 | NA | NA | 0.9961451 |
表6-15 data.frame: 10 x 2
y | PREDICTION |
---|---|
<dbl> | <dbl> |
-2.376195 | -1.648826 |
-1.906485 | -1.601597 |
-2.027240 | -1.555065 |
-1.541951 | -1.509221 |
-1.654645 | -1.464055 |
-1.742211 | -1.419556 |
-1.320646 | -1.375714 |
-1.357442 | -1.332520 |
-1.442755 | -1.289965 |
-1.192586 | -1.248039 |
例6-17 ore.odmNN
分類
この例では、NNモデルを作成し、ore.odmNN
分類クラスのメソッドの一部を使用します。
# Turn off row ordering warnings
options(ore.warn.order=FALSE)
# Data setup
m <- mtcars
m$gear <- as.factor(m$gear)
m$cyl <- as.factor(m$cyl)
m$vs <- as.factor(m$vs)
m$ID <- 1:nrow(m)
# Create a temporary OML4R proxy object for the MTCARS table.
MTCARS <- ore.push(m)
row.names(MTCARS) <- MTCARS$ID
# Create an NN classification model object. Fit the NN model according to the data and setting parameters.
mod.nn <- ore.odmNN(gear ~ ., MTCARS,"classification",
odm.settings = list(nnet_hidden_layers = 2,
nnet_activations = c("'NNET_ACTIVATIONS_LOG_SIG'", "'NNET_ACTIVATIONS_TANH'"),
nnet_nodes_per_layer = c(5, 2)))
head(weight(mod.nn), 10)
# Use the model to make predictions on the input data.
pred.nn <- predict(mod.nn, MTCARS, "gear")
# Generate a confusion matrix.
with(pred.nn, table(gear, PREDICTION))
この例のリスト
表6-16 data.frame: 10 x 6
LAYER | IDX_FROM | IDX_TO | ATTRIBUTE_NAME | ATTRIBUTE_VALUE | WEIGHT |
---|---|---|---|---|---|
<dbl> | <dbl> | <dbl> | <chr> | <chr> | <dbl> |
0 | 0 | 0 | ID | NA | 12.424586 |
0 | 0 | 1 | ID | NA | -9.953163 |
0 | 0 | 2 | ID | NA | -7.516252 |
0 | 0 | 3 | ID | NA | -1.100170 |
0 | 0 | 4 | ID | NA | -15.955383 |
0 | 1 | 0 | am | NA | 21.585514 |
0 | 1 | 1 | am | NA | -3.228476 |
0 | 1 | 2 | am | NA | -22.794853 |
0 | 1 | 3 | am | NA | 15.349457 |
0 | 1 | 4 | am | NA | -19.099138 |
PREDICTION
gear 3 4
3 14 1
4 0 12
5 2 3