Выходной слой для мульти-метки, мультиклассовой классификации?
Я ищу способ достижения нескольких классификаций для ввода. Количество выходов указано, и наборы классов могут или не могут быть одинаковыми для выходов. Образец принадлежит одному классу каждого набора классов.
У меня вопрос, как должны выглядеть целевые данные и выходной слой? Какие функции активации, потери и обучения можно использовать, и как слой должен быть подключен к скрытому слою? Я не обязательно ищу оптимальное решение, просто рабочее.
Мое текущее предположение о том, что может сработать, состоит в том, чтобы сделать целевые данные несколькими конкатенированными однократными векторами, а выходной слой имел бы столько же единиц softmax, сколько и векторов. Я не знаю, как слои будут связаны с этим решением и как сеть будет определять размеры наборов классов. Я думаю, что лейбл powerset не будет работать для моих нужд.
Я думаю, что функция matnetb patternnet может создать сеть, которая делает это, но я не знаю, как работает итоговая сеть. Код для TensorFlow или Keras будет очень кстати.
1 ответ
Возможно, сейчас не время отвечать на этот вопрос, но я работаю над классификацией нескольких меток и только что нашел решение. Что касается Кераса, есть пример:
- целевая метка: [1, 0, 0, 1, 0]
- выходной слой: плотный (5, активация ='сигмоид')
- потеря: 'двоичная_кросентропия'
Это будет хорошо работать, если набор данных достаточно большой.