Чем отличается «классификация» между softmax, logistic и svm? - PullRequest
0 голосов
/ 21 января 2019

Я использую caffe для обнаружения объектов с помощью модели SSD, и в последнее время я настраиваю тип потерь "MultiBoxLoss".В файле multibox_loss_layer.cpp его потеря имеет SOFTMAX по умолчанию и опцию LOGISTIC, я добавляю опцию hingeloss (SVM) в код caffe и выполняю обучение, но результат плохой.

Теперь босс хочет, чтобы яиспользовать SVM для классификации карты объектов по python sklearn.

И у меня возник вопрос, в файле multibox_loss_layer.cpp можно использовать softmax, logistic и hingeloss для расчета потерь.На этом этапе его данные являются просто «одномерными», но карта объектов является большой размерностью, и я в Интернете статьи, кажется, softmax не может классифицировать данные высокой размерности.

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

, поэтому мне интересно, в чем разница между softmax, logistic и SVM.Кто-нибудь может помочь?спасибо!

1 Ответ

0 голосов
/ 29 января 2019

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

SVM не является функцией, это другой классификатор.Нет смысла сравнивать softmax с SVM, потому что первый - функция потерь, второй - классификатор.

...