При каких обстоятельствах использование смещений в нейронной сети может быть нецелесообразным? - PullRequest
0 голосов
/ 17 марта 2020

Я сейчас просматриваю электронную книгу Майкла Нильсена Нейронные сети и глубокое обучение и запустил код, найденный в конце главы 1, который обучает нейронную сеть распознавать рукописные цифры (с небольшим изменением чтобы сделать алгоритм обратного распространения на основе мини-пакетной матрицы).

Однако, запустив этот код и достигнув точности классификации чуть менее 94%, я решил исключить использование смещений из сети. После переподготовки модифицированной сети я не обнаружил различий в точности классификации!

NB: Выходной слой этой сети содержит десять нейронов; если i-й из этих нейронов имеет наивысшую активацию, то вход классифицируется как ди git i.

Это заставило меня задуматься , почему необходимо использовать смещения в нейронной системе сеть, а не просто вес, и что отличает задачу, в которой смещения улучшат производительность сети, и задачу, в которой их нет?

Мой код можно найти здесь: https://github.com/pipthagoras/neural-network-1

1 Ответ

1 голос
/ 17 марта 2020

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

enter image description here

Если вы делаете регрессию без перехвата (или смещения), вы вынуждены базовая модель для прохождения через источник, что приведет к плохой модели, если базовые данные не центрированы (например, если истинный процесс генерации равен Y = 3000). Если, с другой стороны, ваши данные центрированы или близки к центру, то устранение смещения хорошо, так как вы не будете вводить термин, который на самом деле не зависит от вашей прогнозирующей переменной (это похоже на выбор более простой модели, которая будет лучше обобщать, ОБЕСПЕЧИВАЯ, что он действительно отражает основные данные).

...