Кривые обучения для нейронных сетей - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь найти оптимальные параметры моей модели нейронной сети, реализованной в октаве, эта модель используется для двоичной классификации и 122 объектов (входов) и 25 скрытых единиц (1 скрытый слой). Для этого у меня есть 4 матрицы / Векторы:

size(X_Train): 125973 x 122
size(Y_Train): 125973 x 1
size(X_Test): 22543 x 122
size(Y_test): 22543 x 1

Я использовал 20% обучающего набора для создания проверочного набора (XVal и YVal)

size(X): 100778 x 122
size(Y): 100778 x 1
size(XVal): 25195 x 122
size(YVal): 25195 x 1
size(X_Test): 22543 x 122
size(Y_test): 22543 x 1

Цель состоит в том, чтобы создать кривые обучения NN. Я понял (трудный путь xD), что это очень много времени, потому что я использовал для этого полный размер Xval и X.

Я не знаю, есть ли альтернативное решение для этого. Я думаю уменьшить размер обучающего вектора X (например, 5000 образцов), но я не знаю, смогу ли я это сделать или результаты будут смещены, поскольку я буду использовать только часть тренировочный набор?

Bests

1 Ответ

0 голосов
/ 07 ноября 2018

Общее количество параметров выше составляет около 3 тыс. (122 * 25 + 25 * 1), что не так уж много для одного примера. Поскольку количество примеров велико, вы можете использовать стохастический градиентный спуск или мини-пакеты вместо градиентного спуска.

Обратите внимание, что Matlab и Octave работают медленно, особенно с циклами. Вам нужно написать код, который использует матричные операции, а не циклы, чтобы скорость была управляемой в Matlab / Octave.

...