Я работаю над задачей классификации из 200 классов (но она немного отличается, потому что в векторе y может быть несколько единиц), используя 4-слойную полностью подключенную нейронную сеть.В большинстве случаев y (вектор метки) содержит одну или две единицы, и в этом проблема.При обучении модель склонна прогнозировать все метки как нулевые, даже если они должны быть равны 1. Таким образом, точность низкая (менее 99%, что почти хуже, чем прогнозирование с нулевым результатом).Функция активации для каждого слоя - сигмовидная.Не могли бы вы дать мне несколько советов по улучшению модели?
Это моя функция потерь.Точность низкая, потому что, когда я прогнозирую все метки как 0, точность будет почти 99%.
loss = tf.reduce_mean(tf.reduce_sum(-(sum_all - sum_one) / sum_all * tf.multiply(ys, tf.log(prediction)) - sum_one / sum_all * tf.multiply((one - ys), tf.log(one - prediction)), reduction_indices = [1])) sum_one indicates the number of 1's in the label. I implemented a weighting here.