предисловие Многие люди не понимают, почему необходимо добавлять 1 перед выборкой X в нейронной сети и логистической регрессии, чтобы X=[x1,x2,...,xn] стало X=[1, x1,x2,...,xn]. Следовательно, могут быть допущены различные ошибки, такие как пропуск этой 1 или добавление этой 1 к результату W·X по ошибке, что приводит к различным ошибкам в модели или даже к невозможности сходимости. Причина в том, что я до сих пор не понимаю функции этого термина смещения.
В статьях «Логистическая регрессия» и «От логистической регрессии к нейронной сети», чтобы сосредоточиться на аргументе, Сяо Си часто игнорирует член смещения b модели, но это не означает, что его можно игнорировать в практической инженерии. и строгая теория.Наоборот, этот пепел очень важен.
В статье «От логистической регрессии к нейронной сети» Сяо Си объяснил, что традиционную нейронную сеть можно рассматривать как «комбинированную модель», в которой выходные данные нескольких моделей логистической регрессии используются в качестве входных данных для другой модели логистической регрессии. Следовательно, обсуждение роли члена смещения b в нейронной сети примерно эквивалентно обсуждению роли члена смещения b в модели логистической регрессии.
Следовательно, чтобы уменьшить объем размышлений, мы могли бы также начать с термина смещения модели логистической регрессии, которая на самом деле является обзором математики средней школы.
Базовый обзор
Мы знаем, что модель логистической регрессии по существу использует функцию y=WX+b для построения поверхности принятия решений, где W — параметр модели, представляющий собой наклон функции (вспомните y=ax+b из курса математики в средней школе), b — функция перехвата.
В одномерном случае пусть W=[1], b=2. Тогда y=WX+b выглядит следующим образом (линия с точкой пересечения 2 и наклоном 1):
В двумерном случае пусть W=[1 1], b=2, тогда y=WX+b следующим образом (плоскость с точкой пересечения 2 и наклоном [1 1])
Очевидно, что функция y=WX+b является линией/плоскостью/гиперплоскостью 2-мерного/3-мерного/многомерного пространства. Таким образом, логистическая регрессия, конечно же, является линейным классификатором. Итак, без этого члена смещения b мы можем рисовать только в пространствемимо происхожденияЛиния/Плоскость/Гиперплоскость. В настоящее время для большинства ситуаций, таких как на рисунке ниже, требовать, чтобы поверхность принятия решений проходила через начало координат, — это катастрофа.
Следовательно, для логистической регрессии этот член смещения b должен быть добавлен, чтобы гарантировать, что наш классификатор может рисовать поверхность решений в любом месте пространства (хотя она должна быть прямой, а не изогнутой, хах...).
Термин смещения для нейронной сети Точно так же для нейронной сети, состоящей из нескольких логистических регрессий, следует добавить член смещения b. Но подумайте об этом, если скрытый слой имеет 3 узла, это эквивалентно наличию 3 классификаторов логистической регрессии. Эти три классификатора рисуют свои собственные поверхности решений, и их член смещения b в целом будет другим. Например, следующая сложная граница решения может быть нарисована нейронной сетью из трех узлов скрытого слоя:
Как разумно назначить разные b трем классификаторам (скрытым узлам)? Или что, если модель динамически настраивает b трех классификаторов, чтобы нарисовать наилучшую поверхность принятия решений для каждого в процессе обучения?
То есть добавить 1 перед X в качестве основания члена смещения (в это время X превращается из n-мерного вектора в n+1-мерный вектор, то есть становится [1, x1, x2...] ), а затем пусть каждый классификатор обучает свой собственный вес элемента смещения, поэтому вес каждого классификатора также становится n + 1 измерением, то есть [w0,w1,...], где w0 - вес элемента смещения, поэтому 1*w0 — это смещение/перехват этого классификатора. Таким образом, точка пересечения b, которая кажется отличным от наклона W параметром, объединяется в одну структуру, так что модель может постоянно корректировать параметр w0 в процессе обучения, чтобы достичь цели корректировки b. .
Поэтому, если вы пропустите член смещения при написании кода нейронной сети, нейронная сеть, скорее всего, станет очень плохой, сходимость будет очень медленной, а точность плохой, и она может даже попасть в состояние «зомби» и не сойтись.. Так что, если у вас нет очень четкой причины отбросить член смещения b, не смотрите на него маленьким, просто отбросьте его.