17 using namespace shark;
39 std::generate(startingPoint.begin(),startingPoint.end(),
uni);
48 regularizedError.
add(error);
49 regularizedError.
add(regularization,regularizer);
56 optimizer.
init(regularizedError,startingPoint);
57 for(
unsigned iter = 0; iter != 5000; ++iter)
59 optimizer.
step(regularizedError);
63 return loss(network(validation.
inputs()),validation.
labels());
90 double bestValidationError = 1e5;
91 double bestRegularization = 0;
92 for (
double regularization = 0; regularization < 1.e-4; regularization +=1.e-5) {
94 for (std::size_t fold = 0; fold != folds.
size(); ++fold){
99 result +=
trainProblem(training, validation, regularization);
101 result /= folds.
size();
104 if (result < bestValidationError)
106 bestValidationError = result;
107 bestRegularization = regularization;
111 std::cout << regularization <<
" " << result << std::endl;
115 cout <<
"RESULTS: " << std::endl;
116 cout <<
"======== " << std::endl;
117 cout <<
"best validation error: " << bestValidationError << std::endl;
118 cout <<
"best regularization: " << bestRegularization<< std::endl;