Для обоих pylearn2 и CAFFE, ваши метки должны быть 0-4 вместо 1-5 ... это именно так, как они работают. Выходной уровень будет 5 единиц, каждый из которых является, по существу, логистической единицей ... и softmax можно рассматривать как адаптер, который нормализует конечные выходы. Но «softmax» обычно используется в качестве типа вывода. Когда вы тренируетесь, ценность любой отдельной единицы редко бывает ровно 0,0 или 1,0 ... это всегда распределение по вашим подразделениям, на которые можно рассчитывать логарифмическую потерю. Эта потеря используется для сравнения с «идеальным» случаем, и ошибка исправлена, чтобы обновить вес вашей сети. Обратите внимание, что исходный вывод из PL2 или Caffe не является определенной цифрой 0,1,2,3 или 5 ... это 5 номеров, каждая из которых связана с вероятностью каждого из 5 классов. Когда вы классифицируете, вы просто выбираете класс с наивысшим значением в качестве «победителя».
Я попытаюсь привести пример ... сказать У меня проблема с 3 классами, я тренирую сеть с 3-мя модулями softmax. Первый блок представляет первый класс, второй - второй и третий, третий.
Say кормлю тестовый случай через и получить ...
0,25, 0,5, 0,25 ... 0,5 является самым высоким, так что классификатор сказал бы «2». это выход softmax ... он гарантирует, что сумма выходных единиц равна единице.
вам может потребоваться описать вашу проблему немного больше, если вам по-прежнему нужна помощь. – user1269942
Мой лейбл порядковый, скажем 1,2,3,4,5. Итак, у меня 5 классов. Моя модель представляет собой мультикласс, используя SoftMax над LogisticRegression, который не вмещает 1,2,3,4,5. Теперь, если фактическая метка для экземпляра тренировок равна 3, а мой предсказанный результат равен 1, то это хуже прогнозируемого результата 2. Такая потеря может быть смоделирована, если моя модель является регрессией с использованием среднеквадратической ошибки в качестве функции потерь. Но в SoftMax потеря такая же. Смысл этого может быть в равной степени хуже, чтобы получить 2 против 3 по сравнению с 1 против 3 (с использованием отрицательного логарифмического правдоподобия). Итак, как я могу изменить отрицательное логарифмическое правдоподобие, чтобы соответствовать порядковой цели? – Run2