public boolean startTraining() {
		if (allData == null || facit == null) {
			return false;
		}

		int iterate = 0;
		do {
			iterate++;
			Collections.shuffle(allData);
			populateLists();

			for (FaceData f : trainingData) {
				buildNetwork(f);
				for (int i = 0; i < 4; i++) {
					double act = calculateActivation(i + 1);
					adjustWeights(i + 1, facit.get(f.getImageID()), act);
				}
			}

			if (learningRate + 0.01 > 0) {
				learningRate -= 0.01;
			}
		} while (scoreChecker());
		System.err.println("Training iterations " + iterate);
		return true;
	}