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 (デフォルト)