8.3.3 高度なハイパーパラメータ・カスタマイズ
豊富なハイパーパラメータ・カスタマイズを使用して、頂点プロパティのみ、エッジ・プロパティのみ、あるいはその両方でUnsupervised GraphWiseモデルを作成できます。
これは、サブ構成クラスGraphWiseConvLayerConfig
を使用して実装されます。
次のコードは、Unsupervised GraphWiseモデルの構成の実装を記述しています。この例では、過剰適合に打ち消すために、モデルに対して重み減衰パラメータ0.001
も指定しています。
opg4j> var weightProperty = analyst.pagerank(trainGraph).getName()
opg4j> var convLayerConfig = analyst.graphWiseConvLayerConfigBuilder().
setNumSampledNeighbors(25).
setActivationFunction(ActivationFunction.TANH).
setWeightInitScheme(WeightInitScheme.XAVIER).
setWeightedAggregationProperty(weightProperty).
build()
opg4j> var model = analyst.unsupervisedGraphWiseModelBuilder().
setVertexInputPropertyNames("vertex_features").
setEdgeInputPropertyNames("edge_features").
setConvLayerConfigs(convLayerConfig).
setWeightDecay(0.001).
build()
String weightProperty = analyst.pagerank(trainGraph).getName();
GraphWiseConvLayerConfig convLayerConfig = analyst.graphWiseConvLayerConfigBuilder()
.setNumSampledNeighbors(25)
.setActivationFunction(ActivationFunction.TANH)
.setWeightInitScheme(WeightInitScheme.XAVIER)
.setWeightedAggregationProperty(weightProperty)
.build();
UnsupervisedGraphWiseModel model = analyst.unsupervisedGraphWiseModelBuilder()
.setVertexInputPropertyNames("vertex_features")
.setEdgeInputPropertyNames("edge_features")
.setConvLayerConfigs(convLayerConfig)
.setWeightDecay(0.001)
.build();
weightProperty = analyst.pagerank(train_graph).name
conv_layer_config = dict(num_sampled_neighbors=25,
activation_fn='tanh',
weight_init_scheme='xavier',
neighbor_weight_property_name=weightProperty)
conv_layer = analyst.graphwise_conv_layer_config(**conv_layer_config)
params = dict(conv_layer_config=[conv_layer],
vertex_input_property_names=["vertex_features"],
edge_input_property_names=["edge_features"],
weight_decay=0.001)
model = analyst.unsupervised_graphwise_builder(**params)
使用可能なすべてのハイパーパラメータとそのデフォルト値の詳細は、JavadocのUnsupervisedGraphWiseModelBuilderおよびGraphWiseConvLayerConfigBuilderを参照してください。