在MATLAB中实现卷积神经网络遇到的问题

%digitDatasetpath=fullfile('D:','cnn','DigitDataset');
%%digitDatasetPath = fullfile(matlabroot,'toolbox','nnet','nndemos', ...
'nndatasets','DigitDataset');

imds=imageDatastore(digitdatasetpath,"IncludeSubfolders",true,"LabelSource","foldernames")

numTrainFiles = 750;

[imdsTrain,imdsValidation] = splitEachLabel(imds,numTrainFiles,'randomize');

inputSize=[28 28 1];
numclass=10;

layers = [
imageInputLayer([28 28 1],"Name","imageinput")
convolution2dLayer(5,50,"Name","conv","Padding","same")
batchNormalizationLayer("Name","batchnorm")
reluLayer("Name","relu")
fullyConnectedLayer(10,"Name","fc")
softmaxLayer("Name","softmax")
classificationLayer("Name","classoutput")];

options = trainingOptions('sgdm', ...
'MaxEpochs',4, ...
'ValidationData',imdsValidation, ...
'ValidationFrequency',30, ...
'Verbose',false, ...
'Plots','training-progress');

net=trainNetwork(imds,layers,options)

YPred=classify(net,imdsValidation);
YValidation=imdsValidation.Labels;
accuracy=mean(YPred==YValidation)
一、请问在这个代码中的OPTION的含义是什么(括号内的全部解释)?
二、以及这个代码中卷积神经网络为何要分成训练集和验证集?
三、在选择第二行为引入数据时,卷积层的卷积核数量为何要大到几十个才能使正确率降到百分之99以下?