Различие между линейной задачей и нелинейной проблемой? Сущность приема Скалярного произведения и Ядра

Вы могли бы также интересоваться платформой поблочного тестирования, которая является частью qooxdoo, платформа RIA с открытым исходным кодом, подобная Dojo, ExtJS, и т.д. но с вполне всесторонним набором инструментальных средств.

Попытка интерактивная версия testrunner. Подсказка: совершите нападки серая стрелка, наверху покинутая (должен больше делаться ясным). Это - кнопка "игры", которая запускает выбранные тесты.

Для обнаружения больше о классах JS, которые позволяют Вам определить свои модульные тесты посмотрите онлайн средство просмотра API .

Для автоматизированного тестирования UI (на основе RC Селена), проверьте Средство моделирования проект.

17
задан unj2 18 July 2009 в 21:00
поделиться

4 ответа

Многие классификаторы, в том числе линейная машина опорных векторов (SVM) , могут решать только задачи, которые являются линейно разделяемыми, то есть где точки, принадлежащие к классу 1, могут быть разделены от точек, принадлежащих классу 2, с помощью гиперплоскости.

Во многих случаях проблема, которая не является линейно разделимой, может быть решена путем применения преобразования phi () к точкам данных; говорят, что это преобразование преобразует точки в пространство признаков . Есть надежда, что в пространстве признаков точки будут линейно разделимы. (Примечание: это еще не уловка с ядром ... следите за обновлениями.)

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

К сожалению, с увеличением размера пространства признаков увеличивается и количество требуемых вычислений. Здесь и проявляется трюк с ядром. Многие алгоритмы машинного обучения (в том числе SVM) могут быть сформулированы таким образом, что единственная операция, которую они выполняют с точками данных, - это скалярное произведение между двумя точками данных. (Я буду обозначать скалярное произведение между x1 и x2 как .)

Если мы преобразуем наши точки в пространство признаков, скалярное произведение теперь будет выглядеть следующим образом:

Ключевым моментом является то, что существует класс функций, называемых ядрами , которые можно использовать для оптимизации вычисления этого скалярного произведения. Ядро - это функция K (x1, x2) , который имеет свойство

K (x1, x2) =

для некоторой функции phi (). Другими словами: мы можем оценить скалярное произведение в низкоразмерном пространстве данных (где x1 и x2 «живут») без необходимости преобразования в многомерное пространство признаков (где phi (x1) и phi (x2) «живут» ") - но мы по-прежнему получаем преимущества преобразования в многомерное пространство функций. Это называется трюком ядра .

Многие популярные ядра, такие как ядро ​​Гаусса , фактически соответствуют преобразованию phi (), которое преобразуется в бесконечномерное пространство функций. Уловка с ядром позволяет нам вычислять скалярные произведения в этом пространстве без необходимости явно представлять точки в этом пространстве (что, очевидно,

33
ответ дан 30 November 2019 в 10:01
поделиться

Основное различие (для практических целей) заключается в следующем: линейная задача либо имеет решение (а затем его легко найти), либо вы получаете однозначный ответ, что решения нет вообще. Вы знаете это еще до того, как вообще узнаете проблему. Пока он линейный, вы получите ответ;

Интуиция подсказывает, что если у вас есть две прямые линии в некотором пространстве, довольно легко увидеть, пересекаются они или нет, а если пересекаются, то легко узнать, где.

проблема не линейная - ну, это может быть что угодно, и вы почти ничего не знаете.

Скалярное произведение двух векторов просто означает следующее: Сумма произведений соответствующих элементов. Итак, если ваша проблема -

c1 * x1 + c2 * x2 + c3 * x3 = 0

(где вы обычно знаете коэффициенты c, а вы '

4
ответ дан 30 November 2019 в 10:01
поделиться
  1. Линейные уравнения однородны, и применяется суперпозиция. Вы можете создавать решения, используя комбинации других известных решений; это одна из причин, почему преобразования Фурье работают так хорошо. Нелинейные уравнения не являются однородными, и суперпозиция не применяется. Нелинейные уравнения обычно приходится решать численно, используя итерационные, инкрементные методы.
  2. Я не уверен, как выразить важность скалярного произведения, но он действительно принимает два вектора и возвращает скаляр. Конечно, решение скалярного уравнения требует меньше усилий, чем решение векторного или тензорного уравнения более высокого порядка, просто потому, что приходится иметь дело с меньшим количеством компонентов.

Моя интуиция в этом вопросе основана больше на физике, поэтому у меня есть трудно перевести на ИИ.

2
ответ дан 30 November 2019 в 10:01
поделиться

Когда люди говорят о линейной задаче относительно задачи классификации, они обычно имеют в виду линейно разделимую задачу. Линейно разделяемый означает, что существует некоторая функция, которая может разделять два класса, которая является линейной комбинацией входной переменной. Например, если у вас есть две входные переменные, x1 и x2 , есть некоторые числа theta1 и theta2 , такие что функция theta1.x1 + theta2.x2 будет достаточно для предсказания вывода. В двух измерениях это соответствует прямой линии, в трехмерном - это плоскость, а в пространствах более высоких измерений - гиперплоскость .

Вы можете получить некоторое представление об этих концепциях, подумав о точках и линиях в 2D / 3D. Вот' пара очень надуманных примеров ...

2D scatter plot

Это сюжет линейно неразрывной задачи. Не существует прямой линии, разделяющей красную и синюю точки.

3D scatter plot

Однако, если мы дадим каждой точке дополнительную координату (а именно 1 - sqrt (x * x + y * y) ... Я сказал вам, что это было надумано), тогда проблема становится линейно разделимой, поскольку красная и синяя точки могут быть разделены двумерной плоскостью, проходящей через z = 0 .

Надеюсь, эти примеры демонстрируют часть идеи, лежащей в основе трюка с ядром:

Отображение проблемы в пространстве с большим числом измерений повышает вероятность того, что проблема станет линейно разделимой.

Вторая идея, лежащая в основе трюка с ядром (и причина того, почему это так сложно) заключается в том, что обычно очень неудобно и дорого обходиться с вычислительными ресурсами для работы в очень многомерном пространстве. Однако, если алгоритм использует только скалярные произведения между точками (которые вы можете рассматривать как расстояния), то вам нужно работать только с матрицей скаляров. Вы можете неявно выполнять вычисления в многомерном пространстве без необходимости выполнять отображение или обрабатывать многомерные данные.

43
ответ дан 30 November 2019 в 10:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: