среда, 22 августа 2018 г.

Пересечение свойств: кодирование нелинейности

На следующих графиках представим следующее:

  • Синие точки представляют больные деревья.
  • Оранжевые точки представляют здоровые деревья.

Эта проблема линейная?

Можем ли мы провести черту, которая точно отделит больные деревья от здоровых? Конечно. Это линейная проблема. Линия не будет идеальна. Одно или два больных дерева могут попасть на "здоровую" сторону, но в целом линия будет хорошим предсказателем.

Теперь взглянем на следующий график:

Эта проблема линейная?

Можем ли мы провести единственную прямую линию, которая точно отделит больные деревья от здоровых? Нет. Это нелинейная проблема. Любая линия будет плохим предсказателем.

Единственная линия не может разделить классы

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

x3 = x1x2

Мы используем это новое свойство x3 как и любое другое свойство. Линейная формула становится:

y = b + w1x1 + w2x2 + w3x3

Линейный алгоритм может обучиться весу для w3 также как и для w1 и w2. Другими словами, хотя w3 кодирует нелинейную информацию, не требуется менять то, как линейная модель тренируется, чтобы определить значение w3.

Типы пересечений свойств

Можно создать много разных типов пересечений свойств:

  • [A X B]: пересечение свойств, сформированное умножением значений двух свойств
  • [A x B x C x D x E]: пересечение свойств, сформированное умножением значений пяти свойств
  • [A X А]: пересечение свойств, сформированное возведением единственного свойства в квадрат

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