Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2021, 09:23   #1
vipAvos
 
Регистрация: 25.02.2021
Сообщений: 9
Лампочка Нейросеть. Почему точность обучения > 100%

Здравствуйте.
Скажите по какой причине в принципе точность обучения нейросети (tensorflow>keras) может быть больше единицы (больше 100%)?
Не знать и спросить не стыдно.
Стыдно не знать и не спросить.
vipAvos вне форума Ответить с цитированием
Старый 26.02.2021, 18:01   #2
vipAvos
 
Регистрация: 25.02.2021
Сообщений: 9
По умолчанию

И НИКТО совершенно НИЧЕГО по проблеме не знает...
Да уж... Клуб...
Не знать и спросить не стыдно.
Стыдно не знать и не спросить.
vipAvos вне форума Ответить с цитированием
Старый 26.02.2021, 23:06   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Если судить по определению точности "This value is ultimately returned as precision, an idempotent operation that simply divides true_positives by the sum of true_positives and false_positives.", то она не может быть больше единицы.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 27.02.2021, 10:04   #4
vipAvos
 
Регистрация: 25.02.2021
Сообщений: 9
По умолчанию

В том то и дело, что не понятно откуда берётся эта точность... Вот пример:
Код:
>>> Итерация 2 из 36  >>>  2021-02-27 09:43:43.045483
F1::1 Op3::1<>Ls2::1<>Ac1::1<>St1::1<>Lr2::1<>Mt3::2
Op=ftrl_004_07 <> Ls=BCE <> Mt=kl_div
Сигналов в обучающей выборке: [1801. 1780. 2859.] > На валидацию [ 360 356 571 ]
Сигналов в тестовой выборке:  [444. 448. 719.]
51/51 [==============================] - 0s 706us/step - loss: 0.5868 - kullback_leibler_divergence: 1.0058

Параметры модели:
Оптимизатор: ftrl_004_07 
Фн.Потерь:   BCE
> Размерность слоёв:
>>> Входной слой = 65
>>>>>> Скрытых слоёв -- 1
>>>>>>>> 1-й слой    = 42
>>>>>>>>>>> активация  = 'selu'
>>> >> слой имеет dropout = 0.3
>>> Выходной слой    = 3
>>>>>>>>>>> активация  = 'softmax'
Метрика = kl_div
<<< Обучение модели длилось: 0:08:07.184815, эпох: 2446 (2397) <<< 2021-02-27 09:51:50.231298

fit  > loss,     accuracy:     [ 0.5820409060 	 0.9975788593 ]
fit  > val_loss, val_accuracy: [ 0.5890457630 	 1.0094249249 ]
test > loss,     accuracy:     [ 0.5868121386 	 1.0058239698 ]
Что бы пояснить
Код:
ftrl_004_07 = optimizers.Ftrl(learning_rate_power=-0.7)
BCE = losses.BinaryCrossentropy()
kl_div = metrics.KLDivergence()
Не знать и спросить не стыдно.
Стыдно не знать и не спросить.
vipAvos вне форума Ответить с цитированием
Старый 27.02.2021, 10:24   #5
vipAvos
 
Регистрация: 25.02.2021
Сообщений: 9
По умолчанию

Я только могу предположить, что то-то "не срастается" между оптимизатором, потерями и метрикой.
И никак не могу найти что с чем нужно использовать...
К тому же, приведённый пример ещё не самый странный. Бывает что абсолютно все значения выше единицы. В том числе и потери...
Код:
Сигналов в обучающей выборке: [1801. 1780. 2859.] > На валидацию [ 360 356 571 ]
Сигналов в тестовой выборке:  [444. 448. 719.]
51/51 [==============================] - 0s 745us/step - loss: 1.0051 - kullback_leibler_divergence: 1.0051
test > loss,     accuracy:     [ 1.0051449537 	 1.0051449537 ]
fit  > val_loss, val_accuracy: [ 1.0087591410 	 1.0087591410 ]
fit  > loss,     accuracy:     [ 0.9976955652 	 0.9976955652 ]
Не знать и спросить не стыдно.
Стыдно не знать и не спросить.

Последний раз редактировалось vipAvos; 27.02.2021 в 11:40.
vipAvos вне форума Ответить с цитированием
Старый 27.02.2021, 22:22   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Совсем не специалист в данной области. Похоже, что под accuracy тут подразумевается kullback_leibler_divergence, а оно не имеет верхней границы (считается не в процентах). https://www.tensorflow.org/api_docs/...ryCrossentropy - тут тоже есть пример, где больше единицы результат, так что предположу, что аналогично считается не в процентах, и просто минимизируется.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 28.02.2021, 08:56   #7
vipAvos
 
Регистрация: 25.02.2021
Сообщений: 9
По умолчанию

Вот спасибочки!!! И как это я пропустил этот момент - уме не приложу.

"Используйте эту кросс-энтропийную потерю, когда есть только два класса меток (предполагается , что это 0 и 1)"

А у меня 3 класса.

Сча посмотрю ещё и метрику. Спасибо Вам огромное!
Не знать и спросить не стыдно.
Стыдно не знать и не спросить.

Последний раз редактировалось vipAvos; 28.02.2021 в 12:27.
vipAvos вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нейросеть не работает и по итогу обучения выдает 0.5 по всем выходам Dominum_faber Помощь студентам 2 18.02.2020 08:53
А почему Windows 7 HP не дает 100% прав администратору? Blondy Windows 10 20.02.2014 15:54
Почему на 64-битных системах не поддерживается расширенная точность операции с плавающей точкой Sibedir Операционные системы общие вопросы 3 06.01.2014 02:21
Почему-то цикл доходит до только 100 Ignam Microsoft Office Excel 4 18.07.2011 18:02
Почему body в IE растягивается на 100%, хотя в стилях 1024px aseeva_sonya HTML и CSS 8 06.10.2009 19:33