Почему вектор веса ортогонален плоскости решения в нейронных сетях
Я новичок в нейронных сетях. Я узнаю о персептронах.
Мой вопрос: почему весовой вектор перпендикулярен границе решения (гиперплоскость)?
Я упомянул много книг, но все упоминают, что вектор веса перпендикулярен границе решения, но никто не говорит, почему?
Может ли кто-нибудь дать мне объяснение или ссылку на книгу?
Ответы
Ответ 1
Веса - это просто коэффициенты, которые определяют разделительную плоскость. На данный момент забудьте о нейронах и просто рассмотрите геометрическое определение плоскости в N измерениях:
w1*x1 + w2*x2 + ... + wN*xN - w0 = 0
Вы также можете думать об этом как о точечном продукте:
w*x - w0 = 0
где w
и x
- оба вектора длины-N. Это уравнение справедливо для всех точек на плоскости. Напомним, что мы можем умножить указанное выше уравнение на константу и оно все еще выполняется, поэтому мы можем определить такие константы, что вектор w
имеет единичную длину. Теперь выньте лист бумаги и нарисуйте оси x-y
(x1
и x2
в приведенных выше уравнениях). Затем нарисуйте линию (плоскость в 2D
) где-нибудь около начала координат. w0
- просто перпендикулярное расстояние от начала координат до плоскости, а w
- единичный вектор, который указывает на начало координат вдоль этого перпендикуляра. Если вы теперь нарисуете вектор от начала координат до любой точки на плоскости, то точечный продукт этого вектора с единичным вектором w
всегда будет равен w0
, так что вышеприведенное уравнение верно? Это просто геометрическое определение плоскости: единичный вектор, определяющий перпендикуляр к плоскости (w
) и расстояние (w0
) от начала координат до плоскости.
Теперь наш нейрон просто представляет ту же самую плоскость, как описано выше, но мы просто описываем переменные несколько иначе. Мы будем называть компоненты x
нашими "входами", компонентами w
наших "весов", и мы будем называть расстояние w0
смещением. Это все, что нужно.
Получив немного больше, чем ваш реальный вопрос, мы не очень-то заботимся о точках самолета. Мы действительно хотим знать, на какой стороне плоскости падает точка. Пока w*x - w0
ровно равен нулю на плоскости, он будет иметь положительные значения для точек на одной стороне плоскости и отрицательные значения для точек с другой стороны. То, что происходит при активации функции активации нейронов, но не выходя за рамки вашего фактического вопроса.
Ответ 2
Интуитивно, в двоичной задаче весовой вектор указывает в направлении "1'-класса, а" 0 "-класс найдется при указании от весового вектора. Следовательно, граница решения должна быть проведена перпендикулярно к весовому вектору.
См. изображение для упрощенного примера: у вас есть нейронная сеть с одним входом, который, таким образом, имеет 1 вес. Если вес -1 (синий вектор), то все отрицательные входы станут положительными, поэтому весь отрицательный спектр будет присвоен классу "1", а положительный спектр будет "0". Таким образом, граница решения в плоскости с двумя осями является вертикальной линией через начало координат (красная линия). Проще говоря, это линия, перпендикулярная весовому вектору.
Давайте рассмотрим этот пример с несколькими значениями. Выход персептрона - это класс 1, если сумма всех inputs * weights
больше 0 (порог по умолчанию), в противном случае, если выход меньше порога 0, тогда класс равен 0. Ваш ввод имеет значение 1. вес, применяемый к этому одиночному входу, равен -1, поэтому 1 * -1 = -1
, который меньше 0. Таким образом, ввод присваивается классу 0 (ПРИМЕЧАНИЕ: класс 0 и класс 1 могут быть просто вызваны классом A или классом B, не путайте их с входными и весовыми значениями). И наоборот, если входной сигнал равен -1, то input * weight
равен -1 * -1 = 1
, который больше 0, поэтому ввод назначается классу 1. Если вы попробуете каждое входное значение, вы увидите, что все отрицательные значения в этом например, имеют выход больше 0, поэтому все они относятся к классу 1. Все положительные значения будут иметь выходной результат меньше 0 и поэтому будут классифицированы как класс 0. Нарисуйте линию, которая отделяет все положительные и отрицательные входные значения ( красная линия), и вы увидите, что эта линия перпендикулярна вектору веса.
Также обратите внимание, что весовой вектор используется только для модификации входов для соответствия желаемому результату. Что произойдет без весового вектора? Вход 1, приведет к выходу 1, который больше порога 0, поэтому класс равен "1".
![image]()
Второе изображение на на этой странице показывает персептрон с 2 входами и смещение. Первый вход имеет тот же вес, что и мой пример, в то время как второй вход имеет вес 1. Соответствующий вектор веса вместе с границей решения, таким образом, изменяется, как видно на изображении. Также граница решения была переведена вправо из-за дополнительного смещения 1.
Ответ 3
Хотя вопрос был задан 2 года назад, я думаю, что у многих учеников будут те же сомнения. Я дошел до этого ответа, потому что задал тот же вопрос.
Теперь просто подумайте о X, Y (декартова система координат - это система координат, которая однозначно определяет каждую точку в плоскости парой числовых координат, которые являются знаковыми расстояниями от точки до двух фиксированных перпендикулярно направленных линий [ из Википедии].
Если Y = 3X, в геометрии Y перпендикулярно X, то пусть w = 3, то Y = wX, w = Y/X, и если мы хотим нарисовать соотношение между X, w, мы будем иметь две перпендикулярные линии так же, как когда мы рисуем связь между X, Y. Поэтому всегда думайте о w-коэффициенте перпендикулярно X и Y.