Pull to refresh

Comments 18

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

Хотите сказать, что надо для прикладных задач использовать "биологических решателей"?
Прямая проста и лаконична, всегда требует O(1) вычислительных ресурсов, поэтому ее можно пересчитать для новых данных, тогда будет O(n).
Да, всякие эвристические методы могут работать лучше, если вводить дополнительные метрики качества. При повышении размерности линейное разделение остается таким же простым, как и метрики, а вот для линейно неразделимых множеств даже с учетом преобразований естественно искать другие подходы.

Прямая-то, конечно, проста и лаконична - но посмотрите на природу - ее компоненты находятся в постоянном динамическом межклассовом, межвидовом и внутривидовом противоборстве - и успешное решение задач классификации (в широком смысле) для большинства из них - залог выживания. Вы видели в природе хоть одну прямую? Или что-нибудь, что было бы сделано просто?

В 1980-х годах читал публикации по разработке алгоритма, предназначенного именно для имитации работы человека, проводящего разделяющую кривую на графике. К сожалению, не помню авторов.

Во-во, та же самая мысль возникла. Там ровно то, что нужно автору. Если смотреть линейный вариант, то там как раз поиск максимального margin'а.

Спасибо за предоставленный материал )

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

Представляется, что это один из вариантов выбора разделяющей поверхности. Вариант не универсальный, не лучший и не худший - один из.

вполне естественно полагать, что максимизация зазора (margin) между классами должна способствовать более уверенной классификации.

Это предположение, гипотеза, а не факт. Подходит не для каждой задачи.

Недостатки SVM.
• Метод опорных векторов неустойчив по отношению к шуму в исходных данных.
Если обучающая выборка содержат шумовые выбросы, они будут существенным образом учтены при построении разделяющей гиперплоскости.

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

в дополнение к своему же ответу

и очень сильная зависимость от положения пограничных объектов.
незначительное изменения положения даже 1 (!) пограничного объекта может привести к существенному изменению разделяющей поверхности для всего множества.

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

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

Про количество опорных объектов - не совсем так. Сошлюсь на местную статью https://habr.com/ru/company/ods/blog/484148/ с прекрасными картинками на эту тему.

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

Спасибо за ссылку на статью и предложение о дополнении статьи сравнением.
И статья оказалось полезной, и методы сравнить интересно )

Не хватает вам кругозора относительно классических алгоритмов машинного обучения)

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

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

Напоследок, картинка про SVM с тем самым margin, который следовало бы придумать автору (w).

Спасибо за предоставленный материал, пояснения и предположения )

Автор знаком с методом опорных векторов (SVM).

Вы взяли проблему, которая уже решена методом опорных векторов (SVM)

Представляется, что проблема не решена однозначно - SVM предлагает один из вариантов решения, и в ряде случаев, но не во всех, это решение действительно достаточно целесообразно.

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

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

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

Да, любой линейный метод классификации для какой-то метрики(средне квадратичное отклонение, средняя абсолютная ошибка, максимизация margin) будет давать разделяющую гиперплоскость. А методов даже широко известных, вагон и маленькая тележка: LDA(linear discriminant analysis), logistic regression (с L1 и L2 регуляризацией), SVM. И работают они без проблем когда данных очень много, и практически не ограниченном количестве факторов(размере входного пространства).

Я далека от DL, но подскажите, пожалуйста, почему упускается из внимания вопрос метрики шкал. Почему а данном случае именно длина и ширина букашки, а не, скажем квадрат или логарифм этих величин. Это же может капитально повлиять на разделение прямыми. Или это отдельный большой вопрос вне данного рассмотрения?

В общем случаи для любой линейной модели мы имеем некоторую "решающую" функцию: a_1*F_1 + a_2*F_2 + .. + a_n*F_n, где a_i это подбираемые константы, а F_i это некоторый произвольный фактор, им может быть и квадрат и логарифм и какая угодно функция от входных данных. Формально можно считать входные факторы точками в пространстве R^n, тогда линейная модель будет давать некоторую гиперплоскость в этом пространстве, или если нам интересны более "мощные" модели(ансамбли деревьев, SVM с нелинейным ядром и т.д.), то они будут давать некоторую разделяющую поверхность в этом пространстве. (в ML факторы называют фичами, и есть даже небольшая наука об этом feature engineering)

Если стоит вопрос, какие факторы(фичи) необходимо выбрать, то обычно просто все что придумают закидывают в модель. Строят модель и выкидывают бесполезные/избыточные или слабо влияющие факторы. Для линейных моделей, можно получить стягивание к нулю коэффициентов для "бесполезных" факторов, за счет L1 регуляризации. Для деревянных моделей, можно оценить важность факторов, и посмотреть что будет если выбросить наименее влияющие.

Всё же в русскоязычной литературе обычно используют термин "признак". Соответственно, генерация/отбор признаков.

Правда смысл использования русскоязычной литературы по ML - вопрос открытый.

Это может быть интересно протестировать.
Понимаю так:
Теоретически, разделяющие поверхности для случаев "просто величины", "квадраты величин", "логарифмы величин" будут разными,
С одной стороны, "по человеческой логике", может показаться, что они должны совпадать, так как гусеницы и букашки остаются теми же независимо от способа измерения.
С другой стороны, мы проводим классификацию как раз на основе того, что и как мы измеряем. Так, например, если мы будем классифицировать по насыщенности красного и по температуре, то разделяющие поверхности будут не такими же, как по длине и ширине. С этой точки зрения, квадраты или логарифмы величин - это совсем другие параметры, чем сами величины. И корректность их взаимозаменяемости может зависеть от логики конкретной задачи.

Sign up to leave a comment.

Articles