MLPClassifier

多層パーセプトロン (MLP)は入力データのセットを適切な出力のセットへマップするフィードフォワードの人工ニューラルネットワークです。

コンストラクタのパラメータ

  • $inputLayerFeatures (int) - 入力層の特徴の数
  • $hiddenLayers (array) - 隠れ層の設定を持つ配列。各値は各層内のニューロンの数を表します
  • $classes (array) - 異なる訓練セットクラスを持つ配列 (配列のキーは無視されます)
  • $iterations (int) - 訓練の繰り返しの数
  • $theta (int) - ネットワーク シータ パラメータ
  • $activationFunction (ActivationFunction) - ニューロンの活性化関数
use Phpml\Classification\MLPClassifier;
$mlp = new MLPClassifier(4, [2], ['a', 'b', 'c']);

// 4 nodes in input layer, 2 nodes in first hidden layer and 3 possible labels.

学習

MLPを訓練するには、単純に訓練標本とラベルを(配列として)渡します。例:

$mlp->train(
    $samples = [[1, 0, 0, 0], [0, 1, 1, 0], [1, 1, 1, 1], [0, 0, 0, 0]],
    $targets = ['a', 'a', 'b', 'c']
);

バッチ内で訓練するために partialTrain メソッドを使います。例:

$mlp->partialTrain(
    $samples = [[1, 0, 0, 0], [0, 1, 1, 0]],
    $targets = ['a', 'a']
);
$mlp->partialTrain(
    $samples = [[1, 1, 1, 1], [0, 0, 0, 0]],
    $targets = ['b', 'c']
);

予測

標本ラベルを予測するには、predict メソッドを使います。1つのサンプルあるいは、サンプルの配列を与えることができます:

$mlp->predict([[1, 1, 1, 1], [0, 0, 0, 0]]);
// return ['b', 'c'];

活性化関数

  • BinaryStep
  • Gaussian
  • HyperbolicTangent
  • Sigmoid (デフォルト)