Для классификации данных по N классам есть ли альтернатива использованию N классификаторов да-нет? - PullRequest
4 голосов
/ 14 октября 2011

TL; DR: есть ли какой-нибудь более сложный классификатор, чем классификатор да-нет?

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

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

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

Другой проект классифицировал данные в непрерывном масштабе, в основном от 0 до 1,2, но с некоторыми данными до 6. Мы сделали 6 или около того классификаторов и присвоили их бинам: 0-0,20,2-0,4, ... и 1,0 и выше.Как только все классификаторы возвращаются для некоторого фрагмента данных, мы затем подгоняем квадратик к баллам и принимаем пик в качестве результата.Это доставляет мне неудобство, но я не знаю, почему.

Кажется, что должен быть лучший способ, чем просто опрос набора классификаторов да-нет и попытка принять решение на основе какого-либо алгоритма.Чтобы взять глупый пример, рассмотрите систему, чтобы решить, показывает ли изображение лук или гриб.(Это буквально первое, о чем я подумал.) Я бы сказал, что чем больше объект выглядит как лук, , тем меньше он выглядит как гриб , и с онтологической точки зрения мне нужен метод классификации, которыйотражает это.Если у меня есть два классификатора да-нет, которые не учитывают, что луковица противостоит грибам, что мне делать с картиной, которая получает высокие баллы от обоих?Есть ли какой-нибудь способ получить единственный грибной или луковый классификатор, который каким-то образом знает , что между этими двумя классами растительности нет совпадений?Или я могу рассчитывать на подготовку классификаторов «да-нет» с реальными данными, чтобы отразить это без какого-либо специального вмешательства?

Ответы [ 4 ]

6 голосов
/ 14 октября 2011

Существует две общеобразовательные школы классификации:

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

Модификации SVM для мультикласса (много способов сделать это, вот один):

Пусть пример jj (из k) обучения xj будет в классе i (из N).Тогда его метка yj = i.

a) Вектор объекта: Если xj = пример обучения, принадлежащий классу i (из N), то Вектор элемента, соответствующий xj, имеет вид phi (xj, yj) = [0 0... X .. 0]

  • Примечание: X находится в i-й "позиции".phi имеет в общей сложности D * N компонентов, где каждый пример имеет D функций, например, изображение лука имеет D = 640 * 480 целых оттенков серого

  • Примечание: для других классов p т.е. y= p, phi (xj, y) имеет «X» в векторе объектов в позиции p, все остальные нули.

b) Ограничения: сверните W ^ 2 (как в Vanilla SVM) такой, что:

1) Для всех меток y, кроме y1: W.phi (x1, y1)> = W.phi (x1, y) + 1

и 2) Для всехметки y кроме y2: W.phi (x2, y2)> = W.phi (x2, y) + 1

...

и k) Для всех меток y, кроме yk:W.phi (xk, yk)> = W.phi (xk, y) + 1

  • Примечание: интуиция здесь заключается в том, что W.phi (xj, yj) больше, чем все остальные W.phi (xj, y1), W.phi (xj, y2) и т. д.

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

Ни один из них не использует N классификаторов да-нет.

Дискриминационный метод лучше работает на практике для классификации, но можетt модели вероятностных ответов.Также необходимо большое количество обучающих примеров для того, чтобы шаг оптимизации (минимизировать W ^ 2) сходился.Существует методика объединения двух, избегая ядер, называется Максимальная энтропийная дискриминация.

Чтобы ответить на ваш другой вопрос:

Что мне делать с картиной, которая получает высокие оценки оти то и другое?Есть ли какой-нибудь способ получить единственный грибной или луковый классификатор, который каким-то образом знает, что между этими двумя классами растительности нет совпадений?

Это скорее проблема с входными данными,не с самим алгоритмом обучения, который просто работает на матрице чисел.Это может отражать шум / неопределенность в области (иначе люди могут отличить грибы от лука совершенно?).Это может быть исправлено большим / лучшим (обучающим) набором данных.Или, может быть, вы выбрали плохое распределение для модели, в генеративном случае.

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

Хорошим ресурсом для машинного обучения являются курсы Тони Джебары в Колумбийском университете

1 голос
/ 14 октября 2011

Похоже, вы говорите именно о деревьях решений в своем вопросе. Деревья решений являются одним из наиболее распространенных типов классификаторов; они способны обрабатывать несколько категорий, дискретные и непрерывные данные, а также пропущенные значения. Базовый алгоритм дерева решений называется ID3 , а популярное улучшение - C4.5 . Результаты дерева решений часто можно улучшить с помощью повышения .

1 голос
/ 14 октября 2011

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

0 голосов
/ 13 мая 2012

Вы также можете просто использовать классификатор нейронной сети прямой связи с c выходными узлами, по одному выходному узлу для каждого класса.

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

Об обработке изображений с помощью нейронных классификаторов см., Например, мой сайт: http://www.egmont -petersen.nl (Нажмите «Наука» и обзорный документ 2002 года).

...