How can we be sure of the efficiency of a neural network
As suggested by many people 3:1:1 (60:20:20 = train-validate-test) ratio is a thumb rule to split data, if you are playing with small data set it better to stick with 80:20 or 70:30 just train-test,I usually go for 90:10 ratio for better results.
Before you start with classification, first check whether your data set is balanced or imbalanced ( there should not be less example belongs to one class as compared to other ) because even though it gives you good accuracy it will mislead the results.
If data set is imbalanced, pre-processed data set with sampling algorithm  (for e.g SMOTE) and re-sample it. It will create equal sets of examples for class based on neighbors.
As correctly mentioned in other answer, use cross validation classification such as K-fold. The concept of cross validation is done to tweak the parameters used for training in order to optimize its accuracy and to nullify the effect of over-fitting on the training data, it also remove the noise in data set. I usually go for 10-fold cross validation where data set divided in 10 partition and in each iteration 1/10 partition use as test and rest as training. Take the average of the 10 computations to get a good estimate of the performance of your classifier.
I trained a Forward Neural Net for binary classification and I got an accuracy of 83%, which (I hope)I'm going to improve later by changing parameters in inputs.  But some tests make me feel confused :

My dataset length is 671 so I divide it as 513 train set, 58 Validation set and 100 test set 


When I change the size of my sets (Train, Validation, Test), the accuracy score can decrease to some very low scores like 40% 
The neural net is supposed to learn from the train set but when I test, after the training, with the same Train set and not the Test set, I thought that the model should score 100 %, because he just learned from it, watched it, but it only improves a few with 87% ...

I'm a beginner in ML so I don't know if it's normal or not, I'm just curious and wanna catch all the small things to know, to understand perfectly what I'm doing. I guess it's maybe the normalization of my vectors sets, but I don't know very much about it. I can share you my full code if you want to, but as every neural net, it's quite long but easy to read.