Nano Hash - криптовалюты, майнинг, программирование

Каков наилучший способ обучить вашу модель и отдать предпочтение отзыву/точности?

У меня проблема с бинарной классификацией, и мой набор данных состоит из 5% положительных меток. Я тренирую свою модель, используя tensorflow. Вот мои результаты во время тренировок:

Step 3819999: loss = 0.22 (0.004 sec)
Accuracy = 0.955; Recall = 0.011; Precision = 0.496

Step 3820999: loss = 0.21 (0.003 sec)
Accuracy = 0.955; Recall = 0.011; Precision = 0.496

Step 3821999: loss = 0.15 (0.003 sec)
Accuracy = 0.955; Recall = 0.011; Precision = 0.496

Step 3822999: loss = 0.15 (0.003 sec)
Accuracy = 0.955; Recall = 0.011; Precision = 0.496

Каковы основные стратегии улучшения памяти? Изменение набора данных и добавление большего количества положительных меток может решить проблему, но кажется странным изменить реальность проблемы...

С моей точки зрения, должен быть способ отдать предпочтение «истинным положительным результатам» вместо «ложных отрицательных результатов», но я не могу его найти.


Ответы:


1

Вы должны использовать "взвешенную перекрестную энтропию" вместо классического CE . Из документации Tensorflow:

Это похоже на sigmoid_cross_entropy_with_logits(), за исключением того, что pos_weight позволяет компрометировать полноту и точность, увеличивая или уменьшая стоимость положительной ошибки по сравнению с отрицательной ошибкой. Обычная кросс-энтропийная стоимость определяется как:

targets * -log(sigmoid(logits)) + (1 - targets) * -log(1 - sigmoid(logits))

Значение pos_weights > 1 уменьшает количество ложноотрицательных результатов, тем самым увеличивая отзыв. И наоборот, установка pos_weights ‹ 1 уменьшает количество ложных срабатываний и увеличивает точность. Это видно из того факта, что pos_weight введен как мультипликативный коэффициент для члена положительных целей в выражении потерь:

targets * -log(sigmoid(logits)) * pos_weight + (1 - targets) * -log(1 - sigmoid(logits))
03.07.2018
  • Это именно то, что я искал. Все мои показатели (точность, полнота и точность) выросли, что было немного странно, так как я ожидал некоторого компромисса. Знаете ли вы, есть ли способ рассчитать оптимальное значение pos_weight? 03.07.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..