What's the point of training a nnet on outputs from the original 3 rules so it can effectively just relearn them?
As long as the birds can't change direction too quickly (e.g. output acceleration, not velocity) I'd guess you get flocking.
What if they weren't noids?