Правильный способ реализации смещений в нейронных сетях - PullRequest
0 голосов
/ 30 июня 2018

Я могу сделать нейронную сеть, мне просто нужно уточнить реализацию смещения. Какой способ лучше: реализуйте матрицы смещения B1, B2, .. Bn для каждого слоя в своей отдельной, отдельной от матрицы весов матрице или , включите смещения в матрицу весов, добавив 1 к предыдущему вывод слоя (вход для этого слоя). В изображениях я спрашиваю, есть ли эта реализация:

enter image description here

Или эта реализация:

enter image description here

Является лучшим Спасибо

Ответы [ 3 ]

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

Я думаю, что лучший способ состоит в том, чтобы иметь две отдельные матрицы: одну для коэффициента полезного действия и одну для систематической ошибки. Зачем? :

  • Я не верю, что вычислительная нагрузка увеличивается, поскольку W*x и W*x + b должны быть эквивалентны для работы на GPU. Математически и в вычислительном отношении они эквивалентны.

  • Большая модульность. Допустим, вы хотите инициализировать весовые коэффициенты и смещение, используя разные инициализаторы (единицы, нули, glorot ...). Имея две отдельные матрицы, это просто.

  • Легче читать и поддерживать.

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

По-моему, я думаю, что реализация матриц смещения отдельно для каждого слоя - это путь. Это создаст много гиперпараметров, которые ваша модель должна будет изучить, но это даст вашей модели больше свободы для сходимости.

Для получения дополнительной информации прочитайте это .

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

включает смещения в матрице весов, добавляя 1 к выходу предыдущего слоя (вход для этого слоя)

Похоже, что здесь реализовано: Машинное обучение с Python: обучение и тестирование нейронной сети с набором данных MNIST в параграфе «Сети с несколькими скрытыми слоями».

Я не знаю, если это лучший способ сделать это, хотя. (Может быть, не связано, но все же: в упомянутом примере кода он работал с сигмоидом, но потерпел неудачу, когда я заменил его на ReLU).

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