Доктор Лэнс Элиот, AI Insider

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

Простой способ понять SVM - это пример, который я часто описываю о студенческом спорте.

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

Рост ученика А - 6 футов 2 дюйма, а вес - около 260 фунтов.

Рост ученика Б - 6 футов 8 дюймов, а вес - около 220 фунтов.

А ходил в футбольную или баскетбольную команду?

Б пошел в футбольную команду или в баскетбольную?

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

К настоящему времени я предполагаю, что вы пришли к выводу, что А пошел в футбольную команду, а Б пошел в баскетбольную команду. Это кажется логичным, поскольку B довольно высокий, и мы ожидаем, что баскетболист будет относительно высоким. A короче B и немного тяжелее, что имеет смысл для футболиста.

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

Поздравляем, поскольку теперь вы являетесь машиной опорных векторов (SVM), и позвольте мне объяснить, почему.

Подробнее о SVM

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

Отныне, если у вас будет A или B (два спортсмена), он может попытаться сказать вам, к какой классификации принадлежит каждый из них.

Обратите внимание, что я упомянул, что мы предоставили SVM обучающие данные. У нас было два класса, а именно футболисты и баскетболисты. Данные тренировки состояли из точек данных, в этом случае предположим, что у меня есть данные, описывающие сто футболистов и сто баскетболистов, поэтому я предоставил двести экземпляров и дал рост и вес для каждого из них. Эти точки данных можно рассматривать как p-мерный вектор, и SVM создает p-1-мерную гиперплоскость, которая имеет наибольшее разделение или запас между двумя классами.

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

Невероятный двоичный линейный классификатор

SVM известен как ненадежный двоичный линейный классификатор.

«Бинарная» часть означает, что обычно она определяет, находится ли что-то в классе или нет, или находится ли оно в одном из двух классов. Итак, у нас уже есть наш пример использования SVM, чтобы определить, принадлежит ли кто-то к одному из двух классов (футбол или баскетбол).

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

SVM обычно «не вероятностный», что означает, что мы не получаем вероятность того, что алгоритм верен, что A - футболист, а B - баскетболист. Существуют специальные версии SVM, которые добавляют вероятностные возможности.

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

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

Предположим, однако, что мы не уверены в том, какими должны быть классификации.

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

Тогда это будет считаться моделью обучения без учителя, и SVM пытается найти «естественный» способ группировки или классификации данных. Поскольку это немного отличается от традиционной SVM, неконтролируемую версию часто называют кластеризацией опорных векторов, а не машиной опорных векторов.

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

Автономные автомобили и SVM

Какое отношение это имеет к беспилотным беспилотным автомобилям с искусственным интеллектом?

В Cybernetic AI Self-Driving Car Institute мы используем SVM как неотъемлемую часть разрабатываемого нами программного обеспечения для беспилотных автомобилей с искусственным интеллектом.

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

Вы можете спросить, как SVM участвует в создании беспилотных автомобилей с искусственным интеллектом.

Предположим, у беспилотного автомобиля есть камера, которая может делать снимки того, что впереди беспилотного автомобиля. ИИ беспилотного автомобиля может захотеть узнать, есть ли впереди транспортное средство, и может передать изображение в SVM, который обучен тому, как выглядят автомобили. SVM может выполнять свой математический анализ и сообщать системе AI, что изображение действительно содержит транспортное средство или не содержит транспортного средства. Затем система AI может использовать этот результат, делая это в сочетании с другими датчиками и всем, что эти датчики фиксируют, например, радиолокационными сигналами, изображениями LIDAR и т. Д.

Возможно, вы знаете об ИИ в достаточной степени, чтобы задаться вопросом, почему анализ изображения не выполняется нейронной сетью. Что ж, вы правы, что обычно мы будем использовать нейронную сеть для анализа изображений. Но предположим, что мы также сочли разумным использовать SVM.

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

Почему это будет считаться необходимостью?

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

Способы использования SVM для беспилотных автомобилей

Таким образом, вы можете использовать SVM для беспилотных автомобилей с ИИ как:

- Автономная SVM

- SVM как начальный анализ, перепроверенный каким-то другим подходом

