2016-03-23 5 views
3

При решении проблемы с двоичной классификацией, я думаю, что есть два возможных способа использования кофе.
Первый использует "SigmoidCrossEntropyLossLayer" с одним выходом.
Другой использует "SoftmaxWithLossLayer" с двумя выходными устройствами. Вопрос в том, какая разница между этими двумя подходами?
Какой я должен использовать?
Большое спасибо!О двоичной классификации в Caffe

ответ

1

Если вы играете немного с математикой, вы можете «дублировать» предсказанный класс вероятность "Sigmoid" слоя 0.5*x_i для 1-го класса и -0.5*x_i для класса 0, то суммы "SoftmaxWithLoss" слоя к "SigmoindWithCrossEntropy" на Одновыходовые предсказаниях x_i ,

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

+0

Возможно, следует использовать SigmoindWithCrossEntropy, так как у этого есть меньше параметров на последнем слое? –

+0

@whjxnyzh это интересное соображение. Лично я сторонник SoftmaxWithLoss. Старые привычки, я думаю ... – Shai

+1

Спасибо @Shai. Да, SoftmaxWithLoss удобен в caffe, мы можем получить точность с помощью AccuracyLayer. Но мы не можем использовать AccuracyLayer с потерей SigmoidWithCrossEntropy, так как у этого есть только один выход ... Математически эти две функции потери одинаковы, на самом деле SoftmaxWithLoss переопределен с выполнением двоичной классификации. См. Http://ufldl.stanford.edu/tutorial/supervised/SoftmaxRegression/ «Связь с логистической регрессией ». –

Смежные вопросы