| @@ 60-68 (lines=9) @@ | ||
| 57 | protected function runTraining() |
|
| 58 | { |
|
| 59 | // The cost function is the sum of squares |
|
| 60 | $callback = function ($weights, $sample, $target) { |
|
| 61 | $this->weights = $weights; |
|
| 62 | ||
| 63 | $output = $this->output($sample); |
|
| 64 | $gradient = $output - $target; |
|
| 65 | $error = $gradient ** 2; |
|
| 66 | ||
| 67 | return [$error, $gradient]; |
|
| 68 | }; |
|
| 69 | ||
| 70 | $isBatch = $this->trainingType == self::BATCH_TRAINING; |
|
| 71 | ||
| @@ 155-169 (lines=15) @@ | ||
| 152 | * Trains the perceptron model with Stochastic Gradient Descent optimization |
|
| 153 | * to get the correct set of weights |
|
| 154 | */ |
|
| 155 | protected function runTraining() |
|
| 156 | { |
|
| 157 | // The cost function is the sum of squares |
|
| 158 | $callback = function ($weights, $sample, $target) { |
|
| 159 | $this->weights = $weights; |
|
| 160 | ||
| 161 | $prediction = $this->outputClass($sample); |
|
| 162 | $gradient = $prediction - $target; |
|
| 163 | $error = $gradient**2; |
|
| 164 | ||
| 165 | return [$error, $gradient]; |
|
| 166 | }; |
|
| 167 | ||
| 168 | $this->runGradientDescent($callback); |
|
| 169 | } |
|
| 170 | ||
| 171 | /** |
|
| 172 | * Executes Stochastic Gradient Descent algorithm for |
|