Я новичок в машинном обучении и в настоящее время использую MLPClassifier ScikitLearn для задачи нейронной сети .Согласно известному курсу Эндрю Нг по машинному обучению, я строю кривую обучения, в моем случае, используя функцию обучения_curve ScikitLearn (см. Также документацию: https://scikit -learn.org / stable / auto_examples / model_selection / plot_learning_curve.html ):
clf = MLPClassifier(solver='adam', activation='relu', alpha=0.001,
learning_rate='constant',learning_rate_init=0.0001,
hidden_layer_sizes=[39, 37, 31, 34], batch_size=200,
max_iter=1000, verbose=True)
cv=GroupKFold(n_splits=8)
estimator =clf
ylim=(0.7, 1.01)
cv=cv
n_jobs=1
train_sizes=np.linspace(.01, 1.0, 100)
#Calculate learning curve
train_sizes, train_scores, test_scores = learning_curve(
estimator, X_array_train, Y_array_train,
groups=groups_array_train, cv=cv, n_jobs=n_jobs,
train_sizes=train_sizes, scoring='accuracy',verbose=10)
Мой решатель для MLPClassifier равен 'adam', а размер пакета равен 200.
Это результирующий график: https://i.imgur.com/jDNoEVg.png
У меня есть два вопроса относительно интерпретации таких кривых обучения:
1.) Когда я понимаю эту кривую обучения, она дает мне обучение и перекрестную проверку оценка для различного количества обучающих данных до конца одной эпохи (эпоха = один проход вперед и один проход назад всех примеров обучения).Глядя на «разрыв» между этими двумя и на каком счете они заканчиваются, я могу диагностировать, есть ли у меня проблема с большим смещением или дисперсией.Однако, согласно многословному моему MLPClassifier , нейронная сеть обучается в течение нескольких эпох, поэтому, какая эпоха указана на кривой (первая эпоха обучения, последняя эпоха или средние оценки по всем эпохам?).Или с моей стороны вообще недоразумение с эпохами?
2.) Начиная новую партию (после 200 и 400 примеров тренировок), я получаю шипы.Как правильно их интерпретировать?
3.) Вероятно, понимание 1.) также ответит на это: что делает эту функцию настолько медленной, что вам нужно несколько параллельных заданий n_jobs, чтобы выполнить ее вразумный срок?clf.fit (X, y) в моем случае быстр.
Я был бы очень благодарен, если бы кто-нибудь помог мне лучше понять это.Я также открыт для литературных рекомендаций.
Большое спасибо заранее!