Выбор начальных нейронов в искусственной нейронной сети - PullRequest
0 голосов
/ 08 января 2020

Размер моего набора данных составляет 800 аудиофайлов, теперь я хочу создать искусственную нейронную сеть для классификации аудио. Я дал нейронам 64 в первом слое и 36 во втором слое. будет ли определенное количество c нейронов должно проходить в нейронной сети? форма входа - (826, 12), выход модели - двоичный выход. Here is My Neural Network

Ответы [ 2 ]

1 голос
/ 08 января 2020

Давайте сначала начнем с более простой части. Знать количество входных и выходных слоев и количество их нейронов - самая простая часть. Каждая сеть имеет один входной слой и один выходной слой. Количество нейронов во входном слое равно количеству входных переменных в обрабатываемых данных. Количество нейронов в выходном слое равно количеству выходов, связанных с каждым входом. Но задача состоит в том, чтобы узнать количество скрытых слоев и их нейронов.

Ответ заключается в том, что вы не можете аналитически рассчитать количество слоев или количество узлов, которые нужно использовать на слой в искусственной нейронной сети для решения конкретной проблемы c реальная задача прогнозного моделирования. Количество слоев и количество узлов в каждом слое являются гиперпараметрами модели, которые вы должны указать и изучить. Вы должны найти ответ, используя надежные тестовые проводки и контролируемые эксперименты. Независимо от эвристики, с которой вы можете столкнуться, все ответы вернутся к необходимости тщательного экспериментирования, чтобы увидеть, что лучше всего подходит для вашего указанного c набора данных.

Опять же, размер фильтра - один из таких гиперпараметров, который вы должны указать перед тренировкой вашей сети.

Для проблемы распознавания изображений, если вы считаете, что для распознавания объекта сетью необходимо большое количество пикселей, вы будете использовать большие фильтры (например, 11x11 или 9x9). Если вы думаете, что отличает объекты от небольших и локальных особенностей, вы должны использовать маленькие фильтры (3x3 или 5x5). Это несколько советов, но не существует никаких правил.

Надеюсь, это поможет вам.

0 голосов
/ 09 января 2020

Согласно документации Keras для последовательных моделей ,

Указание формы ввода

Модель должна знать, какую форму ввода она должна ожидать. По этой причине первый слой в последовательной модели (и только первый, поскольку следующие слои могут автоматически делать c вывод формы) должен получать информацию о своей входной форме. Есть несколько возможных способов сделать это:

  • Передать аргумент input_shape первому слою. Это кортеж формы (кортеж целых чисел или записей None, где None указывает, что можно ожидать любое положительное целое число). В input_shape размер пакета не включен.
  • Некоторые 2D-слои, такие как Dense, поддерживают спецификацию своей формы ввода через аргумент input_dim, а некоторые трехмерные временные слои поддерживают аргументы input_dim и input_length.
  • Если вам когда-либо потребуется указать фиксированный размер пакета для ваших входных данных (это полезно для рекуррентных сетей с состоянием), вы можете передать аргумент batch_size слою. Если вы передадите оба слоя batch_size = 32 и
    input_shape = (6, 8), он будет ожидать, что каждая партия
    будет иметь форму пакета (32, 6, 8).

Я предположил, что все ваши аудиофайлы имеют одинаковое измерение. Я также предположил, что ваш X_Train готов к go, и каждый пример аудио имеет размер (826,12), а ваш вывод - отдельная категория. Я также предположил, что все ваши аудиофайлы соответствующим образом сложены вертикально как тензор.

Если приведенное выше верно, то вы можете попробовать следующее. Не видя код выше и ниже, я не могу сказать, будет ли он работать. Обратите внимание на использование параметра input_shape =.

## ........ The code above

mmymodel = Sequential()
mmymodel.add(Dense(64, input_shape=(826,12,), init='uniform', activation = 'relu'))
mmymodel.add(Dense(36, init='uniform', activation = 'relu'))
mmymodel.add(Dropout(0.5)
mmymodel.add(Dense(1, init='uniform', activation='sigmoid'))

## ........ The code below

Всего наилучшего.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...