Предположим, я хочу сделать бинарную классификацию (что-то принадлежит классу A или классу B). Есть несколько возможностей сделать это в выходном слое нейронной сети:
Используйте 1 выходной узел. Выход 0 (<0.5) считается классом A, а 1 (> = 0.5) считается классом B (в случае сигмовидной кишки)
Используйте 2 выходных узла. Входные данные принадлежат классу узла с наибольшим значением / вероятностью (argmax).
Есть ли какие-либо документы, которые (также) обсуждают это? Какие конкретные ключевые слова для поиска?
Этот вопрос уже задавался ранее на этом сайте, например, смотрите эту ссылку без реальных ответов. Мне нужно сделать выбор (магистерская работа), поэтому я хочу получить представление о плюсах / минусах / ограничениях каждого решения.
Ответы:
Во втором случае вы, вероятно, пишете о функции активации softmax. Если это правда, то сигмовидная кишка - это просто особый случай функции softmax. Это легко показать.
Как вы можете видеть, сигмоид - это то же самое, что и softmax. Вы можете думать, что у вас есть два выхода, но один из них имеет все веса, равные нулю, и поэтому его выход всегда будет равен нулю.
Таким образом, лучшим выбором для двоичной классификации является использование одной единицы вывода с сигмоидом вместо softmax с двумя единицами вывода, потому что она будет обновляться быстрее.
источник
exp(x+alpha) / (exp(alpha) + exp(x+alpha))
- на самом деле их бесконечное число - все они дают тот же результат классификации, что и тот, который отмечен с весами все 0. Веса, скорее всего, не будут равны нулю, но вместо этого будут вырожденными. с решением, которое имеет вес всех 0. Избегайте (бессмысленных и расточительных) вырожденных решений, используя только один выходной нейрон, кажется.Алгоритмы машинного обучения, такие как классификаторы, здесь статистически моделируют входные данные, определяя вероятности входных данных, принадлежащих различным категориям. Для произвольного числа классов, как правило, к модели добавляется слой softmax, поэтому выходные данные будут иметь вероятностные свойства в зависимости от проекта:
Это совершенно справедливо для двух классов, однако можно также использовать один нейрон (вместо двух), учитывая, что его выходные данные удовлетворяют:
полезные математические свойства (дифференцирование, ограничение от 0 до 1 и т. д.), вычислительная эффективность и наличие правильного наклона, так что обновление весов сети будет иметь небольшое, но измеримое изменение в выходных данных для целей оптимизации.
Вывод
Я не уверен, что рассуждения @ itdxer, которые показывают softmax и sigmoid, эквивалентны, если они действительны, но он прав в выборе 1 нейрона в отличие от 2 нейронов для двоичных классификаторов, так как требуется меньше параметров и вычислений. Меня также критиковали за использование двух нейронов для бинарного классификатора, так как «это лишнее».
источник