Определение общего количества параметров в нейронной сети - PullRequest
0 голосов
/ 23 декабря 2019

Если у нас есть нейронная сеть входного слоя с 20 узлами + 2 скрытых слоя (размер 10 и 5), как мы можем вычислить общее количество параметров в такой сети?

Кроме того, как мы можем узнать, какие функции активации будут подходить для такой сети? А какие фигуры будут весами?

Ответы [ 2 ]

1 голос
/ 23 декабря 2019

Сначала поговорим о структуре сети независимо от функции активации. Мы знаем, что для любой активации y_i = I (w_i, x) сам аргумент выражается в виде скалярного произведения векторов w_i и x перед рассмотрениемсама функция. Итак, один удобный способ думать об этом состоит в том, что каждый слой в сети - это просто линейное преобразование самого входного вектора: Wx . Итак, чтобы перейти от вектора пространственных объектов 20 * x к выходу 10-мерного, а затем 5-мерного, нам понадобится две матрицы: 10x20 (назовем Hidden Layer 1 W_1 ) и 5x10 (назовем Hidden Layer 2 W_2 . Отсюда следует, что входной слой ( W_0 ) будет просто диагональной матрицей 20x20, сдиагональ - это веса, применяемые к каждому отдельному входу, поэтому в некотором смысле Y как вектор 5x1 можно рассматривать как Y = W_2 W_1 W_0 x . Кстати, вы можете сразу увидеть количество необходимых параметров (в данном примере их всего 270).

Существует много споров о том, какие функции активации превосходят, или, по крайней мере, когда я впервые начал исследовать ANN. Следует иметь в виду, что с каждой функцией активации есть компромиссы: эти функции имеют преимущества при определенном обусловливании входного вектора, но также и за счет общих вычислительных затрат. сложность и сниженная чувствительность перед лицом значительных весов. Например, если использовать tanh() в качестве функции активации, если величина одного веса превышает 100x других, дельта ошибки обратного распространения резко сместит все остальные веса этого узла, но практически не повлияет наэтот исключительный вес. Это может быть довольно проблематично, так как вы становитесь восприимчивыми к обучению локальным минимумам. Кроме того, d / dx [tanh ( x )] неэффективен в вычислительном отношении при рассмотрении ускорения GPGPU. Но (как бы мне ни приходилось работать с этой функцией), на самом деле она довольно эффективна при работе с частотной областью или экспоненциально коррелированными объектами.

Итак, какой формы будут весы ? Это не простой вопрос, потому что он основан на:

  • Структура вашей сети
  • Используемая функция активации
  • Эвристика обратного распространения (например, CNNвместо общего БП)
  • Базовые паттерны в вашем тренировочном наборе

Этот последний является наиболее важным, но легко определить, есть ли базовая форма / структура для весов доповышение квалификации. В качестве передовой практики рекомендуется сначала использовать Анализ основных компонентов (PCA) в вашем тренировочном наборе. Если вы обнаружите, что подавляющее большинство вашего набора может быть разумно представлено очень небольшим подмножеством основных компонентов, есть большая вероятность, что хорошо обученная сеть будет появляться разреженной (или даже полосатой) в самых ранних скрытых слоях.

0 голосов
/ 23 декабря 2019

Если вы используете Tensorflow Keras, попробуйте model.summary (). Он сообщает тип, форму вывода и количество параметров для каждого слоя, а также общее количество параметров. Вы можете визуализировать свою сеть, используя plot_function из tf.keras.utils.

Прочитайте документацию здесь https://www.tensorflow.org/api_docs/python/tf/keras/utils/plot_model?version=stable & https://www.tensorflow.org/api_docs/python/tf/keras/Model?version=stable

Выбор функции активации для выходного слоя зависит от типа выходного сигнала, который вам нужен. Например, сигмоид для вероятностей, ReLU для положительных значений и т. Д. Нет общего правила выбора функции активации для скрытых слоев. Есть слишком много соображений, чтобы о них заботиться, поэтому нам, как правило, все равно :) Однако есть рекомендации, которые работают большую часть времени. Смотри https://www.coursera.org/lecture/ai/how-to-choose-the-correct-activation-function-foyh8

...