Possible improvements and potential applications
We have illustrated how to build an ANN, feed it training data, and use it for classification. There are a number of aspects we can improve, depending on the task at hand, and a number of potential applications of our new-found knowledge.
Improvements
There are a number of improvements that can be applied to this approach, some of which we have already discussed:
For example, you could enlarge your dataset and iterate more times, until a performance peak is reached
You could also experiment with the several activation functions (
cv2.ml.ANN_MLP_SIGMOID_SYM
is not the only one; there is alsocv2.ml.ANN_MLP_IDENTITY
andcv2.ml.ANN_MLP_GAUSSIAN
)You could utilize different training flags (
cv2.ml.ANN_MLP_UPDATE_WEIGHTS
,cv2.ml.ANN_MLP_NO_INPUT_SCALE
,cv2.ml.ANN_MLP_NO_OUTPUT_SCALE
), and training methods (back propagation or resilient back propagation)
Aside from that, bear in mind one of the mantras of software development: there is no single best technology...