Validation in deep learning networks https://es.mathworks.com/help/deeplearning/ref/trainnetwork.html?s_tid=doc_ta#bu6sn4c-traininfo
In the above link, there is an example for train network with augmented images. The number of iterations per epoch is 31 and the validation frequency is 50. Why the validation frequency is higher than the number of iterations per epoch? I think the network should be validated at least once per epoch?

I think this is specific to the toolbox that Matlab offers. It's quite common to have the validation metric at the end of the epoch, like in many other frameworks (e.g. Tensorflow ), but that's not set in stone.
Epochs and iterations are part of the training process. Sometimes, we do not even have strict epochs because the data is so huge that we can't have a single pass over it. There, we just sample a batch from the huge set at each iteration, and you should specify when to validate.
