Керас моделирует выходной вектор одного горячего вектора, возможно ли это? есть ли альтернативы если нет? - PullRequest
0 голосов
/ 14 марта 2020

Итак, у меня есть выходной вектор dim=7 и 4 возможных класса для каждой позиции, поэтому мой вопрос: можно ли передать в модель keras вектор из одного горячего вектора, где каждая позиция вектора равна единице? горячий вектор? как то так [[1000],[1000],[0100],[0010],[0001],[0001],[0010]]. Если это невозможно, есть ли альтернативы?

1 Ответ

0 голосов
/ 15 марта 2020

Если вы хотите, чтобы ваши выходные данные вашей модели были такими, когда ваш model = keras.models.Model(...), ответ будет невозможен , потому что вывод, который вы предоставляете (который похож на пошаговый ответ) [1000] = > [0000] ") будет иметь градиент бесконечности на шаге и 0 в другой точке.

Что люди делают, так это создают модель, которая дает распределение по различным действиям и выбирает наибольшую вероятность в качестве прогнозируемого значения и использования потеря перекрестной энтропии для оптимизации модели. Например, из вашего вывода [1,0,0,0] вы получите что-то вроде [0.9,0.01,0.01,0.08]. Затем вы можете выбрать первый экземпляр как прогнозируемое значение. Это гарантирует, что ваша модель имеет градиент во всех точках.

Так что, если вы действительно хотите, чтобы ваша модель имела dim = 7 и 4 различных значения, вы можете создать выходной размер 28 = 7*4 при активации сигмоида, затем выберите первые 4 в качестве измерения 1 (возможно, используя что-то вроде np.argmax(output[0:4])) и т. д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...