- SVM как двойная проверка некоторого другого подхода, который был впервые использован

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

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

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

Помимо классификаций анализа изображений транспортных средств и не связанных с транспортными средствами, SVM может использоваться для широкого спектра других аспектов беспилотного автомобиля с искусственным интеллектом. Он особенно удобен для классификации пешеходов. Например, содержит ли изображение пешехода или нет пешехода. Еще более сложным было бы определение того, представляет ли пешеход «угрозу» для беспилотного автомобиля или не представляет угрозы. Под словом «угроза» мы подразумеваем, что пешеход может выскочить на улицу перед беспилотным автомобилем. Это представляет собой форму угрозы, поскольку беспилотному автомобилю может потребоваться радикальный маневр уклонения, чтобы попытаться избежать столкновения с пешеходом.

Как классификатор узнает, представляет ли пешеход угрозу или нет? Обучаем SVM на изображениях пешеходов. В одном наборе у нас были изображения пешеходов, которые находятся в позе стоя или иным образом в позе, не предполагающей драматических движений. Позиция пешехода, предполагающая, что он бежит, будет считаться более драматичным движением. Расстояние до пешехода - еще один фактор, поскольку кто-то может находиться в беговой позе, но настолько далеко от беспилотного автомобиля, что это не считается непосредственной угрозой. С другой стороны, если изображение показывает пешехода в бегущей стойке, которая находится очень близко к беспилотному автомобилю, ИИ захочет знать, чтобы быть начеку.

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

При использовании SVM ИИ должен быть осторожен, если можно так выразиться, что его могут привести по тропе первоцвета. SVM может сказать, что что-то классифицировано как X, но это может быть ложное срабатывание. В нашем предыдущем примере со спортивными игроками предположим, что SVM указала, что B был футболистом. Это ложное срабатывание. Предположим, SVM указал, что А не футболист. Это ложный отрицательный результат. ИИ беспилотного автомобиля должен решить, следует ли верить классификатору SVM, который будет зависеть от множества аспектов, например, в случае изображений, является ли изображение четким или шумным и т. Д.

Осторожно используйте SVM

Для SVM разумно быть осторожным с результатами SVM, если целевые классы имеют тенденцию быть очень близкими друг к другу или даже перекрываться. Я предполагаю, что если бы мы попытались обучить SVM на бейсболистах и ​​футболистах, мы могли бы обнаружить, что, основываясь только на росте и весе, эти две классификации очень близки друг к другу. Это означает, что когда у нас есть спортивный игрок C, который представляет себя нам, и если мы просим SVM классифицировать их, наша вера в то, говорит ли SVM, что C - бейсболист или футболист, должна быть тщательно проверена. или перепроверили.

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

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

Заключение

Таким образом, SVM, как и другие модели обучения, следует воспринимать с недоверием. Он может быть подвержен переобучению обучающим данным. Обучение может потребовать больших вычислительных затрат. Могут возникнуть проблемы с выбросами. Предполагается, что используемые характеристики или особенности обычно имеют отношение к классификации. И так далее.

Я не хочу, чтобы у вас возникло чувство, будто я говорю, что не используйте SVM. Уверяю вас, что любая модель обучения, включая нейронные сети, будет иметь такие же ограничения и проблемы, которые необходимо учитывать. SVM - очень ценный инструмент в наборе инструментов ИИ, и мы считаем, что он заслуживает должного внимания в отношении беспилотных автомобилей с ИИ.

Чтобы получить бесплатный подкаст этой истории, посетите: http://ai-selfdriving-cars.libsyn.com/website

Подкасты также доступны на Spotify, iTunes, iHeartRadio и т. Д.

Подробнее о беспилотных автомобилях с искусственным интеллектом см: www.ai-selfdriving-cars.guru

Чтобы следить за Лэнсом Элиотом в Twitter: @LanceEliot

Его блог Forbes.com см .: https://forbes.com/sites/lanceeliot/

Его блог на Medium: https://medium.com/@lance.eliot

Книги доктора Элиота: https://www.amazon.com/Dr.-Lance-Eliot/e/B07Q2FQ7G4

Авторские права © Доктор Лэнс Б. Элиот, 2019 г